予約語 (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

プログラミング言語の構文
Ada