Ada

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

テンプレート:Infobox プログラミング言語

Ada(エイダ)は、プログラミング言語の一つ。ALGOLPascalに類似した文法と、高度な型の体系をもつ。

史上初のプログラマとされるエイダ・ラブレスの名前にちなんでAdaと命名されているため、ADAと表記するのは誤り。

フリーのコンパイラとしては、GNATなどがある。

ボーイング777や、F-22戦闘機の制御ソフトウェアはAdaによって書かれている。

Ada 83

ファイル:Ada types.png
Adaのデータ型の階層構造

1979年米国国防総省が信頼性・保守性に優れた、主として組み込みシステム向けの言語を作りたいという意図のもと、国際競争入札を行い4社に発注、各設計仕様書の表紙が赤、青、黄、緑だったことから、そのままそれぞれの言語名称としてRED、BLUE、YELLOW、GREENと呼ばれた。この入札で優勝したのはフランス人チームで、公平を期すため選定時にはGREENと名付けられた。そのような理由から、イメージカラーは緑である。特徴的な要件としては、大規模開発や長期保守性の観点から、

  • コーディング効率よりも可読性を重視すること
  • マクロを有しないこと

などがあった。

プログラム言語としての機能としては、

  • 強い型検査(コンパイル時および実行時)
  • パッケージ(後にC++namespaceとして追従)
  • 汎用プログラミング(後にC++がテンプレートとして追従)
  • 並行プログラミング
  • 例外

など、当時としては先進的な概念を網羅的に取り入れたため、米国国防総省が言語仕様をまとめるのに、初版のStrawman(わら男)からWoodenman(木男)、Tinman(ブリキ男)、Ironman(鉄男)、最終版のSteelman(鋼鉄男)に至るまで5つのバージョンを作らざるを得なかったほどである。

結局、言語仕様は1983年にMIL規格として規格化され、後にANSI標準、1987年ISO標準と標準化された。MIL規格は、エイダ・ラブレスの生年である1815年に因んで、MIL-STD-1815と採番された。

言語仕様の大きさや厳密さのため、コンパイラ技術も計算機処理速度も低かった当時は、ミニコンやワークステーションでないとコンパイラが稼働しなかった。そのため、パソコンしか有しない個人プログラマの手の届くものではなく、大企業において、主として信頼性や保守性を要求されるシステムの開発でのみ普及した。

この時期としては先進的であった、その他の特徴としては、

コンパイラの認定制度
仕様準拠か否かの検証プログラムキットが規定され、合格しない処理系は「Adaコンパイラ」と称することができない。
自動ビルド
複数モジュールの依存性から、再コンパイルの要否を自動判定する(いわゆるMakefileの記述が不要)

などがあげられる。

Ada 95 (Ada 9X)

1990年より、主としてタスキング仕様の改善およびオブジェクト指向の導入を目的として、ISO標準 (ISO/IEC 8652:1987) の改訂作業が開始された。

この時点では、改訂年度が未定であったため、Ada 9Xと通称されていた。

1995年2月15日にISO標準として改訂が承認され、オブジェクト指向言語のうち、史上初の国際標準となった。

この時点で、オブジェクト指向の他、下記のような仕様も標準化されている。

  • 他言語とのインタフェース方法 C/FORTRAN/COBOL
    この時点でC++とのインタフェース方法が規定できなかったのは、C++がISO標準ではなかったからである(言語仕様の紛糾を経て、約3年半後の1998年9月1日に承認された)
  • 分散処理 (RPC)

続いて2000年にTechnical Amendmentが発行されており、これがAdaの最新規格である。また、同改訂版が2002年JIS規格改正 (JIS X 3009:2002) に対応する。JIS X 3009は本文の翻訳はしていない「要約JIS」である。2012年1月20日を以って「国際規格周知を目的として要約JISを発行したが,周知としての目的は終了したため。」として廃止されている。

2003年現在、単にAdaと言えば、1995年版 (ISO/IEC 8652:1995/COR1:2000) を指す。1983年版を明示する場合は、Ada 83という。

Ada 2005

その後、さらに2005年頃を目標とした改訂が進行し、Ada 0Yと通称されていた。2005年にリリースされたこのAda 2005が現在のところの最新版であり、さらにAda 2012への改定作業が進められている。

外部リンク

関連項目