この項目ではプログラミング言語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では、プログラマによるデータ型の生成が比較的自在にできるため、型自体ではなく,型の定義にかかわる予約語について分類する。

 
Adaのデータ型の階層構造
  • 型定義一般
typeis
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語

予約語の一覧

編集
  1. abort
  2. abs
  3. abstract
  4. accept
  5. access
  6. aliased
  7. all
  8. and
  9. array
  10. at
  11. begin
  12. body
  13. case
  14. constant
  15. declare
  16. delay
  17. delta
  18. digits
  19. do
  20. else
  21. elsif
  22. end
  23. entry
  24. exception
  25. exit
  26. for
  27. function
  28. generic
  29. goto
  30. if
  31. in
  32. interface
  33. is
  34. limited
  35. loop
  36. mod
  37. new
  38. not
  39. null
  40. of
  41. or
  42. others
  43. out
  44. overriding
  45. package
  46. pragma
  47. private
  48. procedure
  49. protected
  50. raise
  51. range
  52. record
  53. rem
  54. renames
  55. requeue
  56. return
  57. reverse
  58. select
  59. separate
  60. subtype
  61. synchronized
  62. tagged
  63. task
  64. terminate
  65. then
  66. type
  67. until
  68. use
  69. when
  70. while
  71. with
  72. xor