予約語
予約語(、英: reserved word)とは、プログラミング言語などの人工言語の仕様に定められているもので、ユーザープログラムの開発者が自分で付ける識別名としては利用できない特定の文字列のこと。たとえば変数名や関数名などに使用することができない、とあらかじめ定められた文字列(単語、字句など)のこと。あるいは、プログラミング言語などにおいて、固定された意味を持っており、その結果、プログラマーの側ではその意味を再定義できない語。
コンテキストキーワード (contextual keywords) はC#やC++などの言語で採用されている特殊なキーワードで、文脈キーワード、文脈依存キーワード (context-sensitive keywords) とも言われる。
言語を後から拡張する場合、新しい構文やキーワードあるいは予約語を追加すると既存のコードとの互換性が壊れてしまう場合がある。例えば、既存の変数やメソッドの名前が新しいキーワードあるいは予約語と同じだった場合、新しい言語仕様では構文エラーとなる。しかし、完全に将来の拡張を予期してあらゆるキーワードを予約しておくことは困難であり、予約語が拡張の障害になりうる。
そこで、新しく拡張された構文の中でのみキーワードとして動作するのがコンテキストキーワードである。コンテキストキーワードは特定の構文以外では変数などの名前として使用できるため、既存のコードを破壊することがない。
例えば、C#のプロパティ構文では、C# 1.