(Translated by https://www.hiragana.jp/)
Fortran - Wikipedia コンテンツにスキップ

Fortran

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
Fortran
Fortran
パラダイム 構造こうぞうプログラミングオブジェクト指向しこうプログラミング手続てつづがたプログラミングジェネリックプログラミング命令めいれいがたプログラミング配列はいれつプログラミング ウィキデータを編集
登場とうじょう時期じき 1954ねん (70ねんまえ) (1954)
開発かいはつしゃ IBMジョン・バッカス ウィキデータを編集
最新さいしんリリース Fortran 2018
型付かたつ つよ静的せいてき型付かたつ
おも処理しょりけい Absoft, Cray, CUDA, Fortran Builder, GFortran, G95, Intel, Lahey/Fujitsu, Open Watcom, Pathscale, PGI, Silverfrost, Sun, XL Fortran, Visual Fortran ほか
影響えいきょうけた言語げんご Speedcoding ウィキデータを編集
影響えいきょうあたえた言語げんご ALGOL 58, BASIC, PL/I, C
プラットフォーム z/OS, z/VM, z/VSE, MCP, VOS3, ACOS, GCOS, VMS, OS/400, UNIX, Linux, Windows, Mac OS, CP/M, MS-DOS ほか
ライセンス MIT License ウィキデータを編集
ウェブサイト
拡張子かくちょうし f、for、f90 ウィキデータを編集
テンプレートを表示ひょうじ
1956ねん発行はっこうされた最初さいしょのFortran解説かいせつしょ『The Fortran Automatic Coding System for the IBM 704

Fortranフォートラン)は科学かがく技術ぎじゅつ計算けいさんいた手続てつづがたプログラミング言語げんご1954ねんIBMジョン・バッカス考案こうあんしたコンピュータよう世界せかい最初さいしょ高水準こうすいじゅん言語げんごであり、その改訂かいていされて使用しようされている。

概要がいよう[編集へんしゅう]

1956ねん最初さいしょのマニュアルがリリースされ、1957ねんIBM 704よう最初さいしょコンパイラがリリースされた。名前なまえ Fortranformula 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の特徴とくちょう[編集へんしゅう]

Fortran 90/95の特徴とくちょう[編集へんしゅう]

Fortran 90/95の特徴とくちょうは、つぎのとおりに要約ようやくされる[4]

  • 数値すうち計算けいさんプログラムを簡単かんたんかつ簡潔かんけつ記述きじゅつできる。
  • プログラムのあやまりをおかしにくい言語げんごである。
  • 数値すうち計算けいさんのための便利べんり道具どうぐがあらかじめ用意よういされている。
  • 作成さくせいしたプログラムをだい規模きぼ高速こうそく演算えんざん使用しようできる。
  • 無料むりょうのコンパイラが公開こうかいされている。

FORTRAN 77の特徴とくちょう[編集へんしゅう]

ひろ使つかわれていたFORTRAN 77 の特徴とくちょうは、以下いかのように要約ようやくされる。

数式すうしき計算けいさん簡便かんべん記述きじゅつできる
ほぼ数学すうがく数式すうしきどおりに計算けいさんしき記述きじゅつできる。もっともこの特徴とくちょう計算けいさんきの高級こうきゅう言語げんごがなかった時代じだいはなしであり、現代げんだい水準すいじゅんでは「プログラミング言語げんごにおける標準ひょうじゅん数式すうしき表現ひょうげん始祖しそ」といったほうたっている。
入出力にゅうしゅつりょく容易ようい
簡単かんたん出力しゅつりょく形式けいしき定義ていぎできるFORMATぶんや、実際じっさい出力しゅつりょくデバイスを意識いしきしないで入出力にゅうしゅつりょくぶんがある(C言語げんご標準ひょうじゅん入出力にゅうしゅつりょく概念がいねんである)。
スタック指向しこう構造こうぞう指向しこう言語げんごではない
COMMONぶん、BLOCK DATAぶんやSAVEぶんなど、データを静的せいてきてることを前提ぜんていとしている。
プログラムの書式しょしき固定こてい形式けいしきである
プログラム記述きじゅつ方法ほうほうがカラム位置いち依存いぞんしている(一部いちぶ実装じっそうでは拡張かくちょうされている)。

Fortranの歴史れきし[編集へんしゅう]

パンチカードしるされたFORTRANのコード。カラム1~5、6、73~80が制御せいぎょよう確保かくほされている。

ジョン・バッカスは1953ねんまつ、メインフレームコンピュータIBM 704のプログラムを開発かいはつするにあたり、アセンブリ言語げんごわるものを開発かいはつすることをIBM上司じょうし提案ていあんした。歴史れきしてきなFORTRAN開発かいはつチームはRichard Goldberg、Sheldon F. Best、Harlan Herrick、Peter Sheridan、Roy Nutt、 Robert Nelson、Irving Ziller、Lois Haibt、David Sayreというメンバーで構成こうせいされた[5]

The IBM Mathematical Formula Translating System のドラフト仕様しよう1954ねん中旬ちゅうじゅん作成さくせいされた。1956ねん10がつにFortranの最初さいしょのマニュアルが作成さくせいされ、コンパイラは1957ねん4がつ完成かんせいした。顧客こきゃくはアセンブリ言語げんご記述きじゅつされたコードに匹敵ひってきするパフォーマンスがられないかぎ高級こうきゅう言語げんご採用さいようしないので、最初さいしょから最適さいてきコンパイラが開発かいはつされた。

このあたらしい方法ほうほうがハンドアセンブルより高速こうそく動作どうさするかどうかにはうたがいのがあったが、プログラムちゅう命令めいれいすうを1/20に削減さくげんできるので急速きゅうそくれられていった。IBMの社内しゃないであるThinkに掲載けいさいされた1979ねんのインタビューでバッカスは「わたしがこの仕事しごとをしたのは面倒めんどうくさがりだったからです。わたしはプログラムをくことがきではなかったので、IBM 701でミサイルの軌道きどう計算けいさんプログラムを開発かいはつしたときに、プログラムの開発かいはつ簡単かんたんにするためにプログラミングシステムをつくはじめました。」[6]かたっている。

Fortranは科学かがくしゃあいだ数学すうがく応用おうようしたプログラムの記述きじゅつひろもちいられたことから、より高速こうそく効率こうりつてきなコードを出力しゅつりょくしようとする原動力げんどうりょくとなった。また、ライブラリでなく言語げんごとして複素数ふくそすうかたをサポートしたことは、電気でんき電子でんし工学こうがくにおける動的どうてき特性とくせい計算けいさんなどに代表だいひょうされる科学かがく工学こうがく分野ぶんやのプログラムをきやすくした。

1960ねんまでに様々さまざまなバージョンのFORTRANがIBM 709IBM 650IBM 1620IBM 7090動作どうさしていた。FORTRANのユーザーすう急増きゅうぞうし、コンピューターメーカーがFORTRANコンパイラをこぞって提供ていきょうしたので、1963ねんまでには40をえるFORTRANコンパイラが存在そんざいしていた。こうしたことから、FORTRANはアーキテクチャのことなる様々さまざまなコンピュータでひろくサポートされた最初さいしょ言語げんごえる。

Fortran開発かいはつ歴史れきしは、初期しょきコンパイラ技術ぎじゅつ歴史れきしそのものといえる。Fortranで効率こうりつてきなコードを出力しゅつりょくしたいというつよ要求ようきゅうからコンパイラによる最適さいてき技術ぎじゅつおおきく進歩しんぽした。

FORTRAN[編集へんしゅう]

IBM 704 メインフレーム

IBM 704よう開発かいはつされた最初さいしょのFORTRANは32の命令めいれいをもっていた。

