Modula-2
Modula-2(モジュラ・ツー)は、コンピュータのプログラミング
パラダイム |
|
---|---|
1978 | |
ニクラウス・ヴィルト | |
| |
XDS, MacMETH | |
Mesa、Pascal |
特徴
Pascal との
ヴィルト
Pascal との共通 点
配列 の範囲 等 の実行 時 検査 が可能 である。手続 きや関数 を入 れ子 にできる。引数 は値 渡 しと参照 渡 しが使用 できる。手続 きや関数 の内部 で定義 された名前 はその外部 からは参照 できない。
Pascalとの相違 点
大文字 と小文字 は区別 される、予約 語 は全 て大文字 。予約 語 AND(論理 積 ) のかわりに「&」、NOT(否定 ) のかわりに「~」が使 える。不等号 は「#」を使 う。部分 範囲 型 は "[..]" でくくる。集合 型 は "{..}" でくくる。注釈 は "(*..*)" でくくる。注釈 は入 れ子 にできる。整数 型 は符号 のある INTEGER と符号 なしの CARDINAL を区別 する。十 進数 以外 に、二 進 ・八 進 ・十 六 進数 で定数 を指定 することができる。文字 列 定数 は「'」以外 に「"」で囲 むこともでき、添 え字 0 からはじまる文字 の配列 として扱 われる。文字 列 はC言語 と同様 、コード 0 の文字 (0C)によって終了 する。IF
文 などの制御 文 は複数 の文 を対象 とするため、明示 的 に予約 語 END
で閉 じる。else if のかわりに ELSIF を用 いる。- CASE
文 の各 選択肢 には複数 の文 を書 くことができ、選択肢 は | で区切 る。ELSE も存在 する。RECORD CASE の書 き方 も少 し異 なる。 GOTO
文 はない。代 わりに無限 ループを構成 するLOOP
文 とそれから脱出 するEXIT
文 を持 つ。FOR
文 は予約 語 BY
によって増分 を 1 か -1以外 にもできる。予約 語 DOWNTO
はない。手続 きと関数 の定義 は同 じ予約 語 PROCEDURE
で開始 する。関数 は RETURN文 で値 を返 すことができる。手続 きの終 わりを示 す END の後 ろには手続 き名 を書 く必要 がある。手続 き型 の変数 が存在 する。手続 きの引数 として整合 配列 を使用 できる。整合 配列 は一 次元 に限 られ、添 え字 0 から始 まる。配列 a の最大 の添 え字 は HIGH(a) によって取得 できる。標準 手続 きは原則 としてライブラリとして提供 される。ただし CHR, ORD などは Modula-2 でも標準 手続 きである。- モジュールが
存在 する。モジュールは初期 化 部分 を持 ち、どの識別子 をモジュール外 から参照 できるかを定義 できる。分割 コンパイルもモジュールを単位 に行 う。 絶対 参照 、出入 力 ポート制御 、ビット型 などの、ハードウェアを直接 操作 する低 レベル機能 を持 つ。- コルーチンを
持 つ。
例
MODULE sample ;
FROM InOut IMPORT WriteLn,WriteString ;
BEGIN
WriteString('This is Modula-2') ;
WriteLn
END sample.
標準
Modula-2 は、ISO 10514 として
- ISO 10514-1:1996
- ISO 10514-2:1998 (ジェネリックプログラミング)
- ISO 10514-3:1998 (オブジェクト
指向 )
ヴィルトの
- Niklaus Wirth
著 、斎藤 信男 訳 『Modula-2プログラミング』(改訂 第 3版 )マイクロソフトウェア、1986年 。
ほかに、ヴィルトによる Modula-2 の
- N. ヴィルト
著 、浦 昭二 ;國府 方 久史 訳 『アルゴリズムとデータ構造 』近代 科学 社 、1990年 。ISBN 4764901625。 - ニクラウス・ヴィルト
著 、筧 捷 彦訳 『翻訳 系 構成 法 序論 』近代 科学 社 、1986年 。
関連 項目
- Pascal — ヴィルト
自身 が作 った Modula-2 の元 になった言語 - Modula — Modula-2 の
前 段階 の言語 - Modula-3 — Modula-2 のオブジェクト
指向 言語 へ拡張 - Mesa —
影響 を受 けたとされる - Simula -
影響 を受 けたとされる - Oberon - オブジェクト
指向 言語 、ヴィルトの次 の作品
外部 リンク
- Modula-2 Frequently Asked Questions
- ISO/IEC JTC1/SC22/WG13 Modula-2
- Lilith and Modula-2
- GNU Modula-2
- ADW Modula-2 (かつて Stony Brook Modula-2 と
呼 ばれた処理 系 ) - Gardens Point Modula-2 (GPM/CLR)(.Net
用 の処理 系 )