出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/12/03 22:16 UTC 版)
| パラダイム | 手続き型 |
|---|---|
| 登場時期 | 1978年頃 |
| 設計者 | ニクラウス・ヴィルト |
| 型付け | 強い静的型付け |
| 主な処理系 | XDS, MacMETH |
| 影響を受けた言語 | Mesa、Pascal |
Modula-2(モジュラ・ツー)は、コンピュータのプログラミング言語の一種で、1978年頃にチューリッヒ工科大学のニクラウス・ヴィルトにより、先立って構想されたプログラミング言語「Modula」の後継として創案されたものである。汎用手続き型言語で、構文の多くは同様にヴィルトの手掛けたPascal言語に基いたものとなっている。名前「Modula-2」は「モジュールの」を意味する英語「modular」に由来する。
Pascal との上位互換にはなっていない。Pascal にモジュールの概念を追加し、分割コンパイルやソフトウェア部品のライブラリ化による再利用が可能である。また、単一の処理装置での並行処理を可能にするコルーチンや、データ抽象化の機能を持つ。一方では、ハードウェアへの直接アクセスなども可能にしている。各ライブラリは、定義モジュールと実現モジュールの2つのファイルから構成され、ライブラリの整合性はリンク時に厳密に検査される。全体として、Adaの縮小版のような仕様である。
ヴィルト自身がビットスライスプロセッサを使用し、ハードウェア管理から、独自のウインドウシステムを持つオペレーティングシステムを含めたオリジナルのワークステーションシステム Lilith の全体を Modula-2 だけで構築して見せ、その実用性と強力さを示した。
発表当時は、究極の手続き型言語ともてはやされたが、現在では、Ada と同様、あまり広く使用されているとは言えない。
IF 文などの制御文は複数の文を対象とするため、明示的に予約語 END で閉じる。else if のかわりに ELSIF を用いる。GOTO 文はない。代わりに無限ループを構成する LOOP 文とそれから脱出する EXIT 文を持つ。FOR文は予約語 BY によって増分を 1 か -1 以外にもできる。予約語 DOWNTO はない。PROCEDURE で開始する。関数は RETURN 文で値を返すことができる。手続きの終わりを示す END の後ろには手続き名を書く必要がある。手続き型の変数が存在する。 MODULE sample ;
FROM InOut IMPORT WriteLn,WriteString ;
BEGIN
WriteString('This is Modula-2') ;
WriteLn
END sample.
Modula-2 は、ISO 10514 として規格化されている。対応する日本工業規格は存在しない。
ヴィルトの著作『Programming in Modula-2』(Springer-Verlag, 1982年初版、1988年4版)は、Modula-2 の紹介とレポートから構成され、あまり厳密ではないが標準的なものとして扱われる。3版は邦訳が出ている。
ほかに、ヴィルトによる Modula-2 の著作で、邦訳されているものに以下のものがある。
固有名詞の分類