この記事には参考文献や外部リンクの一覧が含まれていますが、脚注による参照が不十分であるため、情報源が依然不明確です。適切な位置に脚注を追加して、記事の信頼性向上にご協力ください。(2023年9月)
Fortran
パラダイム構造化プログラミング、オブジェクト指向プログラミング、手続き型プログラミング、ジェネリックプログラミング、命令型プログラミング、配列プログラミング
■カテゴリ / ■テンプレート1956年に発行された最初のFortran解説書『The Fortran Automatic Coding System for the IBM 704』
Fortran(フォートラン)は科学技術計算に向いた手続き型プログラミング言語。1954年にIBMのジョン・バッカスが考案したコンピュータ用で世界最初の高水準言語であり、その後も改訂されて使用されている。 1956年に最初のマニュアルがリリースされ、1957年にIBM 704用の最初のコンパイラがリリースされた。名前 Fortran は formula translation(数式の変換)に由来し、FORTRAN 77 や Fortran 90 などの末尾の数字は規格が制定された年を示している。 Fortran は科学技術計算に向いた手続き型プログラミング言語であり、その長い歴史の間に開発された非常に多くの数学関数やサブルーチンを数値解析ソフトウェアとしてもっている。また、並列計算の並列性を明示的に書くことができるので最適化が行いやすく、したがって他の言語より高速であるなどの理由から[1]、数値予報および気候モデル、構造力学における有限要素法、計算流体力学、計算物理学、計算機化学、計量経済学、動物と植物の品種改良などの大規模な計算を行う分野において、スーパーコンピュータで使われている[2]。 ちょうどC言語に対するC++言語のように、Fortran 90/Fortran 95 の言語仕様は、FORTRAN 77 の頃と比べればかなり拡張され進歩したものとなっている。最新のソースコードは、初期のものと比較するとほとんど別の言語のように見える。初期の頃は、変数名が大文字で6文字までであり、動的な記憶領域の確保ができないなど多くの制約があったが、それらの制限はなくなり、Fortran 77 から構造化プログラミングが導入され、Fortran 90 からモジュラープログラミング、配列演算とユーザー定義総称関数が、Fortran 95 からHigh Performance Fortranが、Fortran 2003 からオブジェクト指向が、Fortran 2008 からはコンカレント・コンピューティング(並行計算)が導入された。 言語名は大文字 FORTRAN でなく Fortran とつづることが、1990年にISOの会議で合意されている[3]。なお、大文字で FORTRAN と表記した場合は FORTRAN 77 以前の FORTRAN を指し、Fortranと表記した場合は Fortran 90 以降を指すことがある。 Fortran 90/95の特徴は、次のとおりに要約される[4]。 広く使われていたFORTRAN 77 の特徴は、以下のように要約される。 ジョン・バッカスは1953年末、メインフレームコンピュータIBM 704のプログラムを開発するにあたり、アセンブリ言語に代わるものを開発することをIBMの上司に提案した。歴史的なFORTRAN開発チームはRichard Goldberg、Sheldon F. Best、Harlan Herrick、Peter Sheridan、Roy Nutt
概要
Fortranの特徴
Fortran 90/95の特徴
数値計算プログラムを簡単かつ簡潔に記述できる。
プログラムの誤りを犯しにくい言語である。
数値計算のための便利な道具があらかじめ用意されている。
作成したプログラムを大規模高速演算に使用できる。
無料のコンパイラが公開されている。
FORTRAN 77の特徴
数式の計算が簡便に記述できる
ほぼ数学の数式通りに計算式を記述できる。もっともこの特徴は他に計算向きの高級言語がなかった時代の話であり、現代の水準では「プログラミング言語における標準数式表現の始祖」といった方が当たっている。
入出力が容易
簡単に出力形式を定義できるFORMAT文や、実際の出力デバイスを意識しないで済む入出力文がある(C言語の標準入出力と似た概念である)。
スタック指向/構造化指向の言語ではない
COMMON文、BLOCK DATA文やSAVE文など、データを静的に割り当てることを前提としている。
プログラムの書式が固定形式である
プログラム記述の方法がカラム位置に依存している(一部の実装では拡張されている)。
Fortranの歴史パンチカードに記されたFORTRANのコード。カラム1?5、6、73?80が制御用に確保されている。