IBM 1401はんFORTRAN[編集へんしゅう]

IBM 1401はん革新かくしんてきな65パスのコンパイラであり、わずか8k磁気じきコアメモリ動作どうさする。コアに記録きろくされたプログラムが段階だんかいてき実行じっこう可能かのうなコードへと変換へんかんされて上書うわがきされる。変換へんかんされたコードは機械きかいではなく、UCSD PascalのPコードがまれるよりも20ねんまえながら、中間なかまコードを利用りようしていた。

FORTRAN II[編集へんしゅう]

IBMのFORTRAN IIは1958ねん開発かいはつされた。おも改良かいりょうてん手続てつづがたプログラミングのサポートであり、サブルーチンや関数かんすう定義ていぎできるようになった。

その、FORTRAN IIのデータがたとして、DOUBLE PRECISION倍精度ばいせいどがた)とCOMPLEX複素数ふくそすうがた)が追加ついかされた。

FORTRAN III[編集へんしゅう]

IBMは1958ねんFORTRAN III開発かいはつしていた。いくつかのしん機能きのうくわえインラインアセンブラが可能かのうであった。しかしながらこのバージョンは販売はんばいされなかった。704 FORTRANやFORTRAN IIと同様どうように、FORTRAN IIIにも移植いしょくさまたげになるような機種きしゅ依存いぞん機能きのうがあった。のベンダーから販売はんばいされていたFORTRANも初期しょき同様どうよう問題もんだいかかえていた。

FORTRAN IV[編集へんしゅう]

IBMは1961ねん顧客こきゃく要望ようぼうFORTRAN IV開発かいはつ開始かいしした。READ INPUT TAPEのようなFORTRAN IIの機種きしゅ依存いぞん部分ぶぶん削除さくじょしたほか、LOGICAL論理ろんりがた)、論理ろんり演算えんざん算術さんじゅつIFぶん代替だいたいとなる論理ろんりIFぶんくわえられた。このときのターゲットマシンは36ビットのワードマシンだったので、整数せいすうは235おおきさの範囲はんい定義ていぎされていた。また、実数じっすう精度せいどは227倍精度ばいせいど実数じっすう精度せいどは254までだった。FORTRAN IVは1962ねんIBM 7030通称つうしょうストレッチ)ようがリリースされ、のちIBM 7090はんIBM 7094はんがリリースされた。

1965ねんには国家こっか規格きかくであるANSI X3.4.3 FORTRANに準拠じゅんきょした。

FORTRAN 66[編集へんしゅう]

American Standards AssociationげんANSI)がFortranの米国べいこく規格きかく委員いいんかい制定せいていするようになったことはFortranの歴史れきしようである。1966ねんに2つのことなる言語げんご制定せいていされた。ひとつは当時とうじすでデファクトスタンダードであったFORTRAN IVをもとにしたFORTRANであり、もうひとつはFORTRAN IIをもとにして機種きしゅ依存いぞん部分ぶぶんのぞいたBasic FORTRANである。最初さいしょ制定せいていされたFORTRANの規格きかくのちFORTRAN 66ばれた。

FORTRAN 77[編集へんしゅう]

FORTRAN 66 規格きかくのリリース、コンパイラ・ベンダーはおおくの拡張かくちょうを"標準ひょうじゅんFortran"に導入どうにゅうし、1966の規格きかく改訂かいていはじめるようにANSIをうながした。この改訂かいていは1977ねん制定せいていされ、最終さいしゅうてき改訂かいていあんは1978ねん4がつあたらしいFORTRAN標準ひょうじゅんとして承認しょうにんされた。このあたらしい標準ひょうじゅんFORTRAN 77としてられ、FORTRAN 66おおくの変更へんこう追加ついかし、おおくの重要じゅうよう機能きのうくわえた:

  • ブロック IFEND IF ステートメント、オプショナルなELSEELSE IF ステートメント。改善かいぜんされた言語げんごサポートのための構造こうぞうプログラミング
  • DOループ機能きのう拡張かくちょう、パラメータ記述きじゅつふくむ、まけ増分ぞうぶんとゼロのトリップ・カウント(これ以前いぜんのFORTRANではDOループはかえしをかならず1かいおこなうことになっていたのを廃止はいしした)。
  • 改良かいりょうされたI/OのためのOPEN, CLOSE, と INQUIREぶん
  • ダイレクト-アクセス ファイル I/O。
  • IMPLICIT ぶん
  • CHARACTER かた文字もじ入出力にゅうしゅつりょく処理しょりのための大幅おおはば増補ぞうほ。(以前いぜんは、文字もじのデータを整数せいすう実数じっすうなどの変数へんすう配列はいれつ格納かくのうして処理しょりをしていた)。
  • PARAMETER ぶん定数ていすう指定していするためのステートメント。
  • SAVE ぶん明示めいじてきにローカル変数へんすう永続えいぞくてき指定していする。
  • 内部ないぶ関数かんすうのための総称そうしょう関数かんすう
  • ASCII コードの文字もじ順序じゅんじょもとづいた、文字もじれつ比較ひかくのための内部ないぶ命令めいれいセット(LGE, LGT, LLE, LLT)。

この規格きかく改訂かいていにおいて、おおくの機能きのう除去じょきょされるかえられて、以前いぜん標準ひょうじゅん合致がっちしていたプログラムのおおくはおそらく無効むこうになった。この時点じてん除去じょきょはX3J3の代替だいたいだけが許容きょようされた。だからコンセプト "不賛成ふさんせい"はANSI標準ひょうじゅんにおいては利用りようできなかった。しかし、コンフリクトリストの24アイテム(Appendix A2 of X3.9-1978をよ)ループホールスとパスロジカルケースは以前いぜん標準ひょうじゅん規格きかくから許容きょようされたが、しかし滅多めった使用しようされない。少数しょうすう機能きのう慎重しんちょう除去じょきょされた。

  • 文字もじれつ定数ていすうをプログラムちゅう記述きじゅつするためのホレリス記法きほう、すなわち:
GREET = 12HHELLO THERE!
  • FORMAT 記述きじゅつにおけるH編集へんしゅう(ホレリス・フィールド)のみ(以前いぜんはH編集へんしゅう確保かくほされた文字もじれつデータの領域りょういきには入力にゅうりょくぶん文字もじれつめた(データが上書うわがきされる)そのFORMATぶん使つかって出力しゅつりょくすると,えられたデータが使つかわれて出力しゅつりょくされる)。
  • 配列はいれつ定義ていぎ添字そえじ範囲はんいえたアクセス。
DIMENSION A(10,5)
Y= A(11,1)
  • DOループの途中とちゅうでいったんそとしてあともどる("エクステンデット・レンジ"(DOループの拡張かくちょう範囲はんい)としてられる)。
  • 以前いぜん規格きかくでは文字もじがた(CHARACTERがた)がなかったので、文字もじデータや文字もじれつデータを整数せいすう実数じっすう変数へんすう配列はいれつ格納かくのうすることがおこなわれていたが、Fortran77ではそれを廃止はいしした。

Fortran 90[編集へんしゅう]

一般いっぱんFortran 90 としてられている規格きかくは、大幅おおはば発表はっぴょうおくれたもののFORTRAN 77の正当せいとう継承けいしょうしゃであり、最終さいしゅうてきに1991ねんにISO規格きかく、1992ねんにANSI規格きかくとしてリリースされた。この抜本ばっぽんてき改訂かいていでは1978ねんのFORTRAN 77規格きかく制定せいていからのプログラミング技術ぎじゅつにおける大幅おおはば変化へんか反映はんえいするために、以下いかおおくのあたらしい機能きのうくわえられた

  • フリーフォームソース入力にゅうりょく小文字こもじのFortranキーワード。プログラム本文ほんぶんを7けたからかなくてもく、80けた制限せいげんい。
