Mots clés ont un sens spécial dans un langage, et font partie de la syntaxe.
Mots réservés sont des mots qui ne peuvent pas être utilisés comme identifiants (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 vice versa. Mais parce qu'ils sont deux choses différentes, il peut arriver qu'un mot clé ne soit pas un mot réservé (par exemple, un mot clé a seulement un sens dans un contexte particulier, et peut donc être utilisé comme identifiant), ou qu'un mot réservé ne soit pas un mot clé (par exemple, parce qu'il est réservé pour une utilisation future).
Mise à jour: Quelques exemples donnés par d'autres qui illustrent 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 n'a aucun mot réservé, tous les mots clés (if, then, etc.) peuvent être utilisés comme identifiants