コンテキストキーワード
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/21 22:49 UTC 版)
コンテキストキーワード (contextual keywords) はC#やC++などの言語で採用されている特殊なキーワードで、文脈キーワード、文脈依存キーワードとも言われる。実際のところ、goto を go to とも書けたり、elseif 相当を else if という2語で1語扱いであったりと、文脈依存文法的なキーワードはさほど特殊でもなく、珍しいものでもない。 言語を後から拡張する場合、新しい構文やキーワードあるいは予約語を追加すると既存のコードとの互換性が壊れてしまう場合がある。例えば、既存の変数やメソッドの名前が新しいキーワードあるいは予約語と同じだった場合、新しい言語仕様では構文エラーとなる。しかし、完全に将来の拡張を予期してあらゆるキーワードを予約しておくことは困難であり、予約語が拡張の障害になりうる。 そこで、新しく拡張された構文の中でのみキーワードとして動作するのがコンテキストキーワードである。コンテキストキーワードは特定の構文以外では変数などの名前として使用できるため、既存のコードを破壊することがない。 例えば、C#のプロパティ構文では、C# 1.0の登場当初からget、set、valueという多くの名前に使われているであろう語をコンテキストキーワードとして定義している。これは例えばC/C++やJavaのコードをC#に移植する際に、名前の衝突を避けるのに役立つ。C# 5.0で追加されたasync/await構文でも、コンテキストキーワードを利用して言語仕様が拡張されている。
※この「コンテキストキーワード」の解説は、「予約語」の解説の一部です。
「コンテキストキーワード」を含む「予約語」の記事については、「予約語」の概要を参照ください。
- コンテキストキーワードのページへのリンク