if (x<0) then
x=0
end if
  • 最長さいちょう31文字もじまでの識別子しきべつし
abcdefghijklmnopqrstuvwxyz12345=0.0e0
  • インラインコメント。
! これは"!"をもちいたコメントです
  • 配列はいれつ演算えんざん(あるいは部分ぶぶん配列はいれつ演算えんざん)。これは数学すうがくとエンジニアリングの計算けいさん大幅おおはば簡素かんそする。
  • 全部ぜんぶまたは部分ぶぶんマスクされた、配列はいれつ指定してい配列はいれつ表現ひょうげんたとえば、
x(1:n)=r(1:n)*cos(a(1:n))
  • 選択せんたくてき配列はいれつのアサインのためのwhereぶん
integer :: a(10)
real(8) :: b(10)
a = f(x)
where (a > 0)
  b = -1.0
elsewhere
  b = 1.0
end where
  • 配列はいれつ定数ていすうしきによる初期しょき
  • ユーザ定義ていぎ配列はいれつかえ関数かんすう配列はいれつコンストラクタ。
function sample(x) result(y) !配列はいれつyをかえ
  integer, parameter :: nn = 4
  real :: y(nn) = (/ 1, 2, 3, 4 /) !配列はいれつのコンストラクタと定数ていすうによる初期しょき
  !...
end function sample
  • 再帰さいき手続てつづき。
  • モジュラープログラム、すなわち関係かんけいするサブルーチンとデータのグループと、のプログラムユニットで使用しよう、モジュールのうち指定していした部分ぶぶんだけの使用しようふくむ。
  • interfaceぶん使用しようしてコンパイルかたがチェックされる大幅おおはば改善かいぜんされた引数ひきすうわたしメカニズム。
module my_lib !モジュール
interface
  function sample(x)
    real, intent(in) :: x(:) !コンパイル変数へんすうかた整合せいごうせいとデータの入出力にゅうしゅつりょく方向ほうこうがチェックされる。
    !...
  end function sample
end interface
end module
  • ユーザー定義ていぎ総称そうしょう関数かんすう(おな関数かんすうめいで、引数ひきすうかずとタイプを自動的じどうてき識別しきべつしてことなる内部ないぶ関数かんすうす)のインターフェース。
  • 演算えんざん('+'、'-'、など)のオーバーローディング(多重たじゅう定義ていぎ)。
  • 派生はせいがたデータタイプ。
  • 変数へんすうのデータタイプと属性ぞくせい指定していするためのあらたなデータタイプの宣言せんげんシンタックス、
  • allocatable属性ぞくせいと allocateとdeallocateぶんもちいたダイナミックメモリアロケーション。
real, allocatable :: temp(:)
allocate(temp(nn))
deallocate(temp)
  • ポインター属性ぞくせいとポインターアサイン、nullifyぶんによるダイナミックデータ構造こうぞうあつかい。
  • do ぶんの end do による終端しゅうたん
  • do while ぶん
  • exitぶんによるdoぶんからの脱出だっしゅつと、cycleぶんによるdoぶんつぎかえしへの移行いこう
do i = 1, nn
  if (b(i) /= 0) then
    a(i) = 1.0 / b(i)
  else
    exit
  end if
end do
  • selectぶん
select case (sw)
case ('++')
  a = a + 1
case ('--')
  a = a - 1
case default
  a = 0
end select
  • ユーザがコントロールできる数値すうち精度せいど移植いしょくせい指定してい方法ほうほう
a = 1.0e0_kind(1.0d0)
  • あたらしく導入どうにゅうされた内部ないぶ関数かんすう。それにともな従来じゅうらいぶん関数かんすう(statement function)は廃止はいし予定よていに。

削除さくじょまたは時代遅じだいおくれとされた機能きのう一覧いちらん[編集へんしゅう]

以前いぜんのバージョンとはことなり、Fortran 90は、なん機能きのう削除さくじょしなかった。(Appendix B.1には、「この規格きかくの、削除さくじょした機能きのうのリストはそらである。」と記載きさいされている)つまり、FORTRAN 77に準拠じゅんきょしたプログラムは、Fortran 90にもまた準拠じゅんきょしている。そして、両方りょうほう規格きかくで、その動作どうさ定義ていぎづけられた項目こうもく使用しよう可能かのうでなければならない。一部いちぶ機能きのうはFortran 95で「削除さくじょ」され、また機能きのうちいさな部分ぶぶんは「時代遅じだいおくれ」と認定にんていされて将来しょうらい規格きかく除去じょきょされることが予定よていされた。

削除さくじょまたは時代遅じだいおくれとされた機能きのう一覧いちらん
時代遅じだいおくれの機能きのう れい 状態じょうたい / Fortran 95での予定よてい
算術さんじゅつ IF ぶん
      IF (X) 10, 20, 30
-整数せいすうがたの DO パラメータ あるいは制御せいぎょ変数へんすう
      DO 9 X= 1.7, 1.6, -0.1
削除さくじょ
DOループの末端まったん共有きょうゆう もしくは
END DO あるいはCONTINUE以外いがい末端まったん
 
      DO 9 J= 1, 10
         DO 9 K= 1, 10
9           L= J + K
ブロック外部がいぶからの

END IFへのブランチ

66    GO TO 77 ; . . . 
      IF (E) THEN ;      . . . 
77    END IF
削除さくじょ
Alternate return
      CALL SUBR( X, Y *100, *200 )
PAUSEぶん
      PAUSE 600
削除さくじょ
ASSIGN statement
  と assigned GO TO statement
100   . . .
      ASSIGN 100 TO H
      . . .
      GO TO H . . .
削除さくじょ
Assigned FORMAT specifiers
      ASSIGN F TO 606
削除さくじょ
H 編集へんしゅう
606   FORMAT ( 9H1GOODBYE. )
削除さくじょ
計算けいさん GO TO ぶん
      GO TO (10, 20, 30, 40), index
(時代遅じだいおくれ)
ぶん関数かんすう
      FOIL( X, Y )= X**2 + 2*X*Y + Y**2
(時代遅じだいおくれ)
DATA ぶん
  among executable statements
      X= 27.3

      DATA A, B, C / 5.0, 12.0. 13.0 /. . .
(時代遅じだいおくれ)
CHARACTER* の形式けいしきによる文字もじがた宣言せんげん
      CHARACTER*8 STRING  ! Use CHARACTER(8)
(時代遅じだいおくれ)
Assumed character length functions
      CHARACTER*(*) STRING
固定こていちょう形式けいしきのソースコード * だい1カラムが * あるいは ! あるいは C であるくだり注釈行ちゅうしゃくぎょう.
C   だい6カラムが空白くうはくでなければつぎ続行ぞっこう.ぶん番号ばんごう先頭せんとうから5けたまでにく。

"Hello world"のれい[編集へんしゅう]

program helloworld
  print *, "Hello, world."
end program helloworld

Fortran 95[編集へんしゅう]

地球ちきゅうシミュレータスーパーコンピュータ

