JIS X 3001-1:2009 プログラム言語Fortran―第1部:基底言語 | ページ 4

  2
X 3001-1 : 2009 (ISO/IEC 1539-1 : 2004)
(2) 計算機システム上でプログラムを使用するときの準備 及び 制御のために必要な操作。
(3) プログラム 及び その入出力データを記憶媒体へ 又は 記憶媒体から転記する方法。
(4) この規格の規則では解釈を与えられないプログラム 及び 処理系の動作。ただし,1.5 (2)(8) では,処理系の
検出能力 及び 報告能力が規定されている。
(5) 特定の計算機システムの容量 又は 特定の処理系の能力を超えるプログラム 及び そのデータの大きさ 又は 複
雑さ。
(6) 特定の処理系における量の表現の物理的性質 及び 数値の丸め,近似 又は 計算の方法。
(7) 入出力の記録,ファイル 及び 装置の物理的性質。
(8) 記憶の物理的性質 及び 実現法。
1.5 規格合致性
プログラム (2.2.1) は,ここに規定されている形 及び 関係だけを用いて書かれ,かつ それがこの規格に従った解
釈をもつとき,規格合致プログラム (standard-conforming program) という。プログラム単位 (2.2) は,それを含む
プログラムが規格合致となるとき,この規格に規格合致しているという。
処理系は,次の能力をすべてもつとき,この規格に規格合致する。
(1) ここで規定したとおりの解釈を満たすやり方で,あらゆる規格合致プログラムを実行する。ただし,処理系は,
プログラムの大きさ 又は 複雑さに制限を加えてもよい。
(2) 廃止予定事項 (1.8.2) として規定された形を使用しているプログラム単位について,識別番号の付いた構文規則
及び 制約を引用して検出できるとき,その使用を検出し報告する能力をもつ。
(3) 識別番号の付いた構文規則 及び 制約によって認められていない拡張された形 又は 関係[附属書 B で規定する
廃止事項 (1.8.1) を含む。]を使用しているプログラム単位について,その使用を検出し報告する能力をもつ。
(4) 処理系が実装していない種別型パラメタ値をもつ組込み型 (4.4) を使用しているプログラム単位について,その
使用を検出し報告する能力をもつ。
(5) 箇条 3 で認められていないプログラム形式 又は 文字を使用しているプログラム単位について,その使用を検出
し報告する能力をもつ。
(6) 箇条 16 での名前,文番号,演算子 及び 代入記号の有効範囲の規則に反する形で名前を使用しているプログラ
ムについて,その使用を検出し報告する能力をもつ。
(7) 箇条 13 で名前が定義されていない組込み手続を使用しているプログラム単位について,その使用を検出し報告
する能力をもつ。
(8) プログラムを受理しない理由を検出し報告する能力をもつ。
ただし,FORMAT 文 (10.1.1) の一部をなさない書式仕様において,処理系は,廃止事項 又は 廃止予定事項を使
用していること,及び 拡張された形 又は 関係を使用していることは,検出し報告しなくてもよい。
規格合致処理系は,拡張された形 及び 関係を許してもよいが,それらが規格で定められている形 及び 関係と矛
盾してはならない。ただし,規格合致プログラム中の手続の名前と矛盾する組込み手続は,追加してもよい。このよ
うな矛盾が起こった場合,処理系は,その名前が同じ有効域内で EXTERNAL 属性 (5.1.2.6) を与えられていない限
り,その組込み手続を用いる(箇条 16 参照)。規格合致プログラムは,処理系によって拡張された非標準組込み手
続 又は 非標準組込みモジュール を用いてはならない。
規格合致プログラムは,この規格の適用範囲外の事項を処理系に対して要求してもよく,また Fortran 以外の手段
で定義された外部手続のような可搬性のない書き方を含むこともできるので,この規格における規格合致性は,プロ
グラムがすべての 又は 任意の規格合致処理系の上で同じように実行されることを保証するものではない。
この規格は,この規格で完全には規定していない機能の提供を許している。これらの機能は 処理系依存 (processor
dependent) と呼ばれ,提供する場合には,その方法 又は 意味を処理系が定めなければならない。

――――― [JIS X 3001-1 pdf 16] ―――――

                                                                                                     3
