JIS X 3008:1994 プログラム言語Pascal | ページ 8

32
X 3008-1994 (ISO/IEC 7185: 1990)
及び6.4.2.3参照)とする。
chr (x)
式xの型は,整数型でなければならない。結果の型は,文字型とする。結果は,式xの値に等しい順序
数をもつ文字型の値とする。この文字値が存在しなければ,誤りとする。文字型の任意の値chに対して,
chr (ord(ch) )=ch
が成立する。
succ (x)
式xの型は,順序型でなければならない。結果の型は,式xの型(6.7.1参照)と同じとする。結果は,
式xの順序数より1だけ大きい順序数をもつ値とする。この値が存在しなければ,誤りとする。
pred (x)
式xの型は,順序型でなければならない。結果の型は,式xの型(6.7.1参照)と同じとする。結果は,
式xの順序数より1だけ小さい順序数をもつ値とする。この値が存在しなければ,誤りとする。

6.6.6.5 論理関数

odd (x)
式xの型は,整数型でなければならない。odd (x) は,式
(abs (x) od 2= 1)
と等価とする。
eof (f)
引数fは,ファイル変数でなければならない。実引数並びを省略した場合,この関数は,標準のテキス
..
トファイルinput(6.10参照)に適用する。この場合,プログラムは,つづりinputの識別子を含むプログ
..
ラム引数並びを含まなければならない。結果は,f. Rが空列(6.4.3.5参照)であれば値true,空列でなけ
れば値falseとする。eof (f) が駆動されたとき,fが不定であれば,誤りとする。
eoln (f)
引数fは,テキストファイルでなければならない。実引数並びを省略した場合,この関数は,標準のテ
..
キストファイルinput(6.10参照)に適用する。この場合,プログラムは,つづりinputの識別子を含むプ
..
ログラム引数並びを含まなければならない。結果は,f. R. firstが行末成分(6.4.3.5参照)であれば値true,
そうでなければ値falseとする。eoln (f) が駆動されたとき,fが不定であるか,又はeof (f) がtrueであれ
ば,誤りとする。

6.7 式

6.7.1 一般規則

 式は,値を表す。因子として使用された変数アクセスは,それによってアクセスされる
.
変数に与えられている値(もしあれば)を表す。因子の使用時にその因子の変数アクセスの表す変数が不
定であれば,誤りとする。演算子の優先順位は,4段階とし,演算子notを最高の優先順位,次に乗除演
算子,次に加減演算子及び符号,そして関係演算子を最低の優先順位とする。同じ優先順位の演算子が二
つ以上並ぶ場合は,左優先で結合する。
式 = 単純式 [ 関係演算子 単純式 ] .
単純式 = [ 符号 ] 項 [{ 加減演算子 項}] .
項 = 因子 [{ 乗除演算子 因子}] .
因子 > 変数アクセス | 符号なし定数 | 関数呼出し
| 集合構成子 | ( 式 ) | not 因子 .
符号なし定数 = 符号なし数 | 文字列 | 定数名 | nil .

――――― [JIS X 3008 pdf 36] ―――――

                                                                                             33
X 3008-1994 (ISO/IEC 7185: 1990)
集合構成子 = [ [ 元表記 [{ , 元表記}] ] ] .
元表記 = 式 [ .. 式 ] .
参考1. 因子の構文規則は,6.6.3.7.1にもある。
S型の因子は,SがTの部分範囲である場合,T型として扱う。同様に,set of S型の因子は,詰めなし
正規T集合型として扱い,packed set of S型の因子は,詰めあり正規T集合型として扱う。
集合構成子は,集合型の値を表す。集合構成子[ ]は,任意の集合型の,元を一つも含まない値を表す。
..
き記を含む
元ひょう
一つ以上のげん
表 集合構成子は,詰めなし正規T集合型の値又は詰めあり正規T集合型の値を表
す。いずれの型となるかは,文脈による。ここで,Tは集合構成子の.元表記の.式の型とする。一つの集合
. .
構成子の各元表記の各式の型は,すべて同じでなければならない。この型は,順序型でなければならない。
.
集合構成子は,集合構成子の一つ以上の元表記の表す元から成る集合(空集合でありうる。)を表す。
xを式とするとき,元表記xは,値xをもつ元を表す。x及びyを式とするとき,元表記x. . . yは,xの
..
値からyの値までの閉区間内にある基底型の値をもつすべての元(0個でありうる。)を表す。元表記の中
. ...
の式の評価順序は,処理系依存とする。集合構成子の中の元表記の評価順序は,処理系依存とする。
参考2. xの値がyの値より大きいとき,元表記x. . . yは,一つの元も表さない。
3. 集合構成子[ ]は,特定の型をもたない。可能な場合には,代入可能性,又は演算子のオペラ
ンドの型に関する規則によって適当な型を定める。
例a) 因子
x
15
sin (x + y)
[red, c, green]
[1, 5, 10. . 19, 23]
(x+y+z)
not p
(b) 項
x*y
i/ (1 - i)
(x <= y) nd (y < z)
(c) 単純式
p or q
x+y
-x
hue1 + hue2
i*j+1
(d) 式
x = 1.5
p <= q
p = q and r
(i < j) = (j < k)
c in hue1

