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

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

Par exemple, dans la proposition de concepts en C ++, on peut lire l’instruction 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 des mots réservés.

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

Les 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 le langage.

En pratique, la plupart des mots-clés sont des mots réservés et inversement. Mais parce que ce sont 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é ( par exemple parce qu’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é (par conséquent, vous ne pouvez pas l’utiliser du tout)
  • Fortran n’a pas de mots réservés, tous les mots-clés (if, then, etc.) peuvent être utilisés comme identificateurs

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

Tous les mots-clés ne sont pas des mots réservés dans toutes les langues. Dans 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 selon le contexte, ils peuvent être interprétés comme des variables par le compilateur.

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

Il semble que les concepteurs de Java nous disent “Nous n’allons pas utiliser ‘goto’, et vous non plus”.

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

Je suppose que keyword est un mot utilisé comme “mot-clé” (comme if, for, switch, etc …) alors qu’un mot réservé est quelque chose que vous ne pouvez pas utiliser comme nom de variable dans une future version du langage.

  • Mot-clé: Il a un sens et nous pouvons utiliser dans le programme.
  • Mot réservé: Nous ne pouvons pas utiliser dans le programme. Ils peuvent être utilisés à l’avenir. Exemple: goto

En réalité, cela dépendra beaucoup du contexte. Par exemple, la norme ISO C ++ indique que des mots comme “if”, “while”, “int”, etc. ne sont pas des mots réservés , sauf une fois, dans une note de bas de page. signifiait 🙂

La norme doe spécifie les 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.

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 identificateurs dans le codage. Mots réservés: Les mots de réserve sont les mots réservés à une utilisation future. En java, const et goto sont les mots réservés qui ne sont pas utilisés actuellement et peuvent être ramenés à java à l’avenir. 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 plus récent, je suppose) contient 50 mots-clés, y compris goto et const. Donc, goto et const sont les mots-clés qui sont réservés.

Les mots et les mots-clés réservés sont pour la plupart identiques et ont des significations prédéfinies dans GW-BASIC … ceux-ci ont des utilisations prédéfinies et ne peuvent être utilisés ou redéfinis à d’autres fins dans Basic. Les mots-clés ne peuvent pas être utilisés comme nom de variable. Certains des mots-clés de Basic sont … IF , THEN , WHILE etc.

motclé , – un mot ayant une signification particulière dans un contexte particulier. C’est la définition sémantique .

mot réservé est un mot qui ne peut pas être utilisé comme identifiant – par exemple, variable et nom de fonction. C’est la définition syntaxique .

Par exemple, en Java, tous les mots-clés sont des mots réservés. Probablement pas l’inverse. goto est un mot réservé mais non utilisé et n’a aucune fonction.

Dans les langues plus anciennes comme FORTRAN, il y avait des mots-clés mais pas de mots réservés.

Cependant, les mots-clés et les mots réservés sont interchangeables.