Der Begriff Schlüsselwort (englisch keyword) oder reserviertes Wort bezeichnet in einer Programmiersprache ein Wort (englisch token), das eine durch die Definition dieser Programmiersprache bestimmte Bedeutung hat, und nicht als Name von Variablen oder Funktionen verwendet werden darf. Sämtliche reservierten Wörter sind dem Compiler der Programmiersprache bekannt und werden in der lexikalischen Analyse verwendet.

Schlüsselwörter sind das „Vokabular“ einer jeden Programmiersprache. Deshalb versucht man im Sinne der Erlernbarkeit die Anzahl gering zu halten. Man kann in entsprechenden Programmierlehrbüchern oder Internet für fast jede Sprache eine Übersicht, eine sogenannte Referenztabelle, finden.

Dabei ist anzumerken, dass die praktisch unendliche Vielfalt an Programmen und Anwendungen durch einen so relativ geringen Sprachumfang von selten über 50 Schlüsselwörtern realisiert werden kann.

Definition

Ein Schlüsselwort ist ein Wort, das wie ein normales Wort „aussieht“, also die übliche lexikalische Syntax von Bezeichnern erfüllt – zum Beispiel eine Folge von Buchstaben –, aber nicht als Bezeichner verwendet werden darf. Zum Beispiel ist das Wort if üblicherweise ein Schlüsselwort, während x im Allgemeinen keines ist, so dass x = 1 eine gültige Zuweisung ist, if = 1 jedoch nicht.

Schlüsselwörter haben unterschiedliche Verwendungszwecke. So können Schlüsselwörter in den meisten Programmiersprachen in verschiedenen Kategorien zusammengefasst werden:[1][2][3]

Vergleicht man deren Referenzen mit Programmiersprachen wie C und deren Erweiterung C++[4] oder anderen höheren Programmiersprachen stellt man fest, dass es eine Reihe von Übereinstimmungen gibt.

Gerade Erweiterungen von Programmiersprachen greifen natürlich auf den Sprachumfang des Vorgängers zurück und erweitern diesen gegebenenfalls. Ein weiterer Grund für eine Vielzahl von immer wieder benutzen Schlüsselwörtern findet sich in der Geschichte der Programmiersprachen.

Die unterschiedlichen Definitionen sind klar, wenn eine Programmiersprache durch eine Kombination aus einem Tokenizer und einem Parser analysiert wird und die Syntax der Sprache durch eine lexikalische Grammatik für die Wörter und eine kontextfreie Grammatik der Produktionsregeln für die Phrasen erzeugt wird. Dies ist bei der Analyse moderner Programmiersprachen üblich, und in diesem Fall sind Schlüsselwörter eine Teilmenge reservierter Wörter, da sie von Bezeichnern auf Wortebene unterschieden werden müssen, um auf Phrasenebene syntaktisch unterschiedlich analysiert zu werden.

In diesem Fall werden Schlüsselwörter als Teil der lexikalischen Grammatik definiert und jeweils als separater Typ gekennzeichnet, der sich von Bezeichnern unterscheidet. In der herkömmlichen Notation werden die Schlüsselwörter if und then beispielsweise als Typen IF bzw. THEN tokenisiert, während x und y beide als Typbezeichner tokenisiert werden.

Siehe auch

Einzelnachweise

  1. Microsoft Docs: C# Keywords
  2. Microsoft Docs: Keywords (C++)
  3. Oracle: Java Language Keywords
  4. https://wwwuser.gwdg.de/~kboehm/ebook/30_anh_b_w6.html Keyword Übersicht für C++ und C