※「セキュリティ保護のため...」というメッセージが出る方・日本語が入力できない方へ
■FORTRAN■
FORTRANは FORmula TRANslation の略で、その名の通り、数式をコンピュ
ータで処理できるように分解するというのが出発点でした。たとえば、
K = A + B * (C + D) といった式があった場合、コンピュータの中では
LOAD C
ADD D
MULTIPLY B
ADD A
STORE K
といった一連の命令の列に分解されて処理されます。この数式を分析して
一連の命令に分解するという作業が、この言語が開発された時にはかなり
画期的なものだったのです。
FORTRANは1954年にアメリカのIBM社が開発しました。当初はIBM704の上
で動いていました。
FORTRANは素直な言語で、コンピュータの基本的な動きをほぼそのまま記述
するように作られています。ですから本来汎用的な言語なのですが、1960年
に報告書作成能力やデータの管理能力に優れたCOBOLが開発されたことから、
その後主に科学技術計算用言語として使用されてきました。
FORTRANがアメリカで開発されたことからヨーロッパでは対抗してALGOLが
作られました。ALGOL自体は普及しませんでしたが、ALGOLの思想はその後
のPascal, C などに引き継がれていきます。
日本では1967年にJIS規格が制定され、そのコンピュータの能力に合わせ
て、水準3000, 水準5000, 水準7000 という3つの規格がありました。最も
下の水準3000では論理IF文もなく、たとえば変数AとBの内大きい方をCに
格納するなどという作業も
IF(A-B)210,220,220
210 C=B
GO TO 230
220 C=A
230 CONTINUE
のようなコーディングが必要でした。これはほとんどアセンブラの世界です。
しかし当時の大型コンピュータのメモリは数Kという時代ですから、この
くらいが限界でした。
その後FORTRANはALGOLの影響を受けてブロックIF文などを取り込んだ
FORTRAN77が定められ、更には再帰呼び出しやポインタ操作も可能になった
FORTTAN90へと進化しますが、実際にはFORTRANの役割は1980年代で終了した
ということができるでしょう。多くのFORTRANユーザーは1980年代後半以降
みな BASIC か C/C++ に移行してしまいました。
【FORTRANの記述例】
DIMENSION ITENSU(100)
READ(5,500)KENSU
500 FORMAT(I3)
JKENSU = 0
JGOKEI = 0
DO 10 I=1,KENSU
READ(5,510)ITENSU(I)
510 FORMAT(I4)
IF (ITENSU(I)=9999) GO TO 20
JKENSU = JKENSU + 1
JGOKEI = JGOKEI + ITENSU(I)
10 CONTINUE
20 JHEIKN = JGOKEI / JKENSU
DO 30 I=1,JKENSU
JWARI = ITENSU(I) * 100 / JGOKEI
WRITE(6,600)ITENSU(I),JWARI
600 FORMAT(1H ,"TENSU=",I5," WARIAI=",I3)
30 CONTINUE
WRITE(6,610)JGOKEI,JHEIKN
610 FORMAT(1H /1H ,"***GOKEI=",I6," HEIKIN=",I6," ***")
STOP
END
※1970年代頃のFORTRANの記述である。
当時は小文字というものは無い。私がFORTRANを覚えた頃は漢字はおろか
カタカナも無かった。百人一首を取るプログラムを全部ローマ字で作っ
たりした。DOループはこの当時のFORTRANの唯一のブロック命令である。
むろんこの頃IFのあとには命令は1個しか書けない。
I,J,K,L,M,Nで始まる変数は整数型(固定小数点)、その他は実数型(浮動
小数点)となる。この時代文字型変数は無い。変数名は6文字以内だった。
そのため、この当時のFORTRANを学んだ人は独特の変数名省略法を身につ
けており、お互い他人が省略した変数名を元の名前に復元することが
だいたい可能であった。
この当時、上記のようにインデントを使う人はまだ少数派だってような
気がする。1978年頃に東北大学の人が作った自動インデント付けソフト
というのを見て、便利なソフトが出来たと感激した。