Modula-2

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

テンプレート:Infobox プログラミング言語 テンプレート:プログラミング言語 Modula-2(モジュラ・ツー)は、コンピュータのプログラミング言語の一種で、1978年頃にチューリッヒ工科大学ニクラウス・ヴィルトにより、先立って構想されたプログラミング言語「Modula」の後継として創案されたものである。汎用手続き型言語で、構文の多くは同様にヴィルトの手掛けたPascal言語に基いたものとなっている。名前「Modula-2」は「モジュールの」を意味する英語「modular」に由来する。

特徴

Pascal との上位互換にはなっていない。Pascal にモジュールの概念を追加し、分割コンパイルやソフトウェア部品のライブラリ化による再利用が可能である。また、単一の処理装置での並行処理を可能にするコルーチンや、データ抽象化の機能を持つ。一方では、ハードウェアへの直接アクセスなども可能にしている。各ライブラリは、定義モジュールと実現モジュールの2つのファイルから構成され、ライブラリの整合性はリンク時に厳密に検査される。全体として、Adaの縮小版のような仕様である。

Pascal との共通点

  • 配列の範囲等の実行時検査が可能である。
  • 手続きや関数を入れ子にできる。
  • 引数は値渡しと参照渡しが使用できる。
  • 手続きや関数の内部で定義された名前はその外部からは参照できない。

Pascalとの相違点

  • 大文字と小文字は区別される、予約語は全て大文字。
  • 標準手続きはライブラリとして提供される。
  • 絶対参照、出入力ポート制御、ビット型などの、ハードウェアを直接操作する低レベル機能を持つ。
  • 内部インタプリタが必要な書式付出力機能を持たない。
  • IF 文などの制御文は複数の文を対象とするため、明示的に予約語 END で閉じる。
  • 手続きと関数の定義は同じ予約語 PROCEDURE で開始する。
  • 関数の返却値は RETURN 文で与える。
  • FORTRAN でいうところの整合配列を使用できる。
  • コメントを入れ子にできる。
  • GOTO 文はない。代わりに無限ループを構成する LOOP 文とそれから脱出する EXIT 文を持つ。
  • FOR文は予約語 BY によって増分を 1 か -1 以外にもできる。予約語 DOWNTO はない。

 MODULE sample ;
 FROM InOut IMPORT WriteLn,WriteString ;
 BEGIN
    WriteString('This is Modula-2') ;
    WriteLn
 END sample.

ヴィルト自身がビットスライスプロセッサを使用し、ハードウェア管理から、独自のウインドウシステムを持つオペレーティングシステムを含めたオリジナルのワークステーションシステム Lilith の全体を Modula-2 だけで構築して見せ、その実用性と強力さを示した。

発表当時は、究極の手続き型言語ともてはやされたが、現在では、Ada と同様、あまり広く使用されているとは言えない。

関連項目

外部リンク