X 3001-1 : 2009 (ISO/IEC 1539-1 : 2004)
注記 1.1 処理系には,次の 3 点についての文書が附属しているのが望ましい。
(1) 処理系の定めるプログラムの大きさ 及び 複雑さに関する制約,並びに その制約を超過した場
合に報告する方法
(2) 処理系が許す拡張された形 及び 関係
(3) 拡張された形 及び 関係の使用 並びに 廃止事項 又は 廃止予定事項の使用を報告する方法 (こ
の場合,廃止事項の使用は,拡張された形の使用に当たる。)
処理系には,処理系依存の方法 又は 意味を定義する文書が附属しているのが望ましい。
1.6 互換性
JIS X 3001-1982 及び ISO 1539 : 1980(非公式に FORTRAN 77 と呼ばれている。)以降のそれぞれの Fortran の
規格では,それ以前の規格よりも多くの組込み手続を定義している。したがって,より古い規格に合致した Fortran
のプログラムが,新しい組込み手続と同じ名前の手続を呼んでいる場合,新しい規格とは異なった解釈となる。ただ
し,手続が EXTERNAL 属性をもつと指定してある場合は,同じ解釈となる。
1.6.1 Fortran 95 との互換性
次に示す点を除いて,この規格は,従来の Fortran の規格 JIS X 3001-1 : 1998 及び ISO/IEC 1539-1 : 1997
(Fortran 95)の上位互換拡張になっている。Fortran 95 の規格合致プログラムは,この規格に規格合致する。Fortran
95 にあった次の機能は,この規格とは異なった解釈となる。
(1) 従来の Fortran の規格には,処理系依存の外部ファイル集合(空でもよい。)に対して,書式付き出力の 1 けた
目が特別な意味をもつという印字の概念があった。その集合を検出したり指定したりする手段は,規定されてい
なかった。最初のけたの解釈は,この規格では規定しない。
(2) この規格は,並び出力 及び 変数群出力に出てくる実数 0 に対して,異なった出力形式を規定する。
(3) この規格は,処理系が正の実数 0 と負の実数 0 とを区別できるとき,次の場合に異なった結果の値を要求する。
(a) < 0 かつ Y の値が 0 で符号が負のときの ATAN2(Y,X)
(b) X が REAL(X) < 0 となる複素数であって X の虚部が 0 で符号が負のときの LOG(X) 及び SQRT(X)
1.6.2 Fortran 90 との互換性
附属書 B.1 に示す廃止事項 及び次に示す点を除いて,この規格は,JISX 3001-1994 及び ISO 1539 : 1991
(Fortran 90)の上位互換拡張になっている。Fortran 90 の規格合致プログラムは,廃止事項のいずれをも使用してい
ない限り,この規格に規格合致する。
この規格では,INQUIRE 文の PAD 指定子は,指定したファイルが装置に接続されていない 又は 書式なし入出力
に対して接続されている場合,UNDEFINED を返す。Fortran 90 では YES を返す。
Fortran 90 では,MOD 又は MODULO の第 2 引数が 0 のとき,結果は処理系依存である。この規格では,第 2 引数が
0 であってはならないと規定している。
1.6.3 FORTRAN 77 との互換性
附属書 B.1 に示す廃止事項 及び次に示す点を除いて,この規格は,JISX 3001-1982 及び ISO 1539 : 1980
(FORTRAN 77)の上位互換拡張になっている。附属書 B.1 に示す廃止事項を使用していず,次に示す解釈の異な
る事項にも依存していない限り,FORTRAN 77 の規格合致プログラムは,この規格に規格合致する。この規格では,
FORTRAN 77 においては処理系依存であった幾つかの事項に対して制限を設ける。したがって,FORTRAN 77 の規格
合致プログラムが,これらの処理系依存事項を使用している場合,この規格では異なった解釈になりうるが,それで
もそのプログラムは,この規格に規格合致する。この規格において FORTRAN 77 とは解釈の異なる事項を,次に示す。
(1) ORTRAN 77 では,DATA 文において倍精度実数型データの初期値として使われる定数が実数型の定数として表
現されている場合,処理系は,実数型データで表現できるよりも高い精度のデータを提供することが可能になっ

――――― [JIS X 3001-1 pdf 17] ―――――

  4