Fortran 95は、マイナーな改訂かいていばんである。ほとんどは、Fortran 90規格きかくの、いくつかのおおきな問題もんだい解決かいけつするためのものである。それにもかかわらず、Fortran 95もまた年号ねんごう付加ふかされている。それは、Fortranの拡張かくちょうとして定義ていぎされる並列へいれつ言語げんご、HPF(High Performance Fortran:ハイ・パフォーマンスFortran)の一部いちぶ導入どうにゅうによることは明白めいはくである。なお、本格ほんかくてきなHPFは、地球ちきゅうシミュレータとう使用しようされている[2]

  • forall階層かいそうされたwhereがベクトルのために追加ついかされた。
  • ユーザ定義ていぎpureelemental プロセジャーが追加ついかされた。
  • 派生はせいタイプコンポーネントのデフォルト初期しょき、これはポインターの初期しょきふくむが追加ついかされた。
  • データオブジェクトの初期しょき表記ひょうき使つかうための拡張かくちょう追加ついかされた。
  • allocatable アレイがスコープからとき自動的じどうてきdeallocateされることの明確めいかく定義ていぎ追加ついかされた。

おおくの内部ないぶ関数かんすう拡張かくちょうされた。いちれいとしてmaxloc 内部ないぶ関数かんすうdim引数ひきすう追加ついかされた

Fortran 90で時代遅じだいおくれとされた、いくつかの機能きのうはFortran 95から削除さくじょされた。

  • REALDOUBLE PRECISION変数へんすう使用しようしたDO ステートメントは削除さくじょされた。
  • END IFステートメントへのブロック外部がいぶからのブランチは削除さくじょされた。
  • PAUSE ステートメントは削除さくじょされた。
  • ASSIGNASSIGNかたGOTO ステートメント、ASSIGNフォーマット指定してい削除さくじょされた。
  • H edit descriptor(いわゆるホレリス定数ていすうen:Hollerith constant))は削除さくじょされた。

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コンパイラがポインタ-ベース・アレイより高速こうそくなコードを生成せいせいすることを可能かのうにする。

重要じゅうようなFortran 95への追加ついかは、ISO technical report TR-15580: 浮動ふどう小数点しょうすうてん例外れいがいハンドリングである。一般いっぱんにはIEEE TRとしてられており、この仕様しようはIEEE 浮動ふどう小数点しょうすうてん演算えんざん例外れいがいハンドリングを定義ていぎする。

条件じょうけんづけコンパイルと可変長かへんちょう文字もじれつ[編集へんしゅう]