――――― [JIS X 3008 pdf 37] ―――――

34
X 3008-1994 (ISO/IEC 7185: 1990)

6.7.2 演算子

6.7.2.1 一般規則

        乗除演算子 = * | / | div | mod | and .
加減演算子 = + | - | or .
関係演算子 = = | <> | < | > |<= | >= |
in .
因子,項及び単純式を,オペランドという。二項演算子のオペランドの評価順序は,処理系依存とする。
参考 したがって,オペランドは,文面どおりの順に評価されるかもしれないし,逆順に評価される
かもしれない。場合によっては,両方のオペランドが並列に評価されるかもしれないし,片方
だけしか評価されないかもしれない。

6.7.2.2 算術演算子

 二項算術演算及び単項算術演算のオペランドの型及び結果の型は,それぞれ表3及
び表4のとおりとする。
表3 二項算術演算
演算子 演算 オペランドの型 結果の型
+ 加算 整数型又は実数型 両方のオペランドの型が
- 減算 整数型又は実数型整数型であれば整数型,
* 乗算 整数型又は実数型そうでなければ実数型
/ 除算 整数型又は実数型実数型
div 整数型
切捨てを伴う除算 整数型
mod 剰余 整数型 整数型
表4 単項算術演算
演算子 演算 オペランドの型 結果の型
+ 恒等 整数型又は実数型 整数型又は実数型
- 符号反転 整数型又は実数型 整数型又は実数型
参考1. 特殊記号+, −及び*は,集合演算子(6.7.2.4参照)としても使う。
x/yの形をした項の値は,xをyで割った結果とする。yが0であれば,誤りとする。
i div jの形をした項の値は,次の条件を満たす。
abs (i)−abs (j) < abs ((i div j) * j) ≦ abs (i)
このとき,abs (i) < abs (j) であれば,値は0とする。そうでなければ,値は,iとjの符号が同じであれ
ば正,違っていれば負とする。jが0であれば,誤りとする。
i mod jの形をした項の値は,次の条件を満たす。
i mod j = i−(k*j) かつ 0≦i mod j < j,ただしkは整数
jが0又は負であれば,誤りとする。
参考2. i≧0かつj>0の場合に限り,関係 (i div j) *j + i mod j=iが成立する。
標準の定数名maxintは,整数型の処理系定義の値を表す。この値は,次の(a)(d)の条件を満たす。
(a) 閉区間 [−maxint, +maxint] 内の整数値は,すべて整数型の値である。
(b) この区間内の整数値に対する単項算術演算は,整数計算に関する数学的規則に従って正しく行われる。
(c) この区間内の二つの整数値に対する二項算術演算は,その結果もこの区間内にあるならば,整数計算
に関する数学的規則に従って正しく行われる。
(d) この区間内の二つの整数値に対する関係演算は,整数計算に関する数学的規則に従って正しく行われ
る。

――――― [JIS X 3008 pdf 38] ―――――

                                                                                             35
X 3008-1994 (ISO/IEC 7185: 1990)
整数から実数への変換並びに実数に対する算術演算子及び標準関数の結果は,対応する数学的結果の近
似とする。この近似の精度は,処理系定義とする。
整数に対する演算又は関数が,整数計算に関する数学的規則に従うことができなければ,誤りとする。

6.7.2.3 論理演算子

 論理演算のオペランドの型は,論理型でなければならない。結果の型は,論理型と
する。論理演算子or, and及びnotは,それぞれ論理和,論理積及び否定の各演算を表す。
論理式 = 式 .
論理式は,論理型の値を表す式でなければならない。

6.7.2.4 集合演算子

 集合演算のオペランドの型及び結果の型は,表5のとおりとする。
表5 集合演算
演算子 演算 オペランドの型 結果の型
+ 和集合 同じ詰めなし正規T集合型
- 差集合 又は詰めあり正規T集合 オペランドの型と同じ
* 積集合 型(6.7.1参照)
xを順序型Tの値,u及びvを正規T集合型のオペランドとする。任意のxに対して次の条件が成立す
る。
・ xがuの元であるか又はvの元である場合,かつその場合に限りxはu+vの元である。
・ xがuの元であり,vの元ではない場合,かつその場合に限りxはu−vの元である。
・ xがuの元であり,vの元でもある場合,かつその場合に限りxはu*vの元である。

6.7.2.5 関係演算子

 関係演算のオペランドの型及び結果の型は,表6のとおりとする。