X 3001-1 : 2009 (ISO/IEC 1539-1 : 2004)
ていた。この規格では,それを認めていない。
(2) 共通ブロック中にない名前付き変数が DATA 文で初期化され,その変数が SAVE 属性をもたない場合,その
SAVE 属性の扱いは,FORTRAN 77 では処理系依存となっていた。この規格では,この名前付き変数は SAVE 属
性をもつ(5.2.5 参照)。
(3) ORTRAN 77 では,入力項目並びによって要求される文字の個数は,書式付き入力における記録中の文字の個数
を超えてはならなかった。この規格では,入力記録中の文字の個数が足りない場合,適切な OPEN 文 及び READ
文で値が ’NO’ である PAD 指定子が指定されていない限り,その入力記録に論理的に空白を補う(9.5.3.4.2
参照)。
(4) 書式付き出力文中の出力項目の値がゼロであるとき,幾つかの G 形編集記述子では異なった形に編集される。更
に,この規格では値の丸めが出力欄の形にどのように作用するかを規定しているが,FORTRAN 77 ではこの点を
規定していなかった。したがって,値と G 形編集記述子とのある種の組合せに対して,ある FORTRAN 77 の処
理系は,Fortran 2003 の処理系と異なる出力をするかもしれない。
(5) 処理系が正の実数 0 と負の実数 0 とを区別できる場合,組込み関数 SIGN の第 2 引数が負の実数 0 であるときの
振る舞いがこの規格では変更されている。
1.7 この規格での記述法
この規格では,“しなければならない” は要求事項と解釈し,“してはならない” は禁止事項と解釈する。特に断り
がない限り,この要求事項 及び 禁止事項は処理系にではなくプログラムに適用される。
1.7.1 補足要素
説明,根拠,例などのための補足要素がこの規格に混在している。これらの補足要素は,注記 又は 例として番号
付けされた四角い枠の中に明記されており,規定事項ではない。
1.7.2 構文規則
構文規則 (syntax rule) は,Fortran の構文素,文 及び 構造構文の形を規定する。構文規則は,次の約束 及び 記
号による超言語を用いて記述する。
注記 この超言語は,Backus-Naur 記法 (BNF) を変形したものである。
(1) ortran 文字集合 (3.1) 中の文字は,特に断りがない限り,示されているとおりに解釈される。
(2) 英大文字,英小文字,日本語の文字 及び それらからなる語は,一般的な構文概念を示し,実際の文中ではそれ
が表す特定の構文要素で置き換えなければならない。構文概念の例を次に示す。
引数 属性
宣言 定義
記述子 式
整数 演算子
指定子 文
(3) 構文超記号の用法は,次による。
is は,構文概念の定義を示す。
or は,構文概念の代替を示す。
角括弧 [ ] は,省略可能な要素を示す。
角括弧に続く省略記号 [ ] ... は,角括弧中の要素が 0 回以上引き続いて現れてもよいことを示す。
黒四角 は,構文規則が続くことを示す。
(4) 各構文規則は,Rsnn の形をした一意の識別番号をもつ。ここで,s は 1 けた 又は 2 けたの数字からなる箇条番
号とし,nn は箇条内の 2 けたの順序番号とする。構文規則は,本文の中では分散して配置されており,必要に
応じて識別番号によって参照される。箇条 2 及び 3 の幾つかの規則は,完全な規定が後続の箇条にある。その

――――― [JIS X 3001-1 pdf 18] ―――――

                                                                                                     5
X 3001-1 : 2009 (ISO/IEC 1539-1 : 2004)
場合には,箇条番号 s は,規則が繰り返されている後続の箇条のものにしてある。
(5) 構文規則は,Fortran の完全かつ正確な構文記述ではないので,構文解析系を自動生成するために使用すること
はできない。構文規則が不完全な箇所では,それらの規則は関連した制約 及び 本文によって制限される。
例 1.2 構文規則の記述の例を次に示す。
数字列 is 数字 [ 数字 ] ...
この規則で許される数字列の形の例を次に示す。
数字
数字 数字
数字 数字 数字 数字
数字 数字 数字 数字 数字 数字 数字 数字
“数字” が特定の要素に置き換わったときの実際の数字列は,次のようになる。
4
67
1999
10243852
1.7.3 制約
各制約は,Csnn の形をした一意の識別番号をもつ。ここで,s は 1 けた 又は 2 けたの数字からなる箇条番号とし,
nn は箇条内の 2 けたの順序番号とする。
制約は通常,特定の構文規則と関連している。関連している場合,関連する構文規則の番号を括弧内に示す。構文
規則と関連している制約は,その規則によって定義された構文要素の定義の一部を構成する。これは,その構文要素
が現れるすべての場合に適用される。
幾つかの制約は,特定の構文規則と関連していない。そのような制約の効果は,処理系が制約の違反を検出し報告
する機能が要求されること (1.5) を除いて,本文で指定された制限の効果と同等とする。広義の要求事項は本文中で
規定し,その要求事項の一部は制約としても規定することがある。その場合,規格合致プログラムは,広義の要求事
項を満たしていなければならないが,規格合致している処理系は制約の違反を診断する機能をもつだけでよい。
1.7.4 暗黙の構文規則
構文規則 及び 制約の個数を最小に抑えるために,すべての構文概念 “XYZ ” に対して明示的な構文規則がない限
り,次の暗黙の規則を想定する。
R101 XYZ 並び is XYZ [ , XYZ ] ...
R102 XYZ 名 is 名前
R103 スカラXYZ is XYZ
C101 (R103) スカラ XYZ は,スカラでなければならない。
1.7.5 構文の約束 及び 特色
(1) “文” で終わる任意の構文要素名は,プログラム形式の文の規則に従う。つまり,行の終了 又は セミコロンで区
切らなければならない。(IF 文 又は WHERE 文のような)他の文の一部を形成する場合を除いて,文番号を付
けてもよい。逆に,プログラム形式の文とみなされるすべてのものは,構文規則において,終わりが “文” となっ
ている。
(2) 文の順序に対する規則は,プログラム単位 (R202) の定義中で厳密に規定する。式の階層は,式 (R722) の定義中
で厳密に規定する。

