Palabra reservada


En un lenguaje informático , una palabra reservada (también conocida como identificador reservado ) es una palabra que no se puede utilizar como identificador , como el nombre de una variable, función o etiqueta ; está "reservada de uso". Esta es una definición sintáctica y una palabra reservada puede no tener un significado definido por el usuario.

Una noción estrechamente relacionada y a menudo combinada es una palabra clave , que es una palabra con un significado especial en un contexto particular. Esta es una definición semántica . Por el contrario, los nombres en una biblioteca estándar pero que no están integrados en el idioma no se consideran palabras reservadas ni palabras clave. Los términos "palabra reservada" y "palabra clave" a menudo se usan indistintamente; se puede decir que una palabra reservada está "reservada para usar como palabra clave", y el uso formal varía de un idioma a otro; para este artículo distinguimos como arriba.

En general, las palabras reservadas y las palabras clave no tienen por qué coincidir, pero en la mayoría de los idiomas modernos, las palabras clave son un subconjunto de las palabras reservadas, ya que esto facilita el análisis, ya que las palabras clave no se pueden confundir con los identificadores. En algunos lenguajes, como C o Python, las palabras reservadas y las palabras clave coinciden, mientras que en otros lenguajes, como Java, todas las palabras clave son palabras reservadas, pero algunas palabras reservadas no son palabras clave: están "reservadas para uso futuro". En otros lenguajes, como los lenguajes más antiguos ALGOL , FORTRAN y PL/I , hay palabras clave pero no palabras reservadas, y las palabras clave se distinguen de los identificadores por otros medios. Esto hace que el análisis sea más difícil con los analizadores anticipados necesarios.

Los conjuntos de palabras reservadas y palabras clave en un idioma a menudo coinciden o son casi iguales, y la distinción es sutil, por lo que los términos a menudo se usan indistintamente. Sin embargo, en el uso cuidadoso se distinguen.

Hacer que las palabras clave sean palabras reservadas facilita la lectura , ya que una cadena de caracteres será inequívocamente una palabra clave o un identificador, sin depender del contexto; por lo tanto, las palabras clave suelen ser un subconjunto de palabras reservadas. Sin embargo, las palabras reservadas no necesitan ser palabras clave; por ejemplo, en Java, gotoes una palabra reservada, pero no tiene significado y no aparece en ninguna regla de producción de la gramática. Esto generalmente se hace por compatibilidad con versiones anteriores , por lo que una palabra reservada puede convertirse en una palabra clave en una versión futura sin romper los programas existentes.

Por el contrario, las palabras clave no necesitan ser palabras reservadas, con su función entendida por el contexto, o pueden distinguirse de otra manera, como stropping . Por ejemplo, la frase if = 1no es ambigua en la mayoría de las gramáticas, ya que una declaración de control de una cláusula if no puede comenzar con un =y, por lo tanto, está permitida en algunos idiomas, como FORTRAN . Alternativamente, en ALGOL 68 , las palabras clave se deben marcar (marcar de alguna manera para que se distingan) en el lenguaje estricto al enumerarlas en negrita y, por lo tanto, no son palabras reservadas. Por lo tanto, en el lenguaje estricto, la siguiente expresión es legal, ya que la palabra clave en negrita si no entra en conflicto con el identificador ordinario if: