web-dev-qa-db-fra.com

Quelle est la différence entre "mot clé" et "mot réservé"?

Quelle est la différence entre un mot clé et un réservé Word?

Par exemple, dans la proposition pour les concepts en C++ , on peut lire la déclaration suivante: 

Cette proposition introduit cinq nouveaux mots-clés: concept, carte conceptuelle, où, axiome et vérification tardive. Tous ces mots clés seront également mots réservés.

48
Piotr Dobrogost

Les mots-clés ont une signification particulière dans une langue et font partie de la syntaxe.

Mots réservés sont des mots qui ne peuvent pas être utilisés comme identificateurs (variables, fonctions, etc.), car ils sont réservés par la langue.

En pratique, la plupart des mots-clés sont des mots réservés et inversement. Mais comme il s’agit de deux choses différentes, il peut arriver qu’un mot clé ne soit pas un mot réservé (par exemple, un mot clé n’a de sens que dans un contexte particulier et peut donc être utilisé comme identifiant), ou un mot réservé n’est pas un mot clé ( par exemple, car il est réservé pour une utilisation future).

Mise à jour: Quelques exemples donnés par d'autres illustrant la distinction:

  • En Java, goto est un mot réservé mais pas un mot clé (en conséquence, vous ne pouvez pas l'utiliser du tout)
  • Fortran a non mots réservés, tous les mots clés (si, alors, etc.) peuvent être utilisés comme identificateurs
56
molf

Juste pour montrer que la distinction est très significative: 

Dans toutes les langues, tous les mots clés ne sont pas réservés. En Fortran, il est possible de faire ceci:

if if then then else else

Dans ce cas, les mots-clés ne sont pas réservés, mais en fonction du contexte, le compilateur peut les interpréter comme des variables.

17

Un bon exemple de cette distinction est "goto" en Java. Ce n'est pas un mot-clé de langue (c'est-à-dire que ce n'est pas Java valide), mais c'est c'est un mot réservé.

Il semble que les concepteurs Java nous disent "Nous n'utiliserons pas 'goto', et vous non plus".

8
skaffman

Le wiki dit ceci: "Un mot clé est un mot spécial uniquement dans certains contextes mais un mot réservé est un mot spécial qui ne peut pas être utilisé comme nom défini par l'utilisateur".

http://en.wikipedia.org/wiki/Reserved_Word#Reserved_Word_vs._keyword

5
Bhushan Bhangale
  • Mot-clé: Cela a un sens et nous pouvons l’utiliser dans le programme. 
  • Mot réservé: Nous ne pouvons pas utiliser dans le programme. Ils peuvent être utilisés dans le futur . Exemple: goto
1
Sravanthi

J'imagine que mot-clé est un mot utilisé comme "mot-clé" (comme si, pour, basculer, etc.) alors qu'un mot réservé est quelque chose que vous ne pouvez pas utiliser comme nom de variable car il pourrait devenir un mot-clé dans une version future du langage.

1
CodeClimber

En réalité, cela dépendra beaucoup du contexte. Par exemple, la norme ISO C++ dit que des choses comme "if", "while", "int" etc. sont keywords , et n'utilise pas réellement le terme reserved Word , sauf une fois, dans une note de bas de page, où quelque chose d'autre était probablement signifié :-)

La norme spécifie noms réservés - par exemple, tous les noms commençant par un trait de soulignement et une lettre majuscule sont des noms réservés.

0
anon

Mots-clés: Les mots-clés ont des fonctionnalités spéciales pour le compilateur. Les mots-clés ne peuvent donc pas être utilisés comme identifiants dans le codage . Mots réservés: Les mots de réserve sont les mots réservés pour une utilisation future. En Java, const et goto sont les mots réservés qui ne sont pas utilisés actuellement et qui peuvent être ramenés à Java ultérieurement . Si nous vérifions ici les mots clés du langage Java ( https://docs.Oracle.com/ javase/tutorial/Java/nutsandbolts/_keywords.html ), Il est dit que Java (le dernier, je suppose) a 50 mots-clés, y compris goto et const. Donc, goto et const sont les mots-clés réservés.

0
Kaptan Singh Rana