En programación informática , una convención de nomenclatura es un conjunto de reglas para elegir la secuencia de caracteres que se utilizará para los identificadores que denotan variables , tipos , funciones y otras entidades en el código fuente y la documentación .
La elección de convenciones de nomenclatura puede ser un tema controvertido, ya que los partidarios de cada una sostienen que la suya es la mejor y las demás, inferiores. Coloquialmente, se dice que esto es una cuestión de dogma . [ 1 ] Muchas empresas también han establecido su propio conjunto de convenciones.
Elementos comunes
Las reglas exactas de una convención de nomenclatura dependen del contexto en el que se utilice. Sin embargo, existen varios elementos comunes que influyen en la mayoría, si no en todas, las convenciones de nomenclatura de uso común en la actualidad.
Mayúsculas y números
Algunas convenciones de nomenclatura limitan el uso de mayúsculas o minúsculas. Otras no restringen el uso de mayúsculas o minúsculas, pero establecen una interpretación precisa basada en dicho uso. Algunas convenciones especifican si se pueden usar caracteres alfabéticos, numéricos o alfanuméricos y, en caso afirmativo, en qué orden.
Identificadores de varias palabras
Una recomendación común es «Utilice identificadores significativos». Una sola palabra puede no ser tan significativa ni específica como varias. Por consiguiente, algunas convenciones de nomenclatura especifican reglas para el tratamiento de identificadores compuestos que contienen más de una palabra.
Como la mayoría de los lenguajes de programación no permiten espacios en blanco en los identificadores, se necesita un método para delimitar cada palabra y facilitar a los lectores posteriores la interpretación de qué caracteres pertenecen a cada palabra. Históricamente, algunos lenguajes antiguos, en particular FORTRAN (1955) y ALGOL (1958), permitían espacios dentro de los identificadores, determinando el final de los mismos por contexto. Esto se abandonó en lenguajes posteriores debido a la dificultad de la tokenización . Es posible escribir nombres simplemente concatenando palabras, y esto se usa a veces, como en mypackagelos nombres de paquetes de Java, [ 2 ] aunque la legibilidad se ve afectada para términos más largos, por lo que generalmente se usa alguna forma de separación.
Palabras separadas por delimitadores
Un método consiste en delimitar las palabras con un carácter no alfanumérico . Los dos caracteres que se suelen usar para este fin son el guion ("-") y el guion bajo ("_"); por ejemplo, el nombre de dos palabras " two words" se representaría como " two-words" o " two_words".
El guion se usa comúnmente al escribir COBOL (1959), Forth (1970) y Lisp (1958); también es común en Unix para comandos y paquetes, y se usa en CSS . [ 3 ]
Por el contrario, los lenguajes de la tradición FORTRAN/ALGOL, en particular los de las familias C y Pascal , utilizaban el guion para el operador infijo de resta y no deseaban requerir espacios a su alrededor (como lenguajes de formato libre ), lo que impedía su uso en identificadores.
Una alternativa es usar guiones bajos; esto es común en la familia C (incluido Python), con palabras en minúsculas, que se encuentran por ejemplo en The C Programming Language (1978), [ 4 ] y se ha llegado a conocer como snake case o snail case . Los guiones bajos con mayúsculas, como en UPPER_CASE, se usan comúnmente para macros de preprocesador de C , por lo que se conoce como MACRO_CASE, y para variables de entorno en Unix, como BASH_VERSION en bash . A veces esto se denomina humorísticamente SCREAMING_SNAKE_CASE (o alternativamente SCREAMING_SNAIL_CASE).
palabras separadas por mayúsculas y minúsculas
Otro enfoque es indicar los límites de las palabras usando mayúsculas mediales, llamadas " camelCase ", "PascalCase" y muchos otros nombres, lo que convierte respectivamente " two words" en " twoWords" o " TwoWords". Esta convención se usa comúnmente en Pascal , Java , C# y Visual Basic . El tratamiento de las siglas en los identificadores (por ejemplo, " XML " y " HTTP " en XMLHttpRequest) varía. Algunos dictan que estén en minúsculas (por ejemplo XmlHttpRequest) para facilitar la escritura, la legibilidad y la segmentación , mientras que otros las dejan en mayúsculas (por ejemplo XMLHTTPRequest) para mayor precisión.
Metadatos y convenciones híbridas
Algunas convenciones de nomenclatura representan reglas o requisitos que van más allá de los requisitos de un proyecto o dominio de problema específico, y que en cambio reflejan un conjunto de principios generales más amplio definido por la arquitectura del software , el lenguaje de programación subyacente u otro tipo de metodología entre proyectos.
notación húngara
Quizás la notación más conocida sea la notación húngara , que codifica el propósito ("Apps Hungarian") o el tipo ("Systems Hungarian") de una variable en su nombre. [ 5 ] Por ejemplo, el prefijo "sz" para la variable szName indica que la variable es una cadena terminada en nulo.
Notación posicional
Un estilo utilizado para caracteres muy cortos (ocho caracteres o menos) podría ser: LCCIIL01, donde LC sería la aplicación (Cartas de Crédito), C para COBOL, IIL para el subconjunto de proceso particular y 01 un número de secuencia.
Este tipo de convención todavía se utiliza activamente en mainframes que dependen de JCL y también se observa en el estilo MS-DOS 8.3 (máximo ocho caracteres con separador de punto seguido de un tipo de archivo de tres caracteres).
Esquema de palabras compuestas (del idioma)
El lenguaje "OF" de IBM se documentó en un manual del IMS ( Sistema de Gestión de la Información ). En él se detallaba el esquema de palabras PRIME-MODIFIER-CLASS, que consistía en nombres como "CUST-ACT-NO" para indicar el "número de cuenta del cliente". Las palabras PRIME servían para identificar las principales "entidades" de interés para el sistema. Las palabras MODIFIER se utilizaban para mayor precisión, cualificación y legibilidad.
Idealmente, las palabras de CLASE serían una lista muy corta de tipos de datos relevantes para una aplicación específica. Algunas palabras de CLASE comunes podrían ser: NO (número), ID (identificador), TXT (texto), AMT (cantidad), QTY (cantidad), FL (bandera), CD (código), W (trabajo), etc. En la práctica, las palabras de CLASE disponibles serían una lista de menos de dos docenas de términos. Las palabras de CLASE, generalmente ubicadas a la derecha (sufijo), cumplían una función muy similar a la de los prefijos de la notación húngara .
El propósito de las palabras CLASS, además de la coherencia, era especificar al programador el tipo de datos de un campo de datos en particular. Antes de la adopción de los campos BOOLEAN (solo dos valores), FL (bandera) indicaba un campo con solo dos valores posibles.
Véase también
- Categoría:Convenciones de nomenclatura
- Convenciones de codificación : estándares y directrices para escribir código.
- Convención de nomenclatura : esquema generalmente acordado para nombrar cosas.
Referencias
- ↑ Raymond, Eric S. (29 de diciembre de 2003). "cuestiones religiosas" . The Jargon File ( ed. versión 4.4.7). Archivado del original el 24 de mayo de 2026. Recuperado el 30 de junio de 2026.
Cuestiones religiosas: n. Preguntas que aparentemente no pueden plantearse sin desencadenar "guerras santas", como "¿Cuál es el mejor sistema operativo (o editor, lenguaje, arquitectura, intérprete de comandos, lector de correo electrónico, lector de noticias)?", "¿Qué hay de ese tipo Heinlein, eh?", "¿Qué deberíamos añadir al nuevo Jargon File?" Véase "guerras santas"; véase también "teología", "fanático" y "comparar con rathole".
- ↑ "Cómo nombrar un paquete" . Oracle . Consultado el 6 de abril de 2026 .
- ↑ Wium Lie, Håkon; Bos, Bert. "Cascading Style Sheets, level 1" . W3C . Consultado el 6 de abril de 2026 .
- ↑ Kernighan, Brian ; Ritchie, Dennis (1988). El lenguaje de programación C (2.ª ed.). pág. 35.
- ↑ "Cómo hacer que un código erróneo parezca erróneo" . Joel on Software . 11 de mayo de 2005.
- Código fuente
- Convenciones de nomenclatura