簡単にAda言語の歴史を振り返ります.
プログラム言語の開発は,特定の人が開始する場合もあれば,特定の組織が始める場合もあります.Ada 言語は後者で,組織だった場合に生じがちな特性があります(例えば,仕様のサイズが大きい).
スタートは,米国の国防総省が,搭載用のプログラム言語を統一化したいという望みから始まっています.フランスのチームが応募し(採用され),幾つかドラフトが作られました.最終のドラフトは鉄の人(Steelman)と呼ばれ,今でも読むことができます1.
1983年に,ほぼ現在と同じ形で仕様が定まり(MIL規格およびANSI規格),Adaという名前を与えられます.Adaは,最初のプログラマと云われている Ada Lovelace (1815-52) に因んで名付けられています.詩人であり作家(「海賊」は素晴らしい)のバイロン卿の一人娘です.このこともあり,Ada 関連のサイトには彼女の肖像があります.本人にはまったく想像できなかったことでしょう.
1987年にISO規格となり,1995年に最初の改訂が行われます.その後,2005年と2012年にも改訂が行われ,Ada 2012 と呼ばれるものが最新になります2.
歴史を振り返った時に,2つの注目すべき点があります.
一つ目は,どの環境でも同様に動作することを目指していたということです.そのため,タスク機構といった本来はOS側で用意される機能も言語レベルで定義されています.また,以前には,ACVC (Ada Compiler Validation Capability) という検定制度がありました.環境とコンパイラのセットで,定められたテストを行います.そのテストに通って,初めて Ada コンパイラと名乗ることが出来ました.
Ada が目指したのは,単なるプログラミング言語となることではない,というのが2点目です.
高い信頼性を持つソフトウェアを作るためには,その前の仕様や設計の記述をきちんとする必要があるというのは,一般的な了解と思います.Ada の仕様策定でもそのことが意識されていました.例えば,基本要素であるパッケージにおいて,仕様部とボディ部が分離していることにも現れています.ボディ部に先立ち,設計の結果として,仕様部を作成する.実装段階で,ボディ部を作り,仕様部との整合性を機械的に確認する.このように,仕様部には,単なるパッケージを説明する以上の役割を与えられています.
或いは,APSE (Ada Programming Support Environment) 3 を考えることもできます.APSE は,その名の通り,当時目指していた Ada の開発環境です.現在では,支援環境を考えるというのは一般的です.しかし,言語ととともに環境についても考えるというのは,未だ大事なテーマの一つだと思います.Ada に対して,形式検証機能を付加できる SPARK もまた,その伝統の中で生まれていると思います.
(NIL)
- http://www.adahome.com/History/Steelman/intro.htm ↵
- 書籍としては,J. Barnes による教科書 Programming in Ada 2012 があります.900ページを越えています ↵
- P. A. Oberndorf, “The Common Ada Programming Support Environment (APSE) Interface Set (CAIS),” in IEEE Transactions on Software Engineering, vol. 14, no. 6, pp. 742-748, June 1988.
doi: 10.1109/32.6154 ↵