Fortran の構造
Fortran の分類
Fortran は、約 60 年間に渡って変化・発展してきたプログラム言語で、言語内容からみて FORTRAN I から FORTRAN77 までの 古典 FORTRAN (Classical FORTRAN) と、Fortran90 以降の現代 Fortran (Modern Fortran) に大きく分けられる。
古典 FORTRAN から受け継がれてきたもの
Fortran 言語には、最初期の FORTRAN I/II の頃から現在に至るまで、受け継がれてきた根幹部分がある。その中で
- 型
- 代入
- 配列
- SUBROUTINE / FUNCTION の別
が主要と思われる。
型とは二進列を整数や実数などの代数系で演算するためのパラメータ、代入は不可逆な過程で履歴を伴う作用、配列は記憶領域上で等質・連続な抽象データ構造、SUBROUTINE および FUNCTION は処理の抽象化の仕組みで戻り値・副作用の有無の別による。
現代 Fortran で加わったもの
Fortran の現代化改修には、二つの主要部分がある。
- 構造化プログラミング [ i) 抽象データ構造 (オブジェクト指向を含む) ii) 制御構造 ]
- 並列処理 [ i) 全配列操作 ii) coarray ]
構造化プログラミングは、N. Wirth 流のミニマリズムに則っており、オブジェクト指向関連の用語も Wirth に従っており、継承は拡張 (extention)、メソッドは派生型束縛手続き[?](type bound procedure) と呼ばれている。また例外構文・ジェネリックプログラミングも Wirth に従って、冗長機能として排されている。これは同じく Wirth に則った Google の GO 言語でも同様である。
現代 Fortran には、これらの他に
3. 浮動小数点数関係 [ i) 一般のフォーマット用 ii) IEEE754 用 ]
4. C 言語との相互運用 [ i) 古典 FORTRAN 水準 ii) 現代 Fortran 水準]
等の機能も付け加えられているが、付随的な部分とみなしてよいと思う。
構造化プログラミング
利用者定義派生型、モジュール、派生型束縛手続き[?]
ALGOL, PASCAL, MODULE-2, Oberon-2 (block, type, module, OO)
SUBROUTINE / FUNCTION, recursion
array
抽象データ構造
制御構造
(つづく)
並列化
対象ハードウェアの抽象化・アレイプロセッサ・パイプライン処理・メモリー共有型・分散型
implicit な(自動)並列化、explicit な並列化、コメント指示行、並列用構文
array
全配列操作
coarray
(つづく)
Modern Fortran Explained (Numerical Mathematics and Scientific Computation)
- 作者: Michael Metcalf,John Reid,Malcolm Cohen
- 出版社/メーカー: Oxford Univ Pr (Txt)
- 発売日: 2011/05/19
- メディア: ペーパーバック
- この商品を含むブログを見る
Classical Fortran: Programming for Engineering and Scientific Applications, Second Edition
- 作者: Michael Kupferschmid
- 出版社/メーカー: CRC Press
- 発売日: 2009/01/14
- メディア: Kindle版
- この商品を含むブログを見る