Fortranの言語仕様

Fortranの言語仕様(フォートランのげんごしよう)は、Fortran 90以降の言語仕様について解説している。なお、Fortran 77以前の言語仕様については、FORTRAN 77の言語仕様を参照のこと。
言語仕様.
Fortran 90以降、Fortran 95、Fortran 2003、Fortran 2008と言語仕様が改定されている。Fortran 95、Fortran 2008はマイナーな改定、Fortran 2003はメジャーな改定である。他のプログラミング言語で実装されたフリーフォーマット、構造化プログラミング、モジュールプログラミング、配列演算、ユーザ定義の総称関数、演算子のオーバーロード、High Performance Fortran、オブジェクト指向、コンカレント・コンピューティングなどの機能が言語仕様の改定により取り入れられている。
Fortran 90.
Fortran 90には、他の言語にある、モジュラープログラミングを行うためのmodule、use、interfaceなどの文法、配列の動的割り付け、配列同士の四則演算、部分配列と添字配列などが取り入れられた。
プログラムの書式.
Fortran 90では、現在のCのように、桁位置を気にする必要のない、自由プログラム形式（文脈自由文法）で記述できるようになった（FORTRAN 77時代でも処理系によっては自由形式で記述できるものもあった）。予約語が存在しないという特徴は今でも残っている。なお、同様に古くからあるCOBOLでは数百個の予約語があるのが一般的である。
変数など.
変数などについて以下の変更が加えられた。
Fortran 95.
多くの内部関数は拡張された。一例としてcodice_7 内部関数にcodice_8引数が追加された。
Fortran 90で時代遅れとされた、いくつかの機能はFortran 95から削除された。
Fortran 95への重要な追加は、一般には"Allocatable TR"として知られる、"ISO technical report、TR-15581: Enhanced Data Type Facilities"である。この仕様は、Fortran 2003準拠のFortran コンパイラより前に、codice_19 アレイの強化した用法を定義した。そのような用法は、プロセジャーのダミー引数リストとしての派生タイプコンポーネントcodice_19アレイと、関数の返し値を含む。codice_19アレイは、codice_22-ベース・アレイより好ましいものである。なぜなら、codice_19 アレイは、スコープから抜けたとき、Fortran 95による自動的なdeallocateを保証しメモリリークの可能性を無くすからである。
エイリアシングはarrayの参照において最適化の障害にならず、Fortranコンパイラがポインタ-ベース・アレイより高速なコードを生成することを可能にする。
他の重要なFortran 95への追加は ISO technical report "TR-15580: 浮動小数点例外ハンドリング"である。一般にはIEEE TRとして知られている、この仕様はIEEE 浮動小数点演算と例外ハンドリングを定義する、
Fortran 2003.
"Fortran 2003"はメジャーな改訂であり、たくさんの新しい機能を導入した。 FORTRAN2003における新しい機能の包括的なサマリーは、Fortran Working Group (WG5)のオフィシャルWebサイトから得ることができる。
この記事から、このバージョンが含む大幅な強化は:
Fortran 2003 への重要な追加は、ISO technical report TR-19767である。
Fortranにおけるモジュール機能の強化。このレポートは、"submodules"を提供する。これは、FortranのモジュールをよりModula-2のモジュールに近づける。これらは、Adaのプライベート・チャイルド・サブユニットに似ている。これは分離したプログラムユニットとして表現すべきモジュールの仕様と実装を可能にし、大規模なライブラリのパッケージ化を改善し、インターフェース定義を公開しても企業秘密を保持することを可能にし、コンパイレーション・カスケードを防ぐ。
Fortran 2008.
Fortran 95と同様に、これはマイナー・アップグレードである。Fortran 2003の明確化と訂正と共に、新しい特長も導入された。新しい特長は、以下を含む。
ファイナル・ドラフト・スタンダード（FDIS）は、ドキュメントN1830として利用できる
Fortran 2008における重要な追加は、ISOテクニカルスペシフィケーション(TS) 29113のFortranにおけるC言語とのより高いインターオペラビリティであり
、2012年5月のISOの承認に向けてまとめられた。C言語の配列へのFortranアクセスに関してタイプとランクを無視する仕様が加えられた。
規格.
両者とも、次の3部からなる。