必須ひっすのベース言語げんご(ISO/IEC 1539-1:1997に定義ていぎ以外いがいに、Fortran 95言語げんご以下いかの2つのオプショナルなモジュールをふくむ。

  • 可変かへん文字もじれつ(ISO/IEC 1539-2 : 2000)
  • 条件じょうけんづけコンパイル(ISO/IEC 1539-3 : 1998)

両者りょうしゃは、マルチパート国際こくさい標準ひょうじゅん構成こうせいする(ISO/IEC 1539)。規格きかく開発かいはつしゃは、「オプショナル・パートは必要ひつようなものを完備かんびした機能きのう記述きじゅつしている、それはおおくのコンパイラ・インプリメンターとユーザーから要求ようきゅうされてきたものである。しかし、それらは、すべてのFortran標準ひょうじゅん合致がっちするコンパイラは十分じゅうぶん一般いっぱんせいたないとかんがえられていた。それにもかかわらず、もし標準ひょうじゅん合致がっちしたFortranがそのようなオプションを提供ていきょうするなら、『それらの機能きのうは、標準ひょうじゅん規格きかく適切てきせつなパートに記述きじゅつしたがって提供ていきょうされなければならない。』」とべている。

Fortran 2003[編集へんしゅう]

Fortran 2003はメジャーな改訂かいていであり、たくさんのあたらしい機能きのう導入どうにゅうした。 Fortran2003におけるあたらしい機能きのう包括ほうかつてきなサマリーは、Fortran Working Group (WG5)のオフィシャルWebサイトからることができる[7]

この記事きじによれば、このバージョンがふく大幅おおはば強化きょうか以下いかとおりである。

  • 派生はせいタイプの強化きょうか使用しようほう進歩しんぽしたコントロール、パラメータされた派生はせいがた改善かいぜんされた構造こうぞうコンストラクタとファイナライザー。
  • オブジェクト指向しこうプログラミングのサポート:オブジェクト指向しこうのタイプの拡張かくちょうインヘリタンスポリモーフィズム、ダイナミック・タイプアロケーション、タイプ-バウンド・プロセジャー。
  • データマニピュレーション・エンハンスメント:allocatable コンポーネント (TR 15581のれ)、遅延ちえんタイプパラメータ、ボラタイル・アトリビュート、ポインタ-の強化きょうか初期しょき拡張かくちょう内蔵ないぞう関数かんすう強化きょうか
  • 入出力にゅうしゅつりょく強化きょうか非同期ひどうき転送てんそう、ストリーム・アクセス、派生はせいタイプのためのユーザ定義ていぎ転送てんそうオペレーション、ユーザ指定していのフォーマット変換へんかんまるめの制御せいぎょ接続せつぞくまえのユニットの名前なまえづけ定数ていすうFLUSH ステートメント、キーワードの規則きそく、エラーメッセージへのアクセス。
  • プロセジャーのポインター。
  • IEEE 浮動ふどう小数点しょうすうてん浮動ふどう小数点しょうすうてん例外れいがい処理しょりのサポート(TR 15580のれ)。
  • C言語げんごとの相互そうご運用うんよう
  • 国際こくさいてき慣習かんしゅうのサポート:ISO 10646(国際こくさい文字もじセット)の4バイト文字もじ利用りよう数値すうち形式けいしき入出力にゅうしゅつりょくでのデシマル(.)とコンマ(,)の選択せんたく
  • ホスト・オペレーティングシステムとの一体化いったいか強化きょうか。コマンドライン引数ひきすう環境かんきょう変数へんすうとプロセッサーエラーメッセージ。

Fortran 2003 への重要じゅうよう追加ついかは、ISO technical report TR-19767である。

Fortranにおけるモジュール機能きのう強化きょうか。このレポートは、submodules提供ていきょうする。これは、FortranのモジュールをよりModula-2言語げんごのモジュールにちかづける。これらは、Ada言語げんごのプライベート・チャイルド・サブユニットにている。これは分離ぶんりしたプログラムユニットとして表現ひょうげんすべきモジュールの仕様しよう実装じっそう可能かのうにし、だい規模きぼなライブラリのパッケージ改善かいぜんし、インターフェース定義ていぎ公開こうかいしても企業きぎょう秘密ひみつ保持ほじすることを可能かのうにし、コンパイレーション・カスケードをふせぐ。

Fortran 2008[編集へんしゅう]

最新さいしん規格きかくであり一般いっぱんにはFortran 2008としてられているISO/IEC 1539-1:2010は2010ねん9がつ承認しょうにんされた[8]。Fortran 95と同様どうように、これはマイナー・アップグレードである。Fortran 2003の明確めいかく訂正ていせいともに、あたらしい特長とくちょう導入どうにゅうされた。あたらしい特長とくちょうは、以下いかふく

  • モジュール構造こうぞう追加ついか、ISO/IEC TR 19767:2005にとってかわるサブモジュール。
  • Co-array Fortran並列へいれつ計算けいさんモデル。
  • do concurrent―相互そうご依存いぞんのないループを並列へいれつ実行じっこうするDOループ。
  • メモリじょうのレイアウトを指定していするためのCONTIGUOUS(隣接りんせつ属性ぞくせい
  • コンストラクト・スコープづけのオブジェクトの宣言せんげんふくむブロック・コンストラクト。
  • 派生はせいタイプにおける再帰さいきてきポインターの代替だいたいとしての再帰さいきてきアロケータブル・コンポーネント。

ファイナル・ドラフト・スタンダード(FDIS)は、ドキュメントN1830として利用りようできる[9]

Fortran 2008における重要じゅうよう追加ついかは、ISOテクニカルスペシフィケーション(TS) 29113のFortranにおけるC言語げんごとのよりたかいインターオペラビリティであり[10][11]、2012ねん5がつのISOの承認しょうにんけてまとめられた。C言語げんご配列はいれつへのFortranアクセスにかんしてタイプとランクを無視むしする仕様しようくわえられた。

Fortran 2018[編集へんしゅう]

Fortran 2018の最新さいしんばんは、以前いぜんはFortran 2015とばれていた[12]おおきな改訂かいていおこなわれ、2018ねん11月28にちにリリースされた[13]

Fortran 2018には、それ以前いぜん公開こうかいされた以下いかの2つの技術ぎじゅつ仕様しようふくまれている。

  • ISO/IEC TS 29113:2012 Further Interoperability with C[14]
  • ISO/IEC TS 18508:2015 Additional Parallel Features in Fortran[15]

追加ついか変更へんこうしん機能きのうには、ISO/IEC/IEEE 60559:2011(2019ねん時点じてんIEEE浮動ふどう小数点しょうすうてんすう仕様しよう最新さいしんばん)のサポート、16しん入出力にゅうしゅつりょく、IMPLICIT NONEの拡張かくちょうなど、様々さまざま変更へんこうふくまれている[16][17][18][19]

Fortran 2023[編集へんしゅう]

Fortran 2023 (ISO/IEC 1539-1:2023) は、2023ねん11月に発行はっこうされた[20]対応たいおうするJIS規格きかく現在げんざいのところ発行はっこうされていない。Fortran 2023はFortran 2018のマイナーな拡張かくちょうであり、Fortran 2018のあやまりまたは欠落けつらく修正しゅうせいと、いくつかのちいさな機能きのう追加ついか重点じゅうてんかれている。非公式ひこうしき説明せつめいが、Metcalfら (2023) の書籍しょせき[21]にある。

つぎのFortran規格きかく[編集へんしゅう]

Fortran 202Y と仮称かしょうされているつぎの Fortran 規格きかくは、2028ねんごろに発行はっこうされる見通みとおしであり、ISO/IEC JTC 1/SC 22/WG 5 で具体ぐたいあん検討けんとうすすめられている[22]日本にっぽんでは、情報処理じょうほうしょり学会がっかい 情報じょうほう規格きかく調査ちょうさかい SC 22/Fortran WGしょう委員いいんかい中心ちゅうしんに、WG 5 に進言しんげんするためのオープンな議論ぎろんおこなわれている[23]

科学かがく分野ぶんや工学こうがく分野ぶんやでの利用りよう[編集へんしゅう]

1968ねんBASIC作者さくしゃとうによってかれた専門せんもん雑誌ざっし記事きじでもすでに「旧式きゅうしきの(old-fashioned)プログラミング言語げんご」と記述きじゅつされていたが[24]、Fortranは現在げんざいでもすうじゅうねんわたって使用しようされており、とく科学かがく工学こうがくのコミュニティでは、Fortranでかれたソフトウェアが日常にちじょうてき幅広はばひろ利用りようされている[25]ジェイ・パサコフ英語えいごばんは1984ねんに「物理ぶつりがく気象きしょうがく学生がくせいはFORTRANをかならまな必要ひつようがある。だい部分ぶぶん成果せいかがFORTRANでかれており、科学かがくしゃたちがPascalやModula-2などのほか言語げんご移行いこうする可能かのうせいきわめてひくい。」といている[26]。1993ねんCecil E. Leithは、FORTRANを「科学かがく計算けいさん母語ぼご」であるとひょうし、言語げんごによってえられる可能かのうせいは「永遠えいえん希望きぼうでありつづけるだろう」とべている[27]

言語げんご仕様しよう変遷へんせん[編集へんしゅう]

FORTRAN 66以降いこうISOANSIJIS仕様しよう制定せいていされている。Fortranの言語げんご仕様しようは、年代ねんだいによってかなり変化へんかしてている。プログラミング言語げんご実装じっそうされた構造こうぞうプログラミング機能きのうなどがどんどんれられてているからである。

初期しょき (FORTRAN 66)[編集へんしゅう]

1966ねんにANSI X3.9-1966が制定せいていされ、JISとしては1967ねん制定せいていされた。このときは、以下いかの3つの水準すいじゅんごとに独立どくりつしたJISが制定せいていされた。共通きょうつうしたタイトルは「電子でんし計算けいさんプログラムよう言語げんご FORTRAN」だった。以下いか水準すいじゅんあいだのおおよそのちがいをしるす。

  • JIS C 6201(水準すいじゅん7000)
  • JIS C 6202(水準すいじゅん5000)
    • 変数へんすう配列はいれつ手続てつづめい最大さいだい6文字もじ
  • JIS C 6203(水準すいじゅん3000)
    • 変数へんすう配列はいれつ手続てつづめい最大さいだい5文字もじ
    • 論理ろんりがたのデータ、論理ろんりしき関係かんけいしき論理ろんりIFぶん使つかえない。
    • かた宣言せんげんぶんがない。
    • EXTERNALぶんがない。
    • 3次元じげん配列はいれつがない。
    • 名前なまえきCOMMONぶんがない。
    • ぶん番号ばんごうは4けた
    • COMMONぶん配列はいれつ宣言せんげん使つかえない。
    • 整合せいごう配列はいれつがない。

なお、1971、1976ねん若干じゃっかん改訂かいていがなされている。

FORTRAN 77時代じだい[編集へんしゅう]

国際こくさい標準ひょうじゅん機構きこうISO)は、米国べいこく規格きかく協会きょうかいANSI)の X3J3 が作成さくせいした FORTRAN の規格きかく X3.9-1978 を ISO 1539-1980 としてさだめた。基本きほん水準すいじゅん(subset language)と上位じょうい水準すいじゅん(full language)の2種類しゅるい水準すいじゅんからなっていた。これをもとにして、おなじく2水準すいじゅんの JIS C 6201-1982 が制定せいていされた。なお、1987ねんに、JISの分類ぶんるい変更へんこうになり、この規格きかくは JIS X 3001-1982 となった。内容ないようには変更へんこうはない。

Fortran 90時代じだい[編集へんしゅう]

FORTRAN 77をもと言語げんご特徴とくちょうみ、言語げんご仕様しよう近代きんだいしようとしたが、そのため仕様しようがなかなかまらず、1991ねんに ISO/IEC 1539:1991として制定せいていされた。JISではそれをけ、JIS X 3001:1994が制定せいていされた。

Fortran 90 から規格きかくじょう言語げんご呼称こしょう頭文字かしらもじのみを大文字おおもじとした“Fortan”に変更へんこうされた[28]

Fortran 95時代じだい[編集へんしゅう]

JIS X 3001:1998では,Fortran 95と通称つうしょうされる規格きかく引用いんようされている。該規格きかく一部いちぶ例外れいがいのぞきJIS X 3001 1-1994の上位じょうい互換ごかん拡張かくちょうである。

Fortran 2003時代じだい[編集へんしゅう]

JIS X 3001:2009では,Fortran 2003と通称つうしょうされる規格きかく引用いんようされている。当該とうがい規格きかく一部いちぶ例外れいがいのぞいてJIS X 3001-1:1998の上位じょうい互換ごかん拡張かくちょうである[29]

Fortran 2008時代じだい[編集へんしゅう]

対応たいおうするJISは制定せいていされなかった。

Fortran 2018時代じだい[編集へんしゅう]

JIS X 3001-1:2023(2023ねん現在げんざい最新さいしん改正かいせいばん)では,Fortran 2018と通称つうしょうされる規格きかく引用いんようされている[30]

Fortran と教育きょういく[編集へんしゅう]

教育きょういくけコンパイラ[編集へんしゅう]

