予約語
予約語(よやくご)とは、プログラミング言語において字句的には識別子(変数名、関数名、クラス名など)としてのルールを満たしているにもかかわらず、識別子として使えない字句要素。
似ている言葉としてキーワードがある。多くのプログラミング言語において予約語とキーワードはほぼ同じものを指すため、しばしば混同されるが両者は異なる概念である。キーワードは言語仕様上特別な意味を持った語のことである。キーワードであっても予約語でないこともあるし、その逆もある。たとえばECMAScript(ECMA-262 5th Edition)では、class
は予約されており予約語だが言語で使われておらずキーワードではない(ECMA-262 では、キーワードは予約語の部分集合で、言語で制御構造などの意味を持つ予約語がキーワードである。Javaでは使っていなくてもキーワードであり、goto
もキーワードである)。SQLには予約されたキーワードと予約されていないキーワードがある。例にも出てきたように、個々の規格によっても両者それぞれ微妙に意味が違うこともある。
予約されているのでユーザーは使えない識別子(つまり、使えないだけで、識別子ではある)という意味で(たとえば、処理系で内部的に使う名前と同じであるとか)「予約語」という語を使っている規格もある。この場合キーワードと予約語は別のものである。
PL/Iのように予約語を持たないプログラミング言語も存在する。
予約語となりうる単語
- 流れ制御を表す単語 (if, whileなど)
- プログラムの構成要素を表す単語 (function, classなど)
- 組み込み関数 (open, readなど)