表6 関係演算
演算子 オペランドの型 結果の型
= <> 任意の単純型,ポインタ型,文字列型, 論理型
詰めなし正規T集合型又は詰めあり正規T集合型
<> 任意の単純型又は文字列型 論理型
論理型
<= >= 任意の単純型,文字列型,詰めなし正規T集合型
又は詰めあり正規T集合型
in 左オペランド : 任意の順序型T
右オペランド : 詰めなし正規T集合型又は 論理型
詰めあり正規T集合型
=, <>, <, >, >=及び<=の二つのオペランドの型は,適合するか,同じ詰めなし正規T集合型若しくは詰め
あり正規T集合型であるか,又は一方が実数型で他方が整数型であるか,のいずれかでなければならない。
演算子=, <>, <及び>は,それぞれ“等しい”,“等しくない”,“より小さい”及び“より大きい”を意味
する。
集合に対して使う場合を除けば,演算子<=及び>=は,それぞれ“より小さいか又は等しい”及び“より
大きいか又は等しい”を意味する。u及びvを集合型のオペランドとするとき,u<=vは“uがvの部分集
合である”を,u>=vは“vがuの部分集合である”を意味する。
参考 論理型は順序型であり,falseはtrueより小さい。したがって,p及びqを論理型のオペランド
とするとき,p=qは同値を,p<=qは“pならばq”を意味する。
適合する文字列型(6.4.3.2参照)のオペランドを比較するのに使う場合,関係演算子=, <>, <, >, <=及び
>=は,次に定める辞書式順序による比較を表す。この辞書式順序は,文字列型の値に対する全順序関係を
定める。
s1とs2を適合する文字列型の値とし,nをその文字列型の成分の個数とする。このとき,次の条件が成

――――― [JIS X 3008 pdf 39] ―――――

36
X 3008-1994 (ISO/IEC 7185: 1990)
立する。
・ [1..n] 内のすべてのiに対してs1 [i] =s2 [i] のとき,かつそのときに限りs1=s2
・ [1..n] 内のあるpについて,s1 [p] <s2 [p] ,しかも [1..p-1] 内のすべてのiに対してs1 [i] =s2 [i] の
とき,かつそのときに限りs1<s2
演算子>, <>, <=及び>=の定義は,=及び<の定義から導く。
演算子inは,順序型のオペランドの値が集合型の値の元であれば,値trueを生じる。そうでなければ,
値falseを生じる。
. .

6.7.3 関数呼出し

 関数呼出しは,関数呼出しの関数名に結合した関数ブロックのブロックの駆動を指定
する。そして,その駆動のアルゴリズムの完了時の,駆動結果の値を生じる。アルゴリズムの完了時に結
果が不定であれば,誤りとする。
参考 関数の駆動がgoto文(6.8.2.4参照)によって終了する場合,駆動のアルゴリズムが完了したこ
とにはならない (6.2.3.2(a)参照)。したがって,駆動の結果が不定でも誤りとはならない。
.. ...
関数が仮引数をもつならば,関数呼出しは,実引数並びを含まなければならない。実引数並びの中の各
実引数は,関数宣言で定義された対応する仮引数に渡される。その対応は,実引数の並び及び仮引数の並
びの中の引数の位置による。実引数の個数は,仮引数の個数と同じでなければならない。実引数の型は,
6.6.3に規定するとおり,仮引数の型と対応しなければならない。実引数の評価,アクセス及び引数渡しの
順序は,処理系依存とする。
関数呼出し = 関数名 [ 実引数並び ] .
実引数並び = ( 実引数 [{ , 実引数}] ) .
実引数 = 式 | 変数アクセス | 手続き名 | 関数名 .
例 sum (a, 63)
GCD (147, k)
sin (x + y)
eof (f)
ord (f↑)

6.8 文

6.8.1 一般規則

 文は,アルゴリズム上の動作を表す。文は,実行可能とする。
文 = [ ラベル :] ( 単純文 | 構造文 ) .
参考1. 文は,ラベルで修飾することができる。
文Sの.ラベル(もしあれば)は,Sを修飾するという。このラベルは,次の(a)(c)の条件のうちのいず
れかが成立している場合でなければ,goto文G(6.8.2.4参照)に含まれてはならない。
..
(a) がGを含む。
.. .
(b) がGを含む文並びの文である。
.. . . . .
(c) がGを含むブロックの,実行部の複合文の文並びの文である。
参考2. ブロック内のgoto文が,それを囲むブロックのラベルを参照することができるのは,ラベル
が外側のブロックの一番外側の文を修飾しているときに限る。

6.8.2 単純文

                                      ..                    ..

6.8.2.1 一般規則

 単純文は,他の文を含まない。空文は,字句を含まず,“何もしない”という動作を
表す。
単純文 = 空文 | 代入文 | 手続き呼出し文 | goto文 .

――――― [JIS X 3008 pdf 40] ―――――

次のページ PDF 41

JIS X 3008:1994の引用国際規格 ISO 一覧

  • ISO/IEC 7185:1990(IDT)

JIS X 3008:1994の国際規格 ICS 分類一覧