――――― [JIS X 3001-1 pdf 19] ―――――

  6
X 3001-1 : 2009 (ISO/IEC 1539-1 : 2004)
(3) 接尾辞 “指定” は,通常,入出力文などの指定子として使う。更に,型宣言の属性(例えば,R510 の “配列形状
指定”)としても使い,その他にも使うことがある。
(4) 括弧でくくられていて型パラメタを指すときは,接尾辞 “選択子” を使う。例として,“文字長パラメタ選択
子”(R425) 及び “種別型パラメタ選択子”(R404) がある。
(5) 用語 “添字”(例えば,R618, R619 及び R620)は,一貫して配列定義中で使う。
1.7.6 文章記述の約束
通常の本文においては,構文規則の用語と必ずしも同一ではない通常の単語を使うことがある。個々の文,個々の
属性,個々の指定子などは,例えば “END 文” のように英大文字で示す。用語が特定の意味で最初に定義される箇所
では,下線を引き,英語を添えて示す。廃止予定事項は,文字を小さくして示す。
例 1.3 これが廃止予定事項で使われる文字の大きさである。
1.8 廃止事項 及び 廃止予定事項
この規格は,五つの廃止事項を除き Fortran 90 の処理系依存ではない言語要素をすべて含むことによって,利用
者の財産である既存のソフトウェアを保護する。この規格は,時代遅れの事項を二つの区分で表現する。第 1 の区分
は,廃止事項 (deleted feature) といい,FORTRAN 77 において冗長だとみなされており,Fortran 90 においてはほと
んど使われていない事項であり,この規格には五つある。第 2 の区分は,廃止予定事項 (obsolescent feature) といい,
Fortran 90 及び Fortran 95 において冗長だとみなされているが,まだ頻繁に使われているものである。
1.8.1 廃止事項の性質
(1) ORTRAN 77 により良い方法が存在した。
(2) この区分に属する事項は,Fortran 95 及び Fortran 2003 に含まれていない。
1.8.2 廃止予定事項の性質
(1) ortran 90 及び Fortran 95 により良い方法が存在した。
(2) プログラマは,新しいプログラム中ではより良い方法を使用し,既存のコードではそれらの方法で元のコードを
置き換えるのがよい。
(3) 廃止予定事項は,この規格の本文中で,小さい文字によって表現する(1.7.6 参照)。
(4) ortran プログラムにおけるこれらの事項の使用が重要でなくなったら,Fortran の改正原案作成委員会が次の
改正時にその事項の廃止を検討するのが望ましい。
(5) 次の Fortran の改正原案作成委員会は,廃止予定事項に指定されている言語事項だけの廃止を検討するのが望ま
しい。
(6) ortran の処理系は,廃止予定事項が Fortran プログラムで広く使われている間は,それを実装するのが望ましい。
1.9 引用規格
次に掲げる規格は,この規格に引用されることによって,この規格の規定の一部を構成する。これらの引用規格は,
記載の年の版を適用し,その後の改正版(追補を含む。)は適用しない。
JIS X 0201-1997 情報交換用符号
注記 対応国際規格 : ISO/IEC 646 : 1991, Information technology ISO 7-bit coded character set for
information interchange (MOD)
JIS X 0301-1992 日付及び時刻の表記
注記 対応国際規格 : ISO Data elements and interchange formats Information interchange
8601 : 1988,
Representation of dates and times (MOD)
JIS X 3010 : 2003 プログラム言語 C
注記 対応国際規格 : ISO/IEC 9899 : 1999, Programming Languages C (IDT)

――――― [JIS X 3001-1 pdf 20] ―――――

次のページ PDF 21

JIS X 3001-1:2009の引用国際規格 ISO 一覧

  • ISO/IEC 1539-1:2004(IDT)

JIS X 3001-1:2009の国際規格 ICS 分類一覧

JIS X 3001-1:2009の関連規格と引用規格一覧

規格番号
規格名称