Fortranの言語仕様

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

Fortranの言語仕様(フォートランのげんごしよう)は、Fortran 90以降の言語仕様について解説している。なお、Fortran 77以前の言語仕様については、FORTRAN 77の言語仕様を参照のこと。

言語仕様[編集]

Fortran 90以降の言語仕様は、年代によってかなり変化している。他のプログラミング言語実装されたフリーフォーマット構造化プログラミングモジュールプログラミング、配列演算、ユーザ定義の総称関数、演算子のオーバーロードHigh Performance Fortranオブジェクト指向コンカレント・コンピューティングなどの機能がどんどん取り入れられて来ているからである。

Fortran 90[編集]

Fortran 90には、他の言語にある、モジュラープログラミングを行うためのmodule、use、interfaceなどの文法、配列の動的割り付け、配列同士の四則演算、部分配列と添字配列などが取り入れられた。

利用できる文字[編集]

  • 文字の種類として、英小文字、アンダースコアを始めいくつかの特殊文字が使えるようになった。
  • 習慣的にFortran 90以降のプログラムは英小文字で書く(ただし大文字と小文字は区別されない)
  • 多くの処理系でコメントに日本語を書ける。

プログラムの書式[編集]

Fortran 90では、現在のCのように、桁位置を気にする必要のない、自由プログラム形式文脈自由文法)で記述できるようになった(FORTRAN 77時代でも処理系によっては自由形式で記述できるものもあった)。予約語が存在しないという特徴は今でも残っている。なお、同様に古くからあるCOBOLでは数百個の予約語があるのが一般的である。

  • プログラムはC言語と同様に自由プログラム形式で記述する。
  • '!' 以降の文字はコメントになる。'!'はどこに書いても良い。
  • 継続行にするときは、'&'を書く。次の行の第1カラムにも'&'を書く。

数など[編集]

  • 定数変数の精度を指定する種別パラメータが追加された。また、精度を指定したり、精度情報を得るための関数が定義された。
  • 暗黙の宣言を無効にする、IMPLICIT NONE文が定義された。

変数など[編集]

変数などについて以下の変更が加えられた。

  • DIMENSION文やPARAMETER文などで、配列定数の定義の時に宣言を同時に行えるようになった。
  • 構造体を定義するための、TYPE文が追加された。
  • 動的な配列や変数を定義するALLOCATABLEパラメータが、各定義文に利用できるようになった。また、実際に領域を割り当てるALLOCATE文と、割り当てた領域を開放するDEALLOCATE文が追加された。

[編集]

  • ENDが拡張され、DO文などの終了文に利用できるようになった。
  • DOループを途中で飛ばすCYCLE文や途中で脱出するEXIT文が追加された。
  • 繰返し (ループ) を定義するDO WHILE文が追加された。
  • 多重分岐を行うSELECT CASE~CASE~END SELECT文が追加された。
  • 仮引数の状態を指定するINTENT文が追加された。
  • ポインタ機能を実現するためのPOINTER文、NULLIFY文とTARGET文が追加された。
  • 数の比較をC言語と同様に記号で行えるようになった。ただし.NE.は /=と記述する。
  • 配列全体に対して操作が行えるようになった。
  • 配列全体に対して比較条件を行うWHERE文が追加された。
  • 内部副プログラムを定義するCONTAINS文が追加された。
  • 関数を再帰可能とするRECURSIVEパラメータをSUBROUTINE文、FUNCTION文の前に付けられるようになった。
  • モジュールを定義するための、MODULE文、USE文が追加された。
  • 利用者定義の操作を作成するためのINTERFACE文が追加された。
  • 名前並びを定義するNAMELIST文が追加された。
  • 他のソースファイルをマージするINCLUDE文が追加された。

規格[編集]

両者とも、次の3部からなる。

  1. 第1部:基底言語
  2. 第2部:可変長文字列
  3. 第3部:条件付き翻訳

脚注[編集]

[ヘルプ]


参考文献[編集]

関連項目[編集]