neverjpのぶらり日記

コンピューター関連の記事とぶらりと出かけた先の写真など

9300FORTRAN習得

新宿御苑にて

FORTRAN*1はコンピュータにおける史上初の高水準記述言語です。
科学技術計算に向いた、手続き型言語です。現在でも使われ続けており、その仕様は初期の頃と比べればかなり拡張されたものとなってきています(初期の頃は、変数名が大文字6文字までで、動的な記憶領域の確保ができないなどの制約がありました)。
なお、大文字でFORTRANと表記した場合、FORTRAN 77以前のFORTRANを指し、Fortranと表記した場合、Fortran 90以降を指すことがあります。私はFORTRAN66までサポートしました。最初にFORTRANに触れたのは大学の3年生の時です。当時は日本初のMINIコンピュータHITAC-10に実装されていた紙テープベースのFORTRANでした。
FORTRANの特徴は以下の通りです。
(1)数式を簡便に書けます
ほぼ数学の数式通りに計算式を記述できます。もっともこの特徴は他に計算向きの高級言語がなかった時代の話であり、現代の水準では「プログラミング言語における標準数式表現の始祖」といった方が当たっています。
(2)出力が容易です
簡単に出力形式を定義できるFORMAT文や、実際の出力デバイスを意識しないで済む入出力文があります(C言語の標準入出力と似た概念です)。
(3)スタック指向/構造化指向の言語ではありません
COMMON文、BLOCK DATA文やSAVE文(FORTRAN 77)など、データを固定的に割り当てることを前提としています。
(4)固定形式の書式です
記述方法がカラム位置で決まっています(一部の実装では拡張されています)
FORTRANのコード。カラム1〜5、6、73〜80が制御用に確保されています。一般的にはカラム1〜5は行番号、6は継続行、73〜80がプログラム名に使われます。

ユーザはアセンブリ言語で記述されたコードに匹敵するパフォーマンスが得られない限り高級言語を採用しないので、最初から最適化コンパイラが開発されました。
この新しい方法がハンドアセンブルより高速に動作するかどうかには最初疑問の目がありましたが、プログラム中の命令数を1/20に削減できるので急速に受け入れられていきました。開発者は「私がこの仕事をしたのは面倒くさがりだったからです。私はプログラムを書くことが好きではなかったので、ミサイルの軌道計算プログラムを開発したときに、プログラムの開発を簡単にするためにプログラミングシステムを作り始めました。」と語っています。
FORTRANは科学者の間で数学を応用したプログラムの記述に広く用いられたことから、より高速で効率的なコードを出力しようとする原動力となりました。FORTRANに組み込まれた複素数*2は特に電気工学のような専門的なアプリケーションに適していました。
1960年までに様々なバージョンのFORTRANが動作していました。FORTRANのユーザ数は急増し、コンピューターメーカーがFORTANコンパイラをこぞって提供したので、1963年までには40を超えるFORTRANコンパイラが存在していました。当社でも大型汎用コンピュータや中型汎用コンピュータ及び私の最初に扱った小型汎用コンピュータにも実装されていました。こうしたことから、FORTRANアーキテクチャの異なる様々なコンピュータを広くサポートする最初の言語と言えます。
FORTRAN開発の歴史は、初期のコンパイラ技術の歴史そのものといえます。FORTRANで効率的なコードを出力したいという強い要求からコンパイラの実装技術が大きく進歩しました。この項、Wikipediaを参照させていただきました。

人気ブログランキングへ←人気ブログランキングに参加しています。よろしければ1票を!

*1:FORmula TRANslationの略

*2:複素数はa + biというようにベクトルを表せます