fortran66のブログ

fortran について書きます。

LINK切れのメモ帳

再掲:Fortranのループ変数が I,J,K,L,M,N になった理由

fortran66.hatenablog.com

books.google.co.jp

f:id:fortran66:20170625031239p:plain
(Richard L. W.(ed.), History of Programming Languages p.70)

ついでに LOOP 0回 1回 問題の回答も載せておきます。

この DO LOOP 0回 1回 問題については、ループという言葉の定義上 0回 1回も反復ではないので、最低 2回回るべきという冗談の提案がされた記事を見たのですが、すぐ出てこない。

女子力対決

◆Mitchell, G., 1957: Programmer's Primer for FORTRAN Automatic Coding System for the IBM 704

Programmer's Primer for FORTRAN Automatic Coding System for the IBM 704 | 102665486 | Computer History Museum

f:id:fortran66:20170625033035p:plain
(Richard L. W.(ed.), History of Programming Languages p.65)

Adams, J. C., 1974: CDC 6600/7600 Primer

6600/7600 Primer | OpenSky Repository

Niklaus Wirth: The History of Modula-2 and Oberon

The History of Modula-2 and Oberon - ETH - Computer Science

Modern Fortran は ALGOL 系の言語から強い影響を受けています。特に ALGOL からは block、PASCAL からは構造化・型チェック、Modula-2 からは module, Oberon(就中 Oberon-2) からは OO (Object Oriented) が取り入れられています。

その ALGOL, PASCAL, Modula-2, Oberon を作り上げてきた Wirth の回顧的評論が表題のものです。前の言語の失敗した機能を挙げて、次の言語で削除・追加していく選択が興味深いです。

Fortran では class の inheritance が type extension と呼ばれるのは Oberon からきているようです。Wirth は type bound procedure という構造を取ることにより、従来の手続き型プログラミングの枠の中で OO の機能が実現できると説いています。

Niklaus Wirth


ホーアの、言語の特徴は取り入れなかった機能により強く出る、というのも面白い意見だと思いました。

C.A.R. Hoare used to remark that a language is indeed defined by the features it includes, but more so even by those which it excludes. My own guide-line was to omit features, whose correct semantics and best form were still unknown.

Fortran には取り入れられていない PASCAL の集合型、部分範囲型、variant レコードなどが、何故駄目だったかなどについても少し述べています。

またハードウェアの進歩がソフトウェアの方に影響するということについても触れています。


The Programming Language Oberon-2


www.youtube.com
モリー1M の FPGARISC 命令を読み込ませて Oberon を動かしている模様。集大成?