この規格ページの目次
27
X 3001-1 : 2009 (ISO/IEC 1539-1 : 2004)
それぞれの型は,有効な値の集合をもつ。有効な値の集合は,論理型のように完全に定義されるか 又は 整数型,文
字型 及び 実数型のように処理系依存の方法で定義される。複素数型のもつ有効な値の集合は,それぞれの成分の値
のすべての組合せの集合とする。派生型のもつ有効な値の集合は,4.5.7 で定める。
4.1.2 定数
それぞれの組込み型の定数表現の構文は,4.4 で規定する。
値を記述する構文は,その型,型パラメタ 及び 特定の値を示す。
定数値には,名前を付けることができる(5.1.2.10 及び 5.2.9 参照)。
派生型の定数値(4.5.9 参照)は,構造体構成子を用いて初期値式 (7.1.7) の適切な列から構成してもよい。この
ような定数値は,配列の成分をもっていてもスカラとみなす。
4.1.3 演算
それぞれの組込み型は,組込みとして定義されている演算 及び その演算に対応する演算子の集合をもつ。これらに
ついては,箇条 7 に定める。組込み演算 及び 組込み演算子の集合は,OPERATOR 引用仕様 (12.3.2.1) をもつ関数
によって定義される演算 及び 演算子を用いて拡張することができる。演算子の定義は,箇条 7 及び 12 で規定する。
派生型には,組込み演算は存在しない。派生型の演算は,プログラムで定義してもよい(4.5.10 参照)。
4.2 型パラメタ
型には,パラメタが指定できる。この場合,その型の値の集合,値を記述する構文 及び 値の演算の集合は,その
パラメタの値に依存する。
すべての組込み型には,パラメタが指定できる。派生型は,パラメタが指定できるように定義できる。
型パラメタは,種別型パラメタ 又は 長さ型パラメタのいずれかとする。
種別型パラメタは,派生型定義 (4.5.1) 内のその型に対する初期値式 及び 宣言式で使用できる。それは,総称の
解決 (16.2.3) に影響する。それぞれの組込み型は,KIND という名前の種別型パラメタをもつ。これによって,複数
の組込み型の表現を区別することができる。
注記 4.2 種別型パラメタの値は,翻訳時に分かる設計になっている。複数の表現形式を含んだパラメタ化
の幾つかは,実際の実装方法 及び 性能のために,翻訳時に区別できる必要がある。その例として,複
数の精度をもった組込み実数型 及び 実装可能な複数の文字集合をもった組込み文字型がある。
派生型の型パラメタは,種別型パラメタとして指定して,パラメタに基づいた総称の解決に用いて
もよい。つまり,仮引数の種別型パラメタ値によってだけ区別できる引用仕様をもつ二つの個別手続
への単一総称を許すことになる。総称は,翻訳時に解決されるように設計されている。
長さ型パラメタは,その型に対する派生型定義の中の宣言式で使用できるが,初期値式では使用してはならない。
組込み文字型は,文字列の長さを示す LEN という名前の長さ型パラメタをもつ。
注記 4.3 組込み文字型に関しては,長さを指定することが多いので,種別型パラメタ以外の型パラメタに
“長さ” という単語を使う。しかし,長さ型パラメタを他の用途に使ってもよい。種別型パラメタとの
大きな違いは,長さ型パラメタの値は翻訳時に定まっている必要はなく,プログラム実行時に変わっ
てもよいということである。
型パラメタの値は,型定義 (4.4, 4.5.8) で指定できる。
R402 型パラメタ値 is スカラ整数式
or *
or :
――――― [JIS X 3001-1 pdf 41] ―――――
28
X 3001-1 : 2009 (ISO/IEC 1539-1 : 2004)
C402 (R402) 種別型パラメタに対する型パラメタ値は,初期値式でなければならない。
C403 (R402) 型パラメタ値としての “:” は,POINTER 属性 又は ALLOCATABLE 属性をもつ要素 又は 成
分の宣言内でだけ使用できる。
無指定型パラメタは,プログラムの実行中にその値を変えることができる長さ型パラメタとする。型パラメタ値とし
ての “:” は,無指定型パラメタを指定する。
実体の無指定型パラメタの値は,ALLOCATE 文 (6.3.1) の実行,組込み代入文 (7.4.1.3) の実行,ポインタ代入
文 (7.4.2) の実行 又は 引数結合 (12.4.1.2) によって決定される。
注記 4.4 手続ポインタの場合も含め,関数の無指定型パラメタは,値をもたない。関数が割り付けられた
割付け関数結果 又は 結合ポインタの結果を返す場合,その関数の実行結果によって決定される。
引継ぎ型パラメタは,対応する実引数から型パラメタの値を引き継ぐ仮引数に対する長さ型パラメタとする。同様
に,対応する選択子から型パラメタの値を引き継ぐ SELECT TYPE 構成子内の結合名にも使われる。型パラメタ値
としての “*” は,引継ぎ型パラメタを指定する。
4.3 型 及び 値と実体との関連
型の名前は,型指定子として使われ,その型の実体を宣言するのに用いる。宣言では,名前付き実体の型を指定す
る。データ実体 は,明示的 又は 暗黙的に宣言できる。データ実体は,型のほかにも属性をもつことができる。箇条
5 では,データ実体を宣言する方法 並びに データ実体の型 及び その他の属性を指定する方法を定める。
任意の組込み型 又は 派生型のスカラデータは,四角い形に配置して,そのスカラデータと同じ型 及び 同じ型パ
ラメタをもつ配列を構成することができる。配列実体は,スカラ実体と同じ型 及び 同じ型パラメタをもつことがで
きる。
変数は,データ実体とする。変数の型 及び 型パラメタは,変数の取りうる値を定める。代入は,任意の型の変数の
値を確定 又は 再確定する。変数と変数に代入する値との,型,型パラメタ 及び 形状が同じ場合の代入は,すべての
型に対して組込み代入として定義されている。異なる組込み型,型パラメタ 又は 形状をもつ実体の間の代入は,箇
条 7 に定める。サブルーチン 及び 総称指定子が ASSIGNMENT(=) である総称引用仕様 (4.5.4, 12.3.2.1) は,組込み
として定義されていない代入を定義するか,又は 派生型組込み代入 (7.4.1.4) を再定義する。
注記 4.5 例えば,整変数への実数値の代入は,組込みとして定義されている。
変数の型は,その変数を操作できる演算を決定する。
4.4 組込み型
組込み型は,次のとおりとする。
数値型 : 整数型,実数型 及び 複素数型
非数値型 : 文字型 及び 論理型
数値型 (numeric type) は,数値計算に用いることができる。数値型に対して,通常の算術演算である加算(+),減
算(-),乗算(*),除算(/),べき乗(**),同値(単項 +)及び 符号反転(単項 -)が,組込みとして定義され
ている。
R403 組込み型指定子 is INTEGER [ 種別型パラメタ選択子 ]
or REAL [ 種別型パラメタ選択子 ]
or DOUBLE PRECISION
or COMPLEX [ 種別型パラメタ選択子 ]
or CHARACTER [ 文字選択子 ]
――――― [JIS X 3001-1 pdf 42] ―――――
29
X 3001-1 : 2009 (ISO/IEC 1539-1 : 2004)
or LOGICAL [ 種別型パラメタ選択子 ]
R404 種別型パラメタ選択子 is ( [ KIND= ] スカラ整数初期値式 )
C404 (R404) スカラ整数初期値式の値は,負であってはならず,処理系に存在する表現方法を指定しなければ
ならない。
4.4.1 整数型
整数型 (integer type) のもつ値の集合は,数学的な整数の部分集合とする。処理系は,整数型データの値の集合を定
義する一つ以上の 表現方法 (representation method) を提供しなければならない。このような表現方法は,種別 (kind)
型パラメタと呼ばれる型パラメタの値によって特徴付けられる。種別型パラメタは,基本整数型とする。表現方法の
種別型パラメタは,問合せ組込み関数 KIND(13.7.59 参照)によって求めることができる。表現方法の 10 進指数範
囲は,組込み関数 RANGE(13.7.96 参照)で求めることができる。組込み関数 SELECTED INT KIND(13.7.105 参照)
は,指定された 10 進指数範囲に基づく種別値を返す。整数型は値ゼロをもつ。値ゼロは,正でも負でもない。符号
の付いたゼロの値は,符号のないゼロの値と同じとする。
整数型の型指定子は,キーワード INTEGER とする。
種別型パラメタの指定がない場合,暗黙の種別値は,KIND(0) とする。そのデータ要素の型は,基本整数型 (default
integer) とする。
整数値は,任意符号付き整定数表現で表現する。
R405 任意符号付き整定数表現 is [ 符号 ] 整定数表現
R406 整定数表現 is 数字列 [ 種別 ]
R407 種別 is 数字列
or スカラ整定数名
R408 任意符号付き数字列 is [ 符号 ] 数字列
R409 数字列 is 数字 [ 数字 ] ...
R410 符号 is +
or -
C405 (R407) スカラ整定数名は,整数型の名前付き定数でなければならない。
C406 (R407) 種別の値は,負であってはならない。
C407 (R407) 種別の値は,処理系に存在する表現方法を指定しなければならない。
整定数表現の数字列に続く省略可能の種別は,その整定数の種別型パラメタを指定する。種別を省略したとき,そ
の定数は,基本整数型とする。
整定数は,10 進数として解釈する。
例 4.6 任意符号付き整定数表現の例を示す。
473
+56
-101
21_2
21_SHORT
1976354279568241_8
ここで,SHORT はスカラ整定数名とする。
――――― [JIS X 3001-1 pdf 43] ―――――
30
X 3001-1 : 2009 (ISO/IEC 1539-1 : 2004)
R411 非 10 進定数表現 is 2 進定数表現
or 8 進定数表現
or 16 進定数表現
R412 2 進定数表現 is B’数字 [ 数字 ] ...’
or B"数字 [ 数字 ] ..."
C408 (R412) 数字は,0 又は 1 のいずれかでなければならない。
R413 8 進定数表現 is O’数字 [ 数字 ] ...’
or O"数字 [ 数字 ] ..."
C409 (R413) 数字は,07 のいずれかでなければならない。
R414 16 進定数表現 is Z’16 進数字 [ 16 進数字 ] ...’
or Z"16 進数字 [ 16 進数字 ] ..."
R415 16 進数字 is 数字
or A
or B
or C
or D
or E
or F
2 進定数表現,8 進定数表現 及び 16 進定数表現は,それぞれの記数法に従って解釈する。16 進数字 A F は,そ
れぞれ 1015 を表し,英小文字で表してもよい。
C410 (R411) 非 10 進定数表現は,DATA 文の初期値定数として,数値組込み関数 DBLE,REAL 若しくは INT
の仮引数 A に結合する実引数として,又は 組込み関数 CMPLX の仮引数 X 若しくは Y と結合する実引数と
してだけ書くことができる。
4.4.2 実数型
実数型 (real type) は,数学的な実数値の近似値の集合をもつ。処理系は,実数型データの値の集合を定義する二つ以
上の 近似方法 (approximation method) を提供しなければならない。それぞれの近似方法は 表現方法 (representation
method) をもち,種別 (kind) 型パラメタと呼ばれる型パラメタの値によって特徴付けられる。種別型パラメタは,基本
整数型とする。近似方法の種別型パラメタは,問合せ組込み関数 KIND (13.7.59) によって知ることができる。近似方
法の 10 進精度 及び 10 進指数範囲は,それぞれ組込み関数 PRECISION (13.7.90) 及び 組込み関数 RANGE (13.7.96)
で求めることができる。組込み関数 SELECTED REAL KIND (13.7.106) は,指定された 10 進精度 及び 10 進指数範囲
に基づく種別値を返す。
注記 4.7 近似方法の選択については,C.1.2 を参照。
実数型は値ゼロをもつ。正の値ゼロと負の値ゼロとを区別する処理系も,次の場合にはそれらを数学的に同値とし
て扱わなければならない。
(1) 関係演算式の中
(2) 負の値ゼロを区別して指定する手続を除く組込み手続への実引数
(3) 算術 IF 文中のスカラ数値式
――――― [JIS X 3001-1 pdf 44] ―――――
31
X 3001-1 : 2009 (ISO/IEC 1539-1 : 2004)
注記 4.8 0.0 と −0.0 とを区別する処理系においては,次のとおりに評価する。
( X >= 0.0 )
は,X = 0.0 及び X = −0.0 のどちらに対しても .TRUE. とし,
( X < 0.0 )
は,X = −0.0 に対して .FALSE. である。
IF (X) 1,2,3
は,X = 0.0 と X = −0.0 のどちらの場合にも文番号 “2” をもつ飛び先文に制御を移す。
0.0 と −0.0 を区別するためには,関数 SIGN を使うのがよい。SIGN(1.0,X) が −1.0 を返すのは,
X < 0.0 のとき 及び 0.0 と −0.0 とを区別する処理系において X が値 −0.0 をもつときである。
PRECISION は,実数型の一つの種別に対する
実数型の型指定子は,キーワード REAL とする。キーワード DOUBLE
代替の型指定子とする。
型キーワード REAL が指定され,種別型パラメタの指定がない場合,暗黙の種別値は,KIND(0.0) とする。その指
PRECISION を指定する場合,暗黙の種別値
定された型は,基本実数型 (default real) とする。型キーワード DOUBLE
は,KIND(0.0D0) とする。その指定された型は,倍精度実数型 (double precision real) とする。倍精度実数型の近似
方法の 10 進精度は,基本実数型の近似方法より精度が高くなければならない。
R416 任意符号付き実定数表現 is [ 符号 ] 実定数表現
R417 実定数表現 is 有効数字部 [ 指数部英字指数部 ] [種別 ]
or 数字列 指数部英字 指数部 [ 種別 ]
R418 有効数字部 is 数字列 . [ 数字列 ]
or . 数字列
R419 指数部英字 is E
or D
R420 指数部 is 任意符号付き数字列
C411 (R417) 種別 及び 指数部英字の両方の指定がある場合,指数部英字は E でなければならない。
C412 (R417) 種別の値は,処理系に存在する近似方法を指定しなければならない。
種別指定のない実定数表現は,指数部の指定がないか 又は 指数部英字が E の場合,基本実定数とする。指数部英
字が D の場合,倍精度実定数とする。種別型パラメタを指定して書いた実定数表現は,指定した種別型パラメタの実
定数とする。
指数部は,有効数字部 又は 数字列に乗じる 10 のべき乗を指定する。これらの定数の意味は,科学的 10 進表記法
による。
有効数字部に,実定数の値を近似するために処理系が使用する個数より多くの数字を書いてもよい。
――――― [JIS X 3001-1 pdf 45] ―――――
次のページ PDF 46
JIS X 3001-1:2009の引用国際規格 ISO 一覧
- ISO/IEC 1539-1:2004(IDT)
JIS X 3001-1:2009の国際規格 ICS 分類一覧
- 35 : 情報技術.事務機械 > 35.060 : 情報技術に使用される言語
JIS X 3001-1:2009の関連規格と引用規格一覧
- 規格番号
- 規格名称