予約語 (Ada)
この項目ではプログラミング言語Adaにおける予約語(よやくご)に関して説明する。
この項目ではプログラミング言語の詳細には立ち入らないが、Adaの特徴も踏まえつつ,C言語など,他言語の予約語との比較・対照ができるような説明を目的としている。
Adaの予約語の特徴
編集- Adaには72の予約語がある。
- AdaではC言語などに比べて記号の使用が少なく、例えば括弧のうち{}[]や,!%^などは字句要素として用いられない。Adaの予約語のなかには、C言語などにおいて記号が用いられるような用途での予約語も多い(begin, end, and, or, not, arrayなど)。
- 識別子として既定義の語もある(Character, String, Integer, Float, Boolean, True, Falseなど)が、これらは予約語ではない。異なる名前空間とすることにより,ユーザ (プログラマ) が別の定義を与えて使用することも可能である。
- C言語などと異なり、大文字・小文字の区別がないため、例えば予約語forに対して、For・FORなどはユーザ定義の識別子としては使用できない。
用途別分類
編集この節の加筆が望まれています。 |
ある予約語はここで分類する用途のみならず、種々の場合に用いられるので留意されたい。例えばrangeは整数型定義だけでなく,制御構造や,データ型の内部表現指定(ビットフィールド)にも用いる。
型(クラス)定義に関する予約語
編集Adaでは、プログラマによるデータ型の生成が比較的自在にできるため、型自体ではなく,型の定義にかかわる予約語について分類する。
- 型定義一般
- type,is
- 整数型定義
- range, mod
- 固定小数点型定義
- delta
- 浮動小数点型定義
- digits
- 配列型定義
- array, of
- レコード型(構造体)定義
- record
- アクセス型(ポインタ)定義
- access
- 型定義の修飾
- limited, private, tagged, interface, synchronized
- 型の派生(継承)・部分型
- new, subtype, with
- タスク型(能動的クラス)定義
- task
- 保護型(排他制御付き受動クラス)定義
- protected
演算に関する予約語
編集- 論理演算
- not, and, or, xor
- 数値演算
- abs, mod, rem
構造に関する予約語
編集- プログラム構造
- begin, end, declare
- if, then, else, elsif, exit, case, when, others, loop, reverse, while, for, goto, return
- procedure, function, in, out, entry, abstract, overriding
- package
- exception, raise
- abort, accept, do, delay, until, requeue, select, terminate
変数(オブジェクト)に関する予約語
編集- all, constant, aliased
その他の予約語
編集- at, pragma, use, renames
言語規格改訂にともなう増加
編集- Ada83からAda95の改訂で予約された語: abstract, aliased, protected, requeue, tagged, untilの6語
- Ada95からAda2005の改訂で予約された語: interface, overriding, synchronizedの3語
予約語の一覧
編集- abort
- abs
- abstract
- accept
- access
- aliased
- all
- and
- array
- at
- begin
- body
- case
- constant
- declare
- delay
- delta
- digits
- do
- else
- elsif
- end
- entry
- exception
- exit
- for
- function
- generic
- goto
- if
- in
- interface
- is
- limited
- loop
- mod
- new
- not
- null
- of
- or
- others
- out
- overriding
- package
- pragma
- private
- procedure
- protected
- raise
- range
- record
- rem
- renames
- requeue
- return
- reverse
- select
- separate
- subtype
- synchronized
- tagged
- task
- terminate
- then
- type
- until
- use
- when
- while
- with
- xor