| パラダイム | 命令型、構造化、モジュール化、データと手順の隠蔽、並行 |
|---|---|
| 家族 | ヴィルト/モデュラ |
| デザイン: | ニクラウス・ヴィルト |
| 初登場 | 1978年 |
| タイピングの規律 | 静的、強力、安全 |
| 範囲 | 語彙(静的) |
| プラットフォーム | リリス( AMD 2901 ) |
| OS | クロスプラットフォーム |
| ファイル名拡張子 | .mod、.m2、.def、.MOD、.DEF、.mi、.md |
| Webサイト | 詳しくはこちら |
| 主な実装 | |
| Niklaus Wirth によって書かれた ETH コンパイラ GNU Modula-2 ADW Modula-2 | |
| 方言 | |
| PIM2、PIM3、PIM4、ISO | |
| 影響を受けた | |
| Modula、Mesa、Pascal、ALGOL W、Euclid | |
| 影響を受けた | |
| Modula-2+、Modula-3、Oberon、Ada、Fortran 90、Lua、Seed7、Zonnon、Modula-GM | |
Modula-2は、1977年から1985/8年にかけてETHチューリッヒのニクラウス・ヴィルトによって開発された構造化手続き型プログラミング言語です。これは、 Lilithパーソナルワークステーションのオペレーティングシステムとアプリケーションソフトウェア用の言語として作成されました。[1]その後、Lilithのコンテキスト外でのプログラミングにも使用されました。
ヴィルトはModula-2を、彼が以前に開発したプログラミング言語であるPascalとModulaの後継言語と見なしていた。[2] [3]主なコンセプトは以下の通りである。
この言語の設計は、ヴィルトが1976年の休暇中に見たゼロックスPARCのMesa言語とXerox Altoの影響を受けています。[4]コンピュータ雑誌Byteは1984年8月号でこの言語とその周辺環境を特集しました。[5]
Wirth はModula-2 の後継としてOberonシリーズの言語を作成しましたが、他の人たち (特にDigital Equipment CorporationとAcorn Computers、後のOlivetti ) は Modula-2 をModula-2+に、さらにModula-3に開発しました。
説明
Modula-2 は、システム プログラミングとアプリケーション プログラミングの両方に適した汎用手続き型言語です。構文は Wirth の以前の言語であるPascalに基づいており、いくつかの要素と構文の曖昧さが削除されています。個別のコンパイルとデータ抽象化をサポートするように設計されたモジュールコンセプトと、マルチプログラミングの直接的な言語サポートが追加されました。
この言語ではワンパスコンパイラの使用が可能で、GutknechtとWirthによるそのようなコンパイラは、以前のマルチパスコンパイラよりも約4倍高速でした。[6]
以下は「Hello world」プログラムのソース コードの例です。
MODULE Hello ;
FROM STextIO IMPORT WriteString ;
BEGIN
WriteString ( "Hello World!" )
END Hello .
Modula-2モジュールは、関連するサブプログラムとデータ構造のセットをカプセル化し、プログラムの他の部分からの可視性を制限するために使用できます。[7] Modula-2プログラムはモジュールで構成され、各モジュールは2つの部分で構成されています。定義モジュール、つまりエクスポートされるサブシステムの部分のみを含むインターフェース部分(他のモジュールから可視)と、モジュール内部の作業コードを含む実装モジュールです。
この言語には厳密なスコープ制御があります。標準識別子を除き、明示的にインポートされない限り、外部のオブジェクトはモジュール内では表示されません。また、明示的にエクスポートされない限り、内部モジュール オブジェクトは外部から表示されません。
モジュールM1がオブジェクトa、b、c、Pを明示的なエクスポートリストに識別子を列挙してエクスポートすると仮定する。
定義 モジュール M1 ;
輸出 資格あり a 、 b 、 c 、 P ;
...
すると、モジュール M1 のオブジェクト a、b、c、P は、モジュール M1 の外部では M1.a、M1.b、M1.c、M1.P として認識されます。これらは、修飾された方法で外部にエクスポートされます (モジュール M1 がグローバルであると仮定)。エクスポート モジュールの名前 (つまり M1) は、オブジェクトの名前の後に続く修飾子として使用されます。
モジュールM2に次のIMPORT宣言が含まれているとします。
モジュール M2 ;
インポート M1 ;
...
これは、モジュール M1 によってその包含プログラムの外部にエクスポートされたオブジェクトが、モジュール M2 内で使用できるようになることを意味します。これらは、 M1.a、M1.b、M1.c、および M1.Pという修飾方法で参照されます。例:
...
M1 . a := 0 ;
M1 . c := M1 . P ( M1 . a + M1 . b );
...
修飾エクスポートは名前の衝突を回避します。たとえば、別のモジュール M3 が P というオブジェクトをエクスポートする場合、M1.P は M3.P と異なるため、2 つのオブジェクトを区別できます。エクスポート モジュール M1 と M3 内で両方のオブジェクトが P と呼ばれていても問題ありません。
別の方法もあります。モジュール M4 が次のように定式化されているとします。
モジュール M4 ;
M1から a 、b 、c 、Pをインポートします。
これは、モジュール M1 によって外部にエクスポートされたオブジェクトをモジュール M4 内で再び使用できることを意味しますが、今度はエクスポートされた識別子をa、b、c、P のように修飾なしで参照するだけです。例:
...
a := 0 ;
c := P ( a + b );
...
このインポート方法は、名前の衝突がない場合に使用できます。これにより、変数やその他のオブジェクトを、エクスポート モジュール内と同じように、修飾されていない, の方法でエクスポート モジュールの外部で使用できるようになります。
エクスポートおよびインポート ルールは、オブジェクトを不必要なアクセスから保護するだけでなく、プログラム内のすべての識別子の定義の相互参照を作成することもできます。このプロパティは、多数のモジュールを含む大規模なプログラムのメンテナンスに役立ちます。
この言語は、シングルプロセッサの同時実行性(モニター、コルーチン、明示的な制御の転送)とハードウェア アクセス(絶対アドレス、ビット操作、割り込み)を提供します。公称型システムを使用します。
方言
Modula-2 には 2 つの主要な方言があります。1 つ目はPIMで、Niklaus Wirth 著のProgramming in Modula-2にちなんで名付けられました。 [4] PIM には、第 2 版、第 3 版 (修正版)、第 4 版という 3 つの主要な版がありました。それぞれ言語のわずかなバリエーションを記述しています。2 つ目の主要な方言はISOで、国際標準化機構による標準化活動にちなんで名付けられました。次に、それらの違いをいくつか示します。
- PIM2 (1983)
EXPORT定義モジュールに明示的な句が必要です。- 関数は
SIZEモジュールからインポートする必要がありますSYSTEM
- PIM3 (1985)
EXPORT定義モジュール内のすべてがそのモジュールへのインターフェースを定義するため、このEXPORT句は冗長であるという観察に従って、定義モジュールからこの句を削除しました。- 関数は
SIZE広範囲に渡る(インポートなしでどのスコープでも見える)
- PIM4 (1988)
MODオペランドが負の場合の演算子の動作を指定します。ARRAY OF CHAR文字列が配列にぴったり収まる場合でも、すべての文字列を ASCII NUL で終了する必要があります。
- ISO(1996、1998)
スーパーセット
特定のアプリケーション ドメイン向けの言語拡張を備えた Modula-2 のスーパーセットがいくつかあります。
- PIM スーパーセット
- Canterbury Modula-2、Oberon のような拡張可能なレコードで拡張 [これは撤回されており、どこからも入手できません]
- Modula-2+、プリエンプティブスレッドと例外を拡張
- Modula-2*、並列拡張[9]
- Modula-P、もう一つの並列拡張[10]
- Modula-PrologはPrologレイヤーを追加します[11]
- Modula/R、リレーショナルデータベース拡張機能を追加
- Modula-GM、組み込みシステム拡張機能を追加
- ISO スーパーセット
- ISO10514-2はオブジェクト指向プログラミング層を追加した[12]
- ISO10514-3は、ジェネリックプログラミング(ジェネリック)層を追加した[12]
- IEC スーパーセット
- Mod51、組み込み開発向けにIEC 1131構造で拡張
デリバティブ
Modula-2 に非常によく似ているが、それ自体は新しい言語である派生言語がいくつかあります。ほとんどは目的が異なり、それぞれ長所と短所を持つ異なる言語です。
- Modula-3は、DECとオリベッティに移籍した元ゼロックス社員のチームによって開発された[13]
- Oberonは、ETHチューリッヒ校で開発されたSystem Oberon [14]で、オンラインで入手可能です。
- Oberon-2、オブジェクト指向(OO)拡張を備えたOberon [15]
- Active Oberon は、マルチプロセッシングおよびマルチコアプロセッサでの並列コンピューティングプログラミングをサポートすることを主な目的として、 ETH Zurichで開発された別のOO Oberon拡張機能です。
- Parallaxis、マシンに依存しないデータ並列プログラミング言語[16]
- パット・テリーが教育用言語として開発したウンブリエル[17]
- YAFL、ダリウス・ブラスバンドによる研究言語[18]
現在の他の多くのプログラミング言語は Modula-2 の機能を採用しています。
言語要素
予約語
PIM [2,3,4]は40個の予約語を定義している。
そしてELSIFループ繰り返し 配列終了MODリターン 開始 終了 モジュール セット 輸出ではなく ケースの FOR または TO CONST FROMまたは型 定義 IF ポインタ UNTIL DIV 実装手順 VAR 適格な輸入を行ってください 他に記録されているもの
組み込み識別子
PIM [3,4]は29個の組み込み識別子を定義している。
ABS EXCL LONGINT 実数 ビットセット 偽 ロングリアル サイズ ブール型浮動小数点最大TRUE キャップ 停止 最小 トランク カーディナルハイ ニルヴァル CHAR INC ODD CHR INCLORD 注文 10 進整数プロシージャ
組み込みシステムでの使用
Modula-2 は多くの組み込みシステムのプログラミングに使用されます。
ケンブリッジ モジュラ 2
Cambridge Microprocessor Systems の Cambridge Modula-2 は、組み込み開発用の言語拡張を備えた PIM4 のサブセットに基づいています。このコンパイラはDOS上で実行され、MINOS オペレーティング システムを実行するMotorola 68000 シリーズ(M68k) ベースの組み込みマイクロコントローラ用のコードを生成します。
モッド51
Mandeno Granville Electronics の Mod51 は、 Modula-2 と密接に関連するプログラマブル ロジック コントローラ(PLC)の業界標準であるIEC 1131に準拠した組み込み開発用の言語拡張機能を備えた ISO Modula-2 に基づいています。Mod51 コンパイラは、80C51 ベースのマイクロコントローラ用のスタンドアロン コードを生成します。
モジュラGM
当時GMヒューズエレクトロニクスの子会社だったデルコエレクトロニクスは、1985年から組み込み制御システム用のModula-2のバージョンを開発し、それをModula-GMと名付けました。これは、デルコのエンジン制御ユニット(ECU)の組み込みシステムのマシンコード(言語)を置き換えるために使用された最初の高級プログラミング言語でした。これは重要なことでした。なぜなら、デルコは1988年にGM向けに1日あたり28,000を超えるECUを生産していたからです。当時、同社は世界最大のECU生産者でした。[19]組み込みコントローラでのModula-GMの最初の実験的な使用は、モトローラ68xxxマイクロプロセッサをベースにした1985年のアンチロックブレーキシステムコントローラと、チャンプカーワールドシリーズチャンピオンシップオートレーシングチーム(CART)とインディレーシングリーグ(IRL)チームが使用した1993年のGen-4 ECUでした。[20] Modula-GMの最初の量産使用は、GMパワートレインのVortecエンジンを管理するために使用された1990年モデルの車両制御モジュール(VCM)から始まったGMトラックでの使用でした。Modula-GMは、1997-2005年モデルのBuick Park Avenueで使用されたGMの90° Buick V6エンジンファミリー3800シリーズIIのすべてのECUにも使用されました。Modula-GMコンパイラと関連ソフトウェア管理ツールは、DelcoがIntermetricsから調達しました。
Modula-2 は、1986 年に他の代替言語に比べて多くの利点があることから、Delco の高水準言語のベースとして選択されました。1995 年に Delco Electronics が GM (および他のコンポーネント部門) から分離されてDelphi Automotive Systemsが設立された後、グローバル ソーシングでは、非独自の高水準ソフトウェア言語を使用する必要がありました。現在 Delphi で開発されている ECU 組み込みソフトウェアは、 C言語用の商用コンパイラを使用してコンパイルされています。
ロシアの無線航法衛星
ロシアの無線航法衛星サービスフレームワークGLONASSの衛星は、米国の全地球測位システム(GPS)に似ており、Modula-2でプログラムされています。[21]
コンパイラ
- アムステルダムコンパイラキット(ACK)Modula-2 – MINIX用;フリーウェア[22]
- ADW Modula-2 – Windows用、ISO準拠、ISO/IEC 10514-1、ISO/IEC 10514-2(OO拡張)、ISO/IEC 10514-3(汎用拡張); フリーウェア[23]
- Aglet Modula-2 – AmigaOS 4.0 for PowerPC用; フリーウェア[24]
- Fitted Software Tools (FST) Modula-2 – DOS用; フリーウェア[25]
- Gardens Point Modula-2 (GPM) – BSD、Linux、OS/2、Solaris用; ISO準拠; フリーウェア、2014年7月30日現在[26]
- Gardens Point Modula-2 (GPM/CLR) – .NET Framework用; フリーウェア[27]
- GNU Modula-2 – GCCプラットフォーム用、バージョン1.0、2010年12月11日リリース。準拠: PIM2、PIM3、PIM4、ISO。フリーソフトウェア、GNU General Public License (GPL) [28]
- Logitech SA - 組み込み用途向けの「リアルタイムカーネル」も提供していた(1987年)[29] [30]
- M2Amiga – Amiga用、フリーソフトウェア[31]
- M2M – N. WirthとETHチューリッヒの協力者によるクロスプラットフォーム、仮想マシン用のMコードを生成する、フリーウェア[32]
- MacMETH – N. WirthとETH Zurichの協力者によるMacintosh用、Classicのみ、フリーウェア[33]
- Mod51 – Intel 80x51マイクロコントローラファミリー向け、ISO準拠、IEC1132拡張、独自ソフトウェア[34]
- Megamax Modula-2 – Atari ST用、ドキュメント付き、フリーウェア[35]
- Modula-2 R10 – このModulaのリファレンスコンパイラ。オープンソース、ピアレビュー済み[36]
- ModulaWare – OpenVMS ( VAXおよびAlpha )用、ISO準拠、独自ソフトウェア[37]
- ORCA/Modula-2 – Apple IIGS用、The Byte Works による Apple Programmer's Workshop 向け
- p1 Modula-2 – Macintosh、Classic、macOS(PowerPCおよびCarbon(API)のみ)用、ISO準拠、独自ソフトウェア[38]
- MOCKA – さまざまなプラットフォーム向け、PIM準拠、商用、フリーウェアのLinux/BSDバージョン[39]
- TDI Modula-2 – Atari ST用、TDI Software製[40]
- Terra M2VMS – OpenVMS ( VAXおよびAlpha )用、PIM準拠、独自ソフトウェア[41]
- m2c、Ulm Modula-2 System – Solaris(Sun SPARCおよびMotorola 68k)用; フリーソフトウェア、GNU General Public License(GPL)[42]
- XDS – ISO準拠、TopSpeed互換ライブラリ: x86用ネイティブXDS-x86(WindowsおよびLinux); WindowsおよびLinux用XDS-C(16ビット版および32ビット版)、C(K&RおよびANSI)をターゲット;フリーウェア[43]
ターボモジュラ2
Turbo Modula-2 は、ボーランドが開発したが未公開だったMS-DOS用の コンパイラおよび統合開発環境である。ボーランドの共同設立者であるニールス・ジェンセンを含むジェンセン・アンド・パートナーズは、未公開のコードベースを購入し、それを TopSpeed Modula-2 に変えた。これは最終的にクラリオン(現 SoftVelocity)に売却され、クラリオンは当時のクラリオン製品ラインの一部として Modula-2 コンパイラを提供した。 [44]
Turbo Modula-2のZilog Z80 CP/Mバージョンは、ボーランドからのライセンスを受けてエシェロン社によって短期間販売された。日立HD64180用の関連リリースは、マイクロミント社によって同社のSB-180シングルボードコンピュータの開発ツールとして販売された。[45]
IBM モジュラ 2
IBMは社内用にModula-2コンパイラを持っており、OS/2とAIXの両方で実行され、IBMのE2エディタで第一級のサポートを受けていた。[46] IBM Modula-2はOS/400 Vertical Licensed Internal Code(実質的にはOS/400のカーネル)の一部に使用されていた。 [47]このコードはOS/400がIBM RS64プロセッサファミリに移植されたときに大部分がC++に置き換えられたが、一部はオペレーティングシステムの最新リリースに残っている。[48] [49] Motorola 68000バックエンドも存在し、組み込みシステム製品で使用されていた可能性がある。[46]
オペレーティングシステム
Modula-2 は、いくつかのオペレーティング システム(OS)のプログラミングに使用されます。Modula-2 のモジュール構造とサポートは、2 つの関連する OS で直接使用されます。
Lilithワークステーション用のOSであるMedos-2は、ETHチューリッヒで、ヴィルトの助言を受けてスヴェンド・エリック・クヌーセンによって開発された。これは、Modula-2モジュールから構築された、シングルユーザーのオブジェクト指向オペレーティングシステムである。[50] [51] [52]
クロノスワークステーション用のExcelsiorというOSは、ソビエト連邦科学アカデミーシベリア支部、ノボシビルスク計算センター、モジュラー非同期開発可能システム(MARS)プロジェクト、クロノス研究グループ(KRG)によって開発された。これはModula-2モジュールに基づくシングルユーザーシステムである。[53]
書籍
- Gleaves, Richard (1984)。Modula-2 for Pascal Programmers。Springer Books on Professional Computing (第 1 版)。スイス: Springer Nature。doi : 10.1007 / 978-1-4613-8531-8。ISBN 978-0-387-96051-7. S2CID 346624。
- キング、KN(1988年1月1日)。Modula-2:完全ガイド。マサチューセッツ州バーリントン:ジョーンズ&バートレット出版社。ISBN 978-0669110913。
- ヴィルト、ニクラス(1988)。 Modula-2 (第 4 版) でのプログラミング。ベルリン ハイデルベルク: Springer-Verlag。土井:10.1007/978-3-642-83565-0。ISBN 978-0-387-96051-7. S2CID 41899609。
- クーパー、ダグ(1990 年 9 月 1 日)。 『Oh My! Modula-2:プログラミング入門』。ニューヨーク市、ニューヨーク:WW Norton & Company。ISBN 978-0393960099。
- ヘルマン、ポール (1998 年 3 月 1 日)。『壁と鏡: 中級レベルの問題解決とデータ構造:モジュラ 2 (ベンジャミン/カミングス構造化プログラミング シリーズ)』。ベンジャミン カミングス。ISBN 978-0805389456。
- サトクリフ、リチャード J. (2004–2005)。Modula-2: データとプログラミング構造の抽象化。Arjay Books。ISBN 978-0-669-11091-3。ISO 標準 Modula-2 を使用します。
参考文献
- ^ 「N. Wirth のプロジェクトの概要 (1962-1999)」。コンピュータサイエンス学科。ETHチューリッヒ。
- ^ Wirth, Niklaus (2002)。「Pascal とその後継者」。Broy, Manfred、Denert, Ernst (編)。ソフトウェアのパイオニア: ソフトウェア エンジニアリングへの貢献。ベルリン、ハイデルベルク: Springer-Verlag。pp . 108–120。doi : 10.1007 / 978-3-642-59412-0。ISBN 978-3-642-59412-0. S2CID 2698265。
- ^ Wirth, Niklaus (2005 年 2 月 18 日)。「Modula-2 の歴史と目標」。Dr . Dobb's Journal。Informa PLC。
- ^ ab ヴィルト、ニクラス(1988)。Modula-2 (第 4 版) でのプログラミング。ベルリン、ハイデルベルク:シュプリンガー。土井:10.1007/978-3-642-83565-0。ISBN 978-3-642-83565-0. S2CID 41899609。4ページ目。
- ^ ヴィルト、ニクラス; Gutknecht, ユルク;オーラン、リチャード。ポール、ロバート J.デヴィッド・コア(1984年8月)。 「テーマ:Modula-2」。バイト: The Small Systems Journal。 Vol. 9、いいえ。 8. 143 ~ 232 ページ。Archive.org で入手可能
- ^ Wirth, Niklaus (1984 年 5 月 1 日). 「Lilith 用のシングルパス Modula-2 コンパイラ」(PDF) . CFB ソフトウェア. 2023 年11 月 23 日閲覧。
- ^この記事は、2008 年 11 月 1 日より前に Free On-line Dictionary of Computing のModula-2 から取得した資料に基づいており、 GFDLバージョン 1.3 以降 の「再ライセンス」条件に基づいて組み込まれています。
- ^ ISO/IEC 10514-1:1996
- ^ Tichy 他著「Modula-2*: 高度に並列化された移植可能なプログラムのための Modula-2 の拡張」カールスルーエ大学[1990]
- ^ Bräunl、並列プログラミング、Prentice-Hall [1993]
- ^ Muller, C. (1986 年 11 月). 「Modula–Prolog: ソフトウェア開発」. IEEE ソフトウェア. 3 (6): 39–45}. doi :10.1109/MS.1986.229475. S2CID 763425.
- ^ ab modula2.org、5. ISO Modula-2 に関する情報はどこで入手できますか?
- ^ Cardelli et al., Modula-3 レポート、研究レポート 31、システム研究センター、Digital Equipment Corporation、[1988]
- ^ N. Wirth & J. Gutknecht, Project Oberon: the design of an operating system and compilation, ISBN 0-201-54428-8 , Addison-Wesley [1992]
- ^ Moessenboeck & Wirth,プログラミング言語 Oberon-2 , ETH チューリッヒ [1995]
- ^ Thomas Bräunl、Parallaxis、構造化データ並列プログラミング言語、シュトゥットガルト大学[1996]
- ^ Pat D. Terry、「もう一つの最小限のプログラミング言語」、ACM SIGPLAN Notices No. 30 [1995]
- ^ D. ブラスバンド『YAFLプログラミング言語』第2版、[1993]
- ^ デルコエレクトロニクスエレクトロンマガジン、アトウッドレガシー、1989年春、25ページ
- ^ GM自動車レース用電子機器の開発
- ^ Koltashev, AA (2006). 「ロシア宇宙におけるModula-2」。クロノス:プロジェクトの歴史(ロシア語)。 xTech 。 2021年4月8日閲覧。
- ^ Given, David (2020年10月9日). 「ACK」. GitHub . 2021年3月13日閲覧。
- ^ 「ADW Modula-2」. Modula-2.org 。2021 年3 月 13 日に取得。
- ^ 「Aglet Modula-2」。Aglet Modula-2。2012年2月15日。 2021年3月13日閲覧。
- ^ “FST Modula-2”. psg.com . 2021年10月13日閲覧。
- ^ 「Gardens Point Modula」。プログラミング言語およびシステムグループ、情報技術学部。クイーンズランド工科大学、ブリスベン。2007年1月29日。2013年3月23日時点のオリジナルよりアーカイブ。 2021年3月13日閲覧。
- ^ K John Gough (2010年10月25日). 「Gardens Point Modula-2 (GPM/CLR)」. GitHub . 2022年10月16日閲覧。
- ^ 「GNU Modula-2」。サバンナ。フリーソフトウェア財団。2018年8月30日。 2021年3月13日閲覧。
- ^ 「Logitech Modula-2」。OS/2向け電子開発者マガジン(EDM/2) 。 2022年5月29日閲覧。
- ^ "1988: Modula-2 と Logitech RTK".オイヴィンド・テイグ2022 年 4 月 12 日。
フロッピー ディスクの写真
- ^ デゲン、ルネ;ニーダー、クラウディオ。プレウジング、ベルント。シャウブ、マルクス。シュトラウベ、イェルク (2004)。 「M2アミーガ」。Claudio の Web サイト。 A+L AG. 2019年1月20日のオリジナルからアーカイブ。2021 年3 月 13 日に取得。
- ^ 「Lilith and Modula-2」. CFBソフトウェア. 2023年11月23日閲覧。
- ^ 「MacMETH: Macintosh コンピューター用の高速 Modula-2 言語システム」ETH チューリッヒ: 地上システム生態学2020 年 1 月 22 日。 2021 年3 月 13 日閲覧。
- ^ 「Mod51 構造化テキストプログラミング言語」。デザインツール。2008年10月21日時点のオリジナルよりアーカイブ。2021年3月13日閲覧。
- ^ Tempelmann, Thomas (2020年9月1日). 「Thomas Tempelmannのホームページ」 . 2021年3月18日閲覧。
- ^ 「Modula-2 R10」 。 2021年10月13日閲覧。
- ^ Dotzel, Chih-Ya (2020年1月21日). 「ModulAware」 . 2021年3月18日閲覧。
- ^ Wiedemann, Albert (2021年1月13日). 「p1 Modula-2」. p1 Society for Computer Science . 2021年3月19日閲覧。
- ^ Beck, Michael; Geiss, Rubino (2006). 「The Karlsruhe Modula-2 Compiler MOCKA」. Institute for Program Structures and Data Organization (IPD) . Karlsruhe Institute of Technology . 2009年9月4日時点のオリジナルよりアーカイブ。 2021年3月21日閲覧。
- ^ Jefferson, Gareth (1986年8月). 「Modula-2コンパイラ」. Australian Personal Computer . pp. 49, 52, 54, 56, 58. 2022年10月8日閲覧。
- ^ 「OpenVMS/Alpha および OpenVMS/VAX 用 Modula-2 システム」。Terra Datentechnik (英語とドイツ語)。スイス、エアレンバッハ。2002 年 11 月 12 日。2021年3 月 23 日閲覧。
- ^ アンドレアス、ボルチェルト;マーティン・ハッシュ(2003年1月21日)。 「m2c: ウルムの Modula-2 システム」。ウルム大学。ウルム、ドイツ。2021 年3 月 23 日に取得。
- ^ 「XDS 製品ファミリー: Modula-2 – Oberon-2 開発ツール」Excelsior LLC 1999–2009 年。2009 年 5 月 27 日時点のオリジナルよりアーカイブ。2021年3 月 23 日閲覧。
- ^ 「クラリオンについて」。2002年12月7日時点のオリジナルよりアーカイブ。 2023年3月31日閲覧。
- ^ 「Circuit Cellar」。Byte: The Small Systems Journal。第11巻、第13号、98ページ。
- ^ ab "IBM Modula-2". edm2.com 2019年3月2日. 2021年3月12日閲覧。
- ^ 「AS/400 から i への謎が解決されたことに関する読者のフィードバック」itjungle.com 2011 年 2 月 21 日。2021年3 月 12 日閲覧。
- ^ ソルティス、フランク G. (1997)。AS/400 の内側 (第 2 版)。デューク プレス。ISBN 978-1882419661。
- ^ レイフ・スヴァルガード (2003 年 10 月 8 日)。 「Re:Re:MIエミュレータ」。MI400 (メーリングリスト) 。2021 年2 月 26 日に取得。
- ^ Knudsen, Svend Erik (1983). Medos-2: パーソナルコンピュータ Lilith 用の Modula-2 指向オペレーティングシステム(PhD). ETH Zurich . doi :10.3929/ethz-a-000300091. hdl :20.500.11850/137906.
- ^ クヌーセン、スヴェン・エリック (2000 年 10 月 25 日)。 「回想のメドス」。ラスローのボショルメニで。Gutknecht, ユルク;ポンベルガー、グスタフ (編)。ニクラウス・ヴィルトの学校: シンプルさの芸術。モーガン・カウフマン。 69–86ページ。ISBN 978-1558607231。 ISBN 1-55860-723-4 & dpunkt、ISBN 3-932588-85-1。
- ^ Sand, Paul A. (1984年9月). 「The Lilith Personal Computer」. Byte . pp. 300–311 . 2021年3月6日閲覧。 再版。
- ^ Kuznetsov, DN; Nedorya, AE; Tarasov, EV; Filippov, VE「Kronos: 高水準言語向けプロセッサ ファミリ」。Kronos : プロジェクトの歴史(ロシア語)。xTech。2021年4 月 13 日閲覧。
外部リンク
- 公式サイト
