この項目ではプログラミング言語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