Fortranは、情報処理じょうほうしょり分野ぶんやひろ使つかわれていたため、学校がっこう会社かいしゃ教育きょういく情報処理じょうほうしょり技術ぎじゅつしゃ教育きょういく)で利用りようされた。教育きょういくけには、より詳細しょうさいなエラー情報じょうほうすための拡張かくちょうがWaterloo大学だいがくでWATFOR(のちにWATFIV)コンパイラとして実装じっそうされた。この実装じっそう日本にっぽん大学だいがくでも使つかわれた。

Fortranとスーパーコンピュータ[編集へんしゅう]

Fortranは科学かがく技術ぎじゅつ計算けいさんよう言語げんごなので、スーパーコンピュータでのプログラミング言語げんごとしてよくもちいられる。実際じっさいおおくのスーパーコンピュータでベンダーがおも注力ちゅうりょくして提供ていきょうされている言語げんごは、C/C++およびFortranである。

C言語げんご比較ひかくすると、Fortranはスタックひとし使つかわずに、コンパイル静的せいてき記憶きおく領域りょういき確保かくほするのが基本きほんであった。そのため、自由じゆうたかくあらゆる状況じょうきょう想定そうていしなければならないC言語げんごくらべるとコンパイラはコードを最適さいてきしやすいという利点りてんがある。

Fortranのおも用途ようとである科学かがく技術ぎじゅつよう計算けいさんでは配列はいれつもちいた演算えんざん基本きほんであり、ベクトルがたスーパーコンピュータは、Fortranを使つかったプログラム使用しようすることがおおい。そこで、スーパーコンピュータの高速こうそく演算えんざん機能きのう有効ゆうこう使つかうための工夫くふうがなされた。その1つのれいとしては、自動じどうベクトル機能きのうである。ベクトルかたのスーパーコンピュータは、おおくの演算えんざん同時どうじおこなうベクトル演算えんざん機能きのうハードウェア提供ていきょうされている。この機能きのう有効ゆうこう使つかうために、FortranのDOループをベクトル演算えんざん装置そうち演算えんざんさせるために、自動的じどうてきにベクトル命令めいれいにする機能きのう提供ていきょうされた。また、DOループないのベクトル演算えんざんてきさないものをDOループがい機能きのうなどもある。たとえば、

DO I = 1, N
  A(I) = B(I) * C(I)
END DO

のようなDO構文こうぶんは、ほとんどの場合ばあい、1からすうのベクトル演算えんざん命令めいれいコンパイルされる。そのほかにもDOループのなかにIFぶんふくむようなれい、たとえば、

DO I = 1, N
  IF (A(I) <= LIMIT) THEN
    B(I) = A(I) * Z
  END IF
END DO

のようなものもベクトルできる場合ばあいがある。これは、いったんAのかく要素ようそがLIMIT以下いかかどうかをしめすマスクベクトルを作成さくせいして、Aという配列はいれつ(=ベクトル)に、変数へんすうZのじょうじるとき、マスクベクトルを参照さんしょうするベクトル演算えんざんおこなうことで、DOループをベクトルする。

このような作業さぎょうは、すべてコンパイラおこない、利用りようしゃにできるだけ負担ふたんをかけないようにしている。しかし、より高度こうどなベクトルおこなうために、最適さいてきおこな支援しえんツールが用意よういされている場合ばあいもある。

Fortranと日本語にほんご[編集へんしゅう]

コンピュータじょう日本語にほんご文字もじあつかえるようになると、FORTRANでも日本語にほんごあつか需要じゅようてきた。そのため、各社かくしゃメインフレーム作成さくせいしていたメーカ)では、独自どくじ言語げんご仕様しよう日本語にほんご文字もじあつかえるように拡張かくちょうした。そのため、各社かくしゃ日本語にほんごあつかかたことなる事態じたいになった。そこで、JEIDAでは1985ねんに、JEIDA-42で日本語にほんごFORTRANを策定さくていした。

FORTRANで日本語にほんご文字もじあつか場合ばあい識別子しきべつしである変数へんすうめいかり引数ひきすうめい、プログラムめい関数かんすうめい、サブチン名ちんめい共通きょうつうブロックめいとうには日本語にほんご文字もじ使つかえず、データとしての日本語にほんご文字もじれつあつかうための専用せんようかた日本語にほんごがた)、日本語にほんご文字もじれつ入出力にゅうしゅつりょくするためのFORMATぶん編集へんしゅう拡張かくちょうおこなわれた。

Fortranベースの言語げんご[編集へんしゅう]

FORTRAN 77が登場とうじょうするまえにいろいろとつくられたプリプロセッサはFortranをベースとしてよりプログラムがみやすくきやすい言語げんご形式けいしき提供ていきょうするためにひろ使つかわれた。プリプロセッサで処理しょりされたコードは、標準ひょうじゅんのFORTRANコンパイラをそなえた任意にんいのマシンにたいしてコンパイルすることができる利点りてんつ。これらのプリプロセッサは通常つうじょう構造こうぞうプログラミング、6文字もじよりもなが変数へんすうめい追加ついかのデータがた条件じょうけんきコンパイル、さらにはマクロ機能きのうなどをサポートしていた。

ポピュラーなプリプロセッサとしてFLECSとiftran、MORTRAN、SFtran、S-Fortran、Ratfor、Ratfivがあった。たとえば、RatforとRatfivはCライクな言語げんご実装じっそうして、標準ひょうじゅんてきなFORTRAN 66コードを出力しゅつりょくした。

LRLTRANは、ローレンス放射線ほうしゃせん研究所けんきゅうじょで、ベクトル演算えんざんおよび動的どうてき記憶きおく、システムのプログラミングをサポートするほか拡張かくちょう機能きのう提供ていきょうするために開発かいはつされ、ディストリビューションにはLTSSオペレーティングシステムがふくまれていた。Fortran 95規格きかくは、任意にんい条件じょうけんきコンパイルの機能きのう定義ていぎするオプションパート3をそなえている。この機能きのうは、しばしば 『CoCo』とばれている。 SIMSCRIPTは、だい規模きぼ離散りさんシステムのモデリングとシミュレーションのためのアプリケーションにとくしたFortranのプリプロセッサである。

またおおくのFORTRANコンパイラは、Cプリプロセッサのサブセットをんだ。 Fortran言語げんご進歩しんぽにもかかわらず、プリプロセッサは条件じょうけんきコンパイルとマクロ置換ちかんのために使用しようされつづけている。

プログラミング言語げんごFは、FortranのEQUIVALENCEぶんなどの、冗長じょうちょう構造こうぞう推奨すいしょう機能きのう削除さくじょしたFortran 95のクリーンなサブセットとして設計せっけいされた。言語げんごFはFortran 90で追加ついかされた配列はいれつ演算えんざん機能きのう使つかい、FORTRAN 77とFortran 90で追加ついかされた制御せいぎょぶんもちい、構造こうぞうプログラミングのために廃止はいしされた制御せいぎょぶん削除さくじょした。設計せっけいしゃ言語げんごFを 『とく教育きょういく科学かがく技術ぎじゅつ計算けいさんてきした、構造こうぞうされた配列はいれつプログラミング言語げんごである。』 とべている[31]。しかしサブセット言語げんごであるから,旧来きゅうらいのあるいはFでのぞかれた機能きのうふくむFortranのソースコードはけないため、実務じつむようには普及ふきゅうしなかった。

HPF(High Performance Fortran)というFortran拡張かくちょうけい言語げんごもあるが、これもほぼすたれた。

おも処理しょりけい[編集へんしゅう]

Windows[編集へんしゅう]

フリーソフト
商用しょうようソフト
  • Absoft Pro Fortran
  • Intel Visual Fortran
  • NAG Fortran
  • Lahey Fortran

