fortran66のブログ

fortran について書きます。

無印 MODULA

無印 Modula は Oberon に近いミニマリズム

ここで無印 Modula とは、Modula-2 ではなく、初代の Modula のことを指します。

link.springer.com
この記事に、pascal と modula の相違点がまとめられています。これによりますと、この時点ですでに variant record, FOR 文, 集合型(set type), 部分範囲型(subrange type) などが省かれており、Oberon での切り捨てがこの時点ですでに萌芽していたことが分かります。

f:id:fortran66:20170822023624p:plain

FOR 文を捨てて、WHILE 一本さらしに巻いて突き進むのが 1976 年の時点というのが興味深いです。

また E.W.Dijkstra の『構造化プログラミング』の中の C.A.R.Hoare の「データ構造化序論」は Wirth の PASCAL と密接な関係があるわけですが*1、理由はともあれ早くもその中の直和(variant 型)、べき集合(集合型)、数え上げ(部分範囲型)が要らない子になっているのも面白いです。

Structured programming



Module の use

Fortran では Module を引用して利用するときに、use モジュール名 の形で宣言しますが、use は modula に現れていることが分かりました(ただしモジュール名ではなく、モジュール内の個別要素名)。Modula-2 では import を用いて、今の Python と全く同じ形式で引用を行っています。

無印 Modula 仕様書

無印 Modula の仕様書が ETH のデジタルアーカイブにあって読むことが出来ます。

MODULA
a language for modular multiprogramming
MODULA

*1:Recollections about the development of Pascal p.103 "Whereas the basic framework of Pascal stems from ALGOL W, many of the new features emerged from suggestions made by C. A. R. Hoare, including enumeration, subrange, set, and file types. The form of COBOL-like record types was due to Hoare, as well as the idea to represent a computer's "logical words" by a well-known abstraction--namely, sets (of small integers). These "bits and pieces" were typically presented and discussed during meetings of the IFIP Working Group 2.1 (ALGOL), and thereafter appeared as communications in the ALGOL Bulletin. They were collected in Hoare's Notes on Data Structuring [Hoare 1972]."