Fortran: 何年経ってもコンパイル
Doug Eadline オリジナル記事はこちら

EDN(エレクトリカル・デザイン・ニュース)に掲載された最近の記事によると、1954年9月20日のこの日、最初のFortranプログラムがメインフレームコンピュータ上で実行された。もともとIBMによって開発されたFortran(またはFORMULA TRANslation System)は、科学および工学アプリケーション用に設計され、その後科学コンピューティングを支配するようになった。数値気象予測、有限要素解析、計算流体力学、地球物理学、計算物理学、結晶学、計算化学など、計算量の多い分野で70年以上使われてきた。
Fortran以前は、各コンピュータメーカーが、特定の、そしてしばしば面倒な機械語(アセンブリ言語と呼ばれる)でプログラムを作成するためのツールを提供していた。この究極の “ベンダー・ロックイン “は、メインフレームコンピュータのプログラミングにアセンブリ言語に代わるより実用的なものを求めていたIBMのジョン・W・バッカスには馴染まなかった。EDNの記事にあるように
「私の仕事の多くは、怠け者であることから生まれた」とバッカスは1979年、IBMの社員向け雑誌『Think』のインタビューで語っている。「IBM 701でミサイルの軌道を計算するプログラムを書いていたとき、プログラムを書きやすくするためのプログラミング・システムの開発に取りかかった。」
最適化Fortranコンパイラの最初の顧客向けリリースは1957年で、その後すぐに、よりビジネスに適したCOBOLがリリースされた。Fortranは今でも人気のあるHPC言語であり、有名なTop500 HPLベンチマークで使用されている。
ロング メイ ユー ラン(末永く走れますように)
![]() |
|
1978年のFortranワークブック | |
多くの大規模なFortranプログラムが今日でも使用されているが、この言語はしばしば古いとか使いにくいとか言われる。そのような判断は見当違いである(そして正直言って少し甘い)。成熟したFortranコードは通常、よく書かれており、最適化されており、バグが少なく、動作が確認されている。さらに、行数は数百万行に及ぶこともある。新しい “流行の “言語に翻訳するには、かなりの経済的コストがかかる。最新のAI手法を使えば、自動変換は可能かもしれないが、AIのはるかに優れた使い道は、既存のコード・ベースの保守を支援することだ。例えば、”このサブルーチンの目的は何ですか?”と尋ねることは、”このサブルーチンをPythonに変換してください “よりも価値があるかもしれない。
Fortranのもう一つの側面は、コンパイラによる最適化の成熟度と効率性である。Fortranの数学文の単純さと長年の研究に基づき、ほとんどのFortranコンパイラは、与えられたアーキテクチャに対して新規および既存のFortranコードを高度に最適化することができる。
Fortranは高級言語の有用性を実証した。より高速なコーディングが可能で、ハードウェアベンダー間での移植性を可能にする能力は、アプリケーション開発者にとってかなりの利点となった。実際、Fortranはコーダーの行数を20分の1に減らし、プログラムを素早く作成できることが示された。また、行数が少ないということは、不具合(バグ)が発生する数が少ないということでもある。Fortranは、プログラマーを自分の問題(数式の計算)に近づけ、コンピューターの基礎となるアーキテクチャから遠ざける最初の「抽象化レイヤー」を代表するものだった。
ChapelやJuliaのような他の新しいHPC言語は、HPC問題(分散システム、マルチコア、アクセラレータの使用など)を表現するために使用される抽象化レベルを上げる努力を続けているが、1954年のFortranは成長し、基盤となるハードウェアに追いついてきた。最後のFortran仕様のリリースは2018年だった。