Modula-2
Modula-2の最新ニュースをまとめて検索!
| Modula-2 | |
|---|---|
| パラダイム | 手続き型 |
| 登場時期 | 1978年頃 |
| 設計者 | ニクラウス・ヴィルト |
| 型付け | 強い静的型付け |
| 主な処理系 | XDS, MacMETH |
| 影響を受けた言語 | Mesa、Simula |
Modula-2(モジュラ・ツー)は、コンピュータのプログラミング言語の一種で、1978年頃にチューリッヒ工科大学のニクラウス・ヴィルト(Niklaus Wirth, 1934‐)により、先立って構想されたプログラミング言語「Modula」の後継として創案されたものである。汎用手続き型言語で、構文の多くは同様にヴィルトの手掛けたPascal言語に基いたものとなっている。
目次 |
[編集] 特徴
Pascalとの上位互換にはなっていないため名前に「Pascal」を含めていない。Pascalにモジュールの概念を追加し、分割コンパイルやソフトウェア部品のライブラリ化による再利用が可能である。また、単一の処理装置での並行処理を可能にするコルーチンや、データ抽象化の機能を持つ。一方では、ハードウェアへの直接アクセスなども可能にしている。 各ライブラリは、定義モジュールと実現モジュールの2つのファイルから構成され、ライブラリの整合性はリンク時に厳密に検査される。 全体として、Adaの縮小版のような印象である。
[編集] Pascalとの共通点
- 配列の範囲等の実行時検査が可能である。
- 手続きや関数を入れ子にできる。
- 引数は値渡しと参照渡しが使用できる。
- 手続きや関数の内部で定義された名前はその外部からは参照できない。
[編集] Pascalとの相違点
- 大文字と小文字は区別される、予約語は全て大文字。
- 標準手続きはライブラリとして提供される。
- 絶対参照、出入力ポート制御、ビット型などの、ハードウェアを直接操作する低レベル機能を持つ。
- 内部インタプリタが必要な書式付出力機能(PascalでのWriteString)を持たない。
- 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と同様、あまり広く使用されているとは言えない。
[編集] 関連項目
- Pascal - ヴィルト自身が作ったModula-2の元になった言語
- Modula - Modula-2の前段階の言語
- Modula-3 - オブジェクト指向言語へ拡張
- Mesa - 影響を受けたとされる
- Simula - 影響を受けたとされる
- Oberon - オブジェクト指向言語、ヴィルトの次の作品
[編集] 外部リンク
- 紹介ページ (英文)
- Modula-2 FAQ (英文)
- 開発中のGNU Modula-2 (英文)
最終更新 2009年11月22日 (日) 19:12 (日時は個人設定で未設定ならばUTC)。
【Modula-2】変更履歴

