Pregunta ¿Cuál es la diferencia entre "palabra clave" y "palabra reservada"?


¿Cuál es la diferencia entre un palabra clave y un palabra reservada?

Por ejemplo, en el propuesta de conceptos en C ++ uno puede leer la siguiente declaración:

Esta propuesta introduce cinco palabras clave nuevas: concepto, mapa conceptual, dónde, axioma y verificación tardía. Todas estas palabras clave también serán   palabras reservadas.


44
2017-07-03 11:17


origen


Respuestas:


Palabras clave tienen un significado especial en un idioma, y ​​son parte de la sintaxis.

Palabras reservadas son palabras que no pueden usarse como identificadores (variables, funciones, etc.), ya que están reservadas por el idioma.

En la práctica, la mayoría de las palabras clave son palabras reservadas y viceversa. Pero debido a que son dos cosas diferentes, puede suceder que una palabra clave no sea una palabra reservada (por ejemplo, una palabra clave solo tiene significado en un contexto especial y puede usarse como un identificador) o una palabra reservada no es una palabra clave ( por ejemplo, porque está reservado para uso futuro).

Actualización: algunos ejemplos dados por otros que ilustran la distinción:

  • En Java, goto es una palabra reservada pero no una palabra clave (como consecuencia, no puede usarla en absoluto)
  • Fortran tiene no palabras reservadas, todas las palabras clave (si, entonces, etc.) se pueden usar como identificadores

48
2017-07-03 11:22



Solo para mostrar que la distinción es muy significativa:

No en todos los idiomas están todas las palabras clave reservadas. En Fortran es posible hacer esto:

if if then then else else

En este caso, las palabras clave no están reservadas, pero dependiendo del contexto pueden ser interpretadas por el compilador como variables.


17
2017-07-03 11:30



Un buen ejemplo de esta distinción es "goto" en Java. No es una palabra clave de idioma (es decir, no es Java válida), pero es una palabra reservada

Parece que los diseñadores de Java nos dicen "No vamos a usar 'goto', y tú tampoco".


8
2017-07-03 11:25



Wiki dice esto: "Una palabra clave es una palabra que es especial solo en ciertos contextos, pero una palabra reservada es una palabra especial que no puede usarse como un nombre definido por el usuario".

http://en.wikipedia.org/wiki/Reserved_word#Reserved_word_vs._keyword


5
2017-07-03 11:20



Supongo que palabra clave es una palabra usada como "palabra clave" (como si, para, cambiar, etc.) mientras que una palabra reservada es algo que no puedes usar como nombre de variable porque podría convertirse en una palabra clave en una versión futura del idioma.


1
2017-07-03 11:20



  • Palabra clave: Tiene algún significado y podemos usarlo en el programa.
  • Palabra reservada: no podemos usar en el programa. Se pueden usar en el futuro. Ejemplo: goto

1
2017-10-10 13:16



Realmente dependerá mucho del contexto. Por ejemplo, el estándar ISO C ++ dice que cosas como "si", "mientras", "int", etc. son palabras clavey en realidad no usa el término palabra reservada, excepto una vez, en una nota al pie, donde probablemente se suponía algo más :-)

La gama estándar especifica nombres reservados - por ejemplo, todos los nombres que comienzan con un guión bajo y una letra mayúscula son nombres reservados.


0
2017-07-03 11:25



Palabras clave: Palabras clave tiene algunas funcionalidades especiales para el compilador. Por lo tanto, las palabras clave no se pueden usar como identificadores en la codificación. Palabras reservadas: palabras de reserva son las palabras que están reservadas para uso futuro. En java, const y goto son las palabras reservadas que no se están usando actualmente y pueden volver a Java en el futuro. Si miramos aquí palabras clave de lenguaje Java (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html), Dice que java (lo último, supongo) tiene 50 palabras clave, incluidas goto y const. Entonces goto y const son las palabras clave que están reservadas.


0
2017-09-24 15:18



Las palabras reservadas y las palabras clave son en su mayoría iguales y tienen significados predefinidos en GW-BASIC... estos tienen usos predefinidos y no se pueden usar o redefinir para ningún otro propósito en Básico. Las palabras clave no se pueden usar como nombre de variable. Algunas de las palabras clave de Basic son ...IF, THEN, WHILE etc.


-1
2018-01-07 06:52