Linux[編集へんしゅう]

無償むしょう利用りようできるコンパイラ
  • GNU Fortran (GFortran)- 自由じゆうなソフトウェア(Free Software)のGNU コンパイラ・コレクションの1つ。現在げんざい Fortran 95 に2003や2008の仕様しよう一部いちぶ追加ついか
  • G95
  • Open Watcom Open Watcom
  • Intel Fortran Composer XE 2011 for Linux - 商用しょうよう利用りようかぎ無償むしょう使用しよう
  • Oracle developer studio - 開発かいはつけに期限きげん無償むしょうライセンス
  • NVIDIA HPC SDK - ライセンス契約けいやくへの同意どうい必要ひつよう
有償ゆうしょう商用しょうようコンパイラ
  • Absoft Pro Fortran
  • Intel Visual Fortran
  • NAG Fortran
  • Open64
  • PGI Fortran
  • un Studio

その[編集へんしゅう]

出典しゅってん[編集へんしゅう]

  1. ^ かげやまさとし『Fortran90/95入門にゅうもん』、なぜFortran90/95か?
  2. ^ a b HPF推進すいしん協議きょうぎかい (HPFPC)
  3. ^ ISO/IEC JTC1/SC22/WG5-N489 (2 March 1990). Resolutions. London WG5 Meeting, February 26 - March 2, 1990. wg5-fortran.org. ISO/IEC JTC 1/SC 22/WG 5. 2024ねん3がつ6にち閲覧えつらん
  4. ^ 牛島うしじましょう 2020, はじめに.
  5. ^ History of FORTRAN and FORTRAN II — Software Preservation Group
  6. ^ Fortranの開発かいはつしゃジョン・バッカスが死亡しぼう - Gadgets - MSNBC.com
  7. ^ Fortran Working Group (WG5).It may also be downloaded as a PDF file or gzipped PostScript file, FTP.nag.co.uk
  8. ^ N1836, Summary of Voting/Table of Replies on ISO/IEC FDIS 1539-1, Information technology - Programming languages - Fortran - Part 1: Base language ftp://ftp.nag.co.uk/sc22wg5/N1801-N1850/N1836.pdf (PDF, 101 KiB)
  9. ^ N1830, Information technology, Programming languages, Fortran, Part 1: Base language ftp://ftp.nag.co.uk/sc22wg5/N1801-N1850/N1830.pdf (PDF, 7.9 MiB)
  10. ^ ISO page to ISO/IEC DTS 29113, Further Interoperability of Fortran with C
  11. ^ Draft of the Technical Specification (TS) 29113 ftp://ftp.nag.co.uk/sc22wg5/N1901-N1950/N1917.pdf (PDF, 312 kiB)
  12. ^ Doctor Fortran in "Eighteen is the new Fifteen"”. Software.intel.com. 2017ねん11月20にち閲覧えつらん
  13. ^ Fortran 2018”. ISO. 2018ねん11月30にち閲覧えつらん
  14. ^ Further Interoperability with C”. ISO. 2017ねん11月20にち閲覧えつらん
  15. ^ Additional Parallel Features in Fortran”. ISO. 2017ねん11月20にち閲覧えつらん
  16. ^ The New Features of Fortran 2015”. ISO. 2017ねん6がつ23にち閲覧えつらん
  17. ^ Doctor Fortran in "One Door Closes"”. Software.intel.com. 2015ねん9がつ21にち閲覧えつらん
  18. ^ Doctor Fortran Goes Dutch: Fortran 2015”. Software.intel.com. 2014ねん11月19にち閲覧えつらん
  19. ^ PL22.3; WG5 (2018ねん10がつ9にち). “Fortran 2018 Interpretation Document” (pdf). J3. 2024ねん2がつ28にち閲覧えつらん内部ないぶ資料しりょう
  20. ^ Fortran 2023”. JTC1/SC22/WG5. ISO. 2024ねん2がつ28にち閲覧えつらん
  21. ^ Metcalf, Michael; Reid, John; Cohen, Malcolm; Bader, Reinhold (2023). Modern Fortran explained : incorporating Fortran 2023 (Sixth ed.). Oxford. ISBN 978-0-19-887657-1. OCLC 2023946356. https://global.oup.com/academic/product/modern-fortran-explained-9780198876588?prevNumResPerPage=20&prevSortField=9&q=metcalf&start=20&lang=en&cc=de 
  22. ^ Documents”. JTC1/SC22/WG5. ISO. 2024ねん2がつ28にち閲覧えつらん
  23. ^ 情報処理じょうほうしょり学会がっかい 情報じょうほう規格きかく調査ちょうさかい SC 22/Fortran WGしょう委員いいんかい (2024ねん1がつ24にち). “Fortran 202Y規格きかくについて議論ぎろんしよう”. GitHub. 2024ねん2がつ28にち閲覧えつらん
  24. ^ Kemeny, John G.; Kurtz, Thomas E. (11 October 1968). “Dartmouth Time-Sharing”. Science 162 (3850): 223–228. doi:10.1126/science.162.3850.223. http://dtss.dartmouth.edu/sciencearticle/index.html. 
  25. ^ Phillips, Lee. “Scientific computing's future: Can any coding language top a 1950s behemoth?”. Ars Technica. 2014ねん5がつ8にち閲覧えつらん
  26. ^ Pasachoff, Jay M. (1984ねん4がつ). “Scientists: FORTRAN vs. Modula-2”. BYTE: pp. 404. https://archive.org/stream/byte-magazine-1984-04/1984_04_BYTE_09-04_Real-World_Interfacing#page/n403/mode/2up 2015ねん2がつ6にち閲覧えつらん 
  27. ^ Galperin, Boris (1993). “26”. Large Eddy Simulation of Complex Engineering and Geophysical Flows. London: Cambridgey. p. 573. ISBN 978-0-521-43009-8 
  28. ^ ISO/IEC 1539 : 1991 (E) Fortran, ISO/IEC, (1991-07-01), https://wg5-fortran.org/N001-N1100/N692.pdf 
  29. ^ JIS X 3001-1:2009「プログラム言語げんごFortran――だい1: 基底きてい言語げんご日本にっぽん産業さんぎょう標準ひょうじゅん調査ちょうさかい経済けいざい産業さんぎょうしょう
  30. ^ JIS X 3001-1:2023「プログラム言語げんごFortran―だい1: 基底きてい言語げんご日本にっぽん産業さんぎょう標準ひょうじゅん調査ちょうさかい経済けいざい産業さんぎょうしょう
  31. ^ F Programming Language Homepage

