予約語 予約語の概要

予約語

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/21 22:49 UTC 版)

ナビゲーションに移動 検索に移動

概要

予約語と似ていてしばしば混同されてしまう言葉に「キーワード」(keyword) があるが、プログラミング言語の種類、また文脈によってreserved wordとkeywordは全く違う意味を持ちうるので、両者は異なる用語・概念と扱われている場合が多い。そのため、一旦は別物である可能性が高いとみなして扱うほうが安全である。

たとえば「予約語」という用語を「処理系で内部的に使う名前と同じであるといった理由で予約されているためにユーザーは使えない識別子」という意味で使っている規格もある[要出典]。この場合予約語はキーワードとは別のものである。

一方、「キーワード」は言語仕様上特別な意味を持った語のことである。キーワードであっても予約語でないこともあるし、その逆もある。たとえばECMAScript (ECMA-262) 5th Edition (ES5) では、classextendsは予約されており予約語だが言語で使われておらずキーワードではない。しかしECMA-262 6th Edition (ES6) では新たにサポートしたクラス構文のために使われるキーワードとなった。ECMA-262 では、キーワードは予約語の部分集合で、言語で制御構造などの意味を持つ予約語がキーワードである。Javaでは言語で使われていないgotoconstもキーワードである。SQLには予約されたキーワードと予約されていないキーワードがある。例にも出てきたように、個々の規格によっても両者それぞれ微妙に意味が違うこともある。

なお、FORTRANPL/Iのように予約語を持たないプログラミング言語もある。

「予約されたキーワード」(reserved keywords) や「予約されていないキーワード」(unreserved keywords) という用語が使用されている場合もある[4][5]

共通言語基盤 (CLI) 向けの共通言語仕様 (CLS) にしたがって実装されたC#VB.NETでは、キーワードを識別子として利用する構文が用意されている。

  • C#では@classなどのように先頭に@をつけることで識別子として利用することができる[6]
  • VB.NETでは[Class]などのように[...]で囲むことで識別子として利用することができる[7]
  • F#では``class``などのように``...``で囲むことで識別子として利用することができる[8]

上記の機能は、CLSを満たす他の.NET言語で記述されてアセンブリに公開されたシンボルの名前を使う場合などでも有用である。例えばC#ではDimはキーワードではないため、プロパティなどの名前として使用できるが、VB.NETではキーワードであるためそのままでは使えず、相互運用に支障が出る。そこで、シンボル名を使用する際に[Dim]と記述することでVB.NETでも識別子として使えるようになる。

主な言語の予約語やキーワード

Ada

C言語

C言語はキーワード (keywords) の他、予約済みの識別子 (reserved identifiers) を持つ[9][10]。正確な詳細は ISO/IEC 9899 規格を参照のこと。

なお、IBMz/OSのドキュメントでは「reserved keywords」と呼んでいる[11]が、この用語はCの標準規格に準じたものではなく、厳密には誤りである。

C++

C++には、C言語由来のキーワードと、C++で新たに追加されたキーワードがある[12]。また、予約済みの識別子のルールもCと似ているが、若干異なる部分がある[13]。正確な詳細は ISO/IEC 14882 規格を参照のこと。

C#

C#の構文はC/C++やJavaによく似ており、キーワードも類似している。

COBOL

COBOLは、500ほどの予約語がある[14]

FORTRAN

FORTRANにはキーワードがあるが、予約語を持たない。

Java

Javaの構文はC/C++によく似ており、キーワードも類似している。

Pascal

Pascalでは特殊記号 (special-symbol) の中に含まれる部分集合として、綴り記号 (word-symbol) という用語が使われる。『PASCAL 原書第4版』(培風館、1981)では word symbol の訳として「綴り記号」という用語を使っている。また、同書には「綴り記号(すなわち予約語)」という記述がある(p.12)。

ISO/IEC 7185:1990 の翻訳である JIS X 3008:1994「プログラム言語Pascal」では、「word-symbol」に対して「予約語」という翻訳を割り当てている。

特殊記号は、+, -などの演算子に使われる記号に加えて、begin, endなどの綴り記号を含む。


  1. ^ a b 予約語(reserved word)とは - IT用語辞典 e-Words
  2. ^ Collins, reserved words
  3. ^ Reserved word Definition & Meaning | Dictionary.com Dictionary.com, “a word in a programming language or computer system that has a fixed meaning and therefore cannot be redefined by a programmer”
  4. ^ Keywords - Visual Basic | Microsoft Docs
  5. ^ キーワード - Visual Basic | Microsoft Docs
  6. ^ @ - C# リファレンス | Microsoft Docs
  7. ^ 宣言された要素の名前 - Visual Basic | Microsoft Docs
  8. ^ シンボルと演算子のリファレンス - F# | Microsoft Docs
  9. ^ C のキーワード - cppreference.com
  10. ^ 識別子 - cppreference.com (C)
  11. ^ C reserved keywords - IBM Documentation
  12. ^ C++ のキーワード - cppreference.com
  13. ^ 識別子 - cppreference.com (C++)
  14. ^ [1]
  15. ^ これらはES5時点では予約語だったが、ES6で追加された新機能に使われることになり、キーワードに昇格した。
  16. ^ C++03ではテンプレートのエクスポート機能のために使われていたが、C++11ではその機能が廃止された。のちにC++20ではモジュール機能のために再利用されることになった。
  17. ^ 非推奨だったregisterキーワードを削除 - cpprefjp C++日本語リファレンス
  18. ^ C# Keywords | Microsoft Docs


「予約語」の続きの解説一覧



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

予約語のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



予約語のページの著作権
Weblio 辞書情報提供元は参加元一覧にて確認できます。

  
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの予約語 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2022 GRAS Group, Inc.RSS