プログラミング言語マスターへの道


FORTRAN(2)

American Standards Association(現ANSI)がFORTRANの米国規格を委員会で制定するようになったことはFORTRANの歴史の要でした。
1966年に2つの異なる言語が制定されました。一つは当時既にデファクトスタンダードであったFORTRAN IVを基にしたFORTRANで、もう一つはFORTRAN IIを基にして機種依存部分を取り除いたBasicFORTRANです。最初に制定されたFORTRANの規格は後にFORTRAN 66と呼ばれました。

FORTRAN 66

規格のリリース後、コンパイラ・ベンダーは多くの拡張を「標準Fortran」に導入し、1966の規格の改訂を始めるようにANSIを促しました。この改訂は1977年に制定され、最終的な改訂案は1978年4月に新しいFORTRAN標準として承認されました。この新しい標準はFORTRAN 77として知られ、FORTRAN 66後の多くの変更を追加し、多くの重要な機能を加えました。

この規格の改訂において、多くの機能は除去されるか変えられ、以前の標準に合致する多くのプログラムはおそらく無効になり、この時点で除去はX3J3の代替だけが許容されました。ですから、コンセプト「不賛成」はANSI標準においては利用出来ませんでした。そしてコンフリクトリストの24アイテムープホールスとパスロジカルケースは以前の標準規格から許容されましたが、滅多に使用されません。少数の機能は慎重に除去されました。

Fortran 90

一般にFortran 90 として知られている規格は、大幅に発表が遅れたもののFORTRAN 77の正当な継承者で、最終的に1991年にISO規格、1992年にANSI規格としてリリースされました。この抜本的な改訂では1978年のFORTRAN 77規格制定からのプログラミング技術における大幅な変化を反映するために、多くの新しい機能が加えられました。

削除または時代遅れとされた機能
以前のバージョンとは異なり、Fortran 90は、何の機能も削除しませんでした。
(Appendix B.1 は『この規格の、削除した機能のリストは空である。』と言っています) 。つまり、FORTRAN 77に準拠したプログラムは、Fortran 90にもまた準拠しています。そして、両方の規格でその動作が定義づけられた項目は使用可能でなければなりません。一部の機能はFortran 95で「削除」され、また機能の小さな部分は「時代遅れ」と認定されて将来の規格で除去されることが予定されました。

Fortran 95

Fortran 95は、マイナーな改訂版です。ほとんどはFortran 90規格の、いくつかの大きな問題を解決するためのものです。それにも係わらず、Fortran 95もまた年号を付加されています。それはFortranの拡張として定義される並列言語、HPF (High Performance Fortran:ハイ・パフォーマンスFortran)の一部導入によることは明白です。なお、本格的なHPFは、地球シミュレータ等で使用されています。下記にまとめてみました。

Fortran 95への重要な追加
Fortran 95への重要な追加は、一般にはAllocatable TRとして知られる、ISO technical report、TR-15581: Enhanced Data Type Facilitiesです。
この仕様は、Fortran 2003準拠のFortran コンパイラより前にALLOCATABLE アレイの強化した用法を定義しました。そのような用法は、プロセジャーのダミー引数リストとしての派生タイプコンポーネントALLOCATABLEアレイと、関数の返し値を含みます。ALLOCATABLEアレイは、POINTER-ベース・アレイより好ましいものです。なぜなら、ALLOCATABLEアレイは、スコープから抜けたとき、Fortran 95による自動的なdeallocateを保証しメモリリークの可能性を無くすからです。
エリアシングはarrayの参照において最適化の障害にならず、Fortranコンパイラがポインタ-ベース・アレイより高速なコードを生成することを可能にします。
他の重要なFortran95への追加はISOtechnicalreportTR-15580:浮動小数点例外ハンドリングです。一般にはIEEE TRとして知られているこの仕様は、IEEE 浮動小数点演算と例外ハンドリングを定義します。