参考さんこう文献ぶんけん[編集へんしゅう]

  • あきとみしょう学生がくせいのためのFORTRAN : JIS上位じょうい水準すいじゅんによる』東京電機大学とうきょうでんきだいがく出版しゅっぱんきょく、1990ねんISBN 978-4501515300
  • 新井あらい親夫ちかお『Fortran90入門にゅうもん : 基礎きそから再帰さいき手続てつづきまで』森北もりきた出版しゅっぱん、1998ねんISBN 978-4627839816
  • 牛島うしじましょう数値すうち計算けいさんのためのFortran 90/95プログラミング入門にゅうもん森北もりきた出版しゅっぱん、2007ねんISBN 978-4-627-84721-7。 - だい2はん 2020ねん
  • 牛島うしじましょう数値すうち計算けいさんのためのFortran90/95プログラミング入門にゅうもん』(だい2はん森北もりきた出版しゅっぱん、2020ねんISBN 978-4627847224 
  • 牛島うしじましょう数値すうち計算けいさんのためのFortran90/95プログラミング入門にゅうもん(だい2はん)・アンサーブック : 演習えんしゅう問題もんだい解答かいとう解説かいせつ日本にっぽん電子でんし書籍しょせき技術ぎじゅつ普及ふきゅう協会きょうかい、2022ねんISBN 978-4867538098。 - ペーパーバックばん
  • うら昭二しょうじ『FORTRAN 入門にゅうもん培風館ばいふうかん、1966 (1972,1980,1983)ねん
  • うら昭二しょうじ近藤こんどう頌子、土居どい範久のりひさ原田はらだ賢一けんいち『FORTRAN 77入門にゅうもん培風館ばいふうかん、1982ねん
  • かげやまさとしFortran90/95入門にゅうもん
  • 片桐かたぎり孝洋たかひろ大島おおしま聡史さとし『C&Fortran 演習えんしゅうまな数値すうち計算けいさん共立きょうりつ出版しゅっぱん、2022ねんISBN 978-4-320-12484-4
  • 田口たぐち俊弘としひろ『Fortran ハンドブック』技術評論社ぎじゅつひょうろんしゃ、2015ねんISBN 978-4774175065
  • 竹澤たけざわあきら『Fortran I 基礎きそ』(だい2はん)、共立きょうりつ出版しゅっぱん、2000ねんISBN 4-320-02977-1。 - 初版しょはん 1995ねん
  • 竹澤たけざわあきら『Fortran II 数値すうち計算けいさん共立きょうりつ出版しゅっぱん、1997ねんISBN 4-320-02868-6
  • 竹澤たけざわあきら『Fortran III データ構造こうぞうとアルゴリズム』共立きょうりつ出版しゅっぱん、1999ねんISBN 4-320-02937-2
  • 田辺たなべまこと, 平山ひらやまひろし実践じっせんFortran95プログラミング : フリーソフトg95, gnuplotによるプログラミングから作図さくずまで』だい3はん共立きょうりつ出版しゅっぱん、2008ねん
  • 冨田とみた博之ひろゆき齋藤さいとう泰洋やすひろ『Fortran90/95プログラミング』培風館ばいふうかん、1999ねん。 - 改訂かいてい新版しんぱん 2011ねん
  • 冨田とみた博之ひろゆき齋藤さいとう泰洋やすひろ『Fortran90/95プログラミング』改訂かいてい新版しんぱん培風館ばいふうかん、2011ねんISBN 978-4-563-01587-9
  • 西村にしむらじょ人文じんぶん科学かがくのFORTRAN 77』東京大学とうきょうだいがく出版しゅっぱん、1978ねん 
  • 西村にしむらじょ彦、酒井さかい俊夫としお高田たかだ正之まさゆき岩波いわなみFORTRAN辞典じてん岩波書店いわなみしょてん、1986ねんISBN 978-4000098816。 - Fortran77(まで)の規格きかく記述きじゅつした辞典じてん
  • Fortran入門にゅうもん日本にっぽんNAGしゃ
  • Fortran2003入門にゅうもん日本にっぽんNAGしゃ
  • JTC1/SC22/WG5 The official home of Fortran Standards 日本にっぽんNAGしゃ
  • 日向ひゅうが俊二しゅんじ『Fortran 2008入門にゅうもん』カットシステム、2016ねんISBN 978-4-87783-399-2
  • 藤井ふじい文夫ふみお田中たなか真人まさと佐藤さとう維美『Fortran90/95による有限ゆうげん要素ようそほうプログラミング : 非線形ひせんけいシェル要素ようそプログラムづけ丸善まるぜん出版しゅっぱん、2014ねんISBN 978-4621087848
  • 松本まつもと敏郎としお野老山ところやま貴行たかゆき『みんなのFortran : 基礎きそから発展はってんまで』名古屋大学出版会なごやだいがくしゅっぱんかい、2022ねんISBN 978-4-8158-1087-0 
  • もり正武まさたけ『FORTRAN77数値すうち計算けいさんプログラミング』増補ぞうほばん岩波書店いわなみしょてん、1987ねん
  • 森口もりぐち繁一しげかず『JIS FORTRAN入門にゅうもんじょうだい3はん東京とうきょう大学だいがく出版しゅっぱんかい、1984ねんISBN 978-4130620307
  • 安田やすだ清和きよかず水野みずの正隆まさたか小野おの英樹ひでき『Fortran90/95による実践じっせんプログラミング』大阪大学おおさかだいがく出版しゅっぱんかい、2014ねんISBN 978-4872594737
  • Jeanne C. Adams, Walter S. Brainerd, Jeanne T. Martin: "Fortran 95 Handbook: Complete Iso/Ansi Reference", MIT Press, 1997ねんISBN 978-0262510967
  • Jeanne C. Adams, Walter S. Brainerd, Richard A. Hendrickson, Richard E. Maine, Jeanne T. Martin, Brian T. Smith: "The Fortran 2003 Handbook : The Complete Syntax, Features and Procedures", Springer, 2009. ISBN 978-1-84628-378-9
  • Ed Akin: "Object-Oriented Programming via Fortran 90/95", Cambridge Univ Press, 2003ねん. ISBN 978-0-521-52408-7.
  • Sujit Kumar Bose: "Numerical Methods of Mathematics Implemented in Fortran", Springer, 2019.
  • Walter S. Brainerd, Charles H. Goldberg, Jeanne C. Adams: "Programmer's Guide to Fortran 90" (3rd Ed.), Springer, 1996.
  • Walter S. Brainerd: "Guide to Fortran 2003 Programming", Springer, 2009. ISBN 978-1-84882-542-0
  • Walter S. Brainerd: "Guide to Fortran 2008 Programming", 2nd Ed., Springer, 2015. ISBN 978-1447167587
  • Ian Chivers and Jane Sleightholme: "Introduction to Programming with Fortran", 4th Ed., Springer, 2018, ISBN 978-3-319-75501-4
  • Norman S. Clerman, Walter Spector: "Modern Fortran: Style and Usage", Cambridge University Press, 2012. ISBN 978-0-521-51453-8
  • Milan Curcic: "Modern Fortran: Building efficient parallel applications", Manning Publications, 2020. ISBN 978-1617295287. ※ Coarrayについてのれい解説かいせつあり。
  • Mark Jones Lorenzo: "Abstracting Away the Machine: The History of the FORTRAN Programming Language (FORmula TRANslation)", Independently published, 2019. ISBN 978-1082395949
  • Arjen Markus: "Modern Fortran in Practice", Cambridge Univ. Press, 2012. ISBN 978-1-13908479-6
  • M. Metcalf, J. Reid 『詳解しょうかいFortran 90』bit別冊べっさつ共立きょうりつ出版しゅっぱん、1993ねん。 - 原著げんちょ "Fortran 90 Explained"、Oxford Univ. Press、1990ねん
  • Michael Metcalf, John Reid, Malcolm Cohen: "Modern Fortran Explained", Numerical Mathematics and Scientific Computation, 4th Ed., Oxford Univ Press, 2011. ISBN 978-0199601417
  • Michael Metcalf, John Reid, Malcolm Cohen: "Modern Fortran Explained : Incorporating Fortran 2018", 5th Ed., Oxford Univ. Press, 2018. ISBN 978-0198811886
  • Valmer Norrod, et al: "A self-study course in FORTRAN programing - Volume I - textbook", Computer Science Corporation El Segundo, California, 1970. NASA(N70-25287).
  • Valmer Norrod, Sheldom Blecher, and Martha Horton: "A self-study course in FORTRAN programing - Volume II - workbook", NASA CR-1478, Vol. II, 1970. NASA(N70-25288).

関連かんれん項目こうもく[編集へんしゅう]

外部がいぶリンク[編集へんしゅう]