この規格ページの目次
47
X 3008-1994 (ISO/IEC 7185: 1990)
1≦TotalWidth≦nのときは,
最初の文字からTotalWidth番目の文字まで順に並べたもの。
6.9.4 手続きwriteln
writelnの引数並びの構文規則は,次のとおりとする。
writeln引数並び = [ ( ( ファイル変数 | write引数 )
[{ , write引数 }] ) ] .
手続きwritelnは,テキストファイルにだけ適用できる。ファイル変数を省略した場合,又はwriteln引
数並び全体を省略した場合,この手続きは,標準のテキストファイルoutputに適用する。この場合,プロ
.. ..
グラムは,つづりoutputの識別子を含むプログラム引数並びを含まなければならない。
writeln (f, p1, . . . , pn) は,テキストファイルをアクセスし,その文のそれ以降の実行中,そのテキストフ
ァイルを参照中にする。writeln (f, p1, . . . , pn) の実行は,
begin write (ff, p1, . . . , pn) ; writeln (ff) nd
と等価とする。ここで,ffは参照中のテキストファイルを表す。
writelnの効果は,次の前提表明及び帰結表明(記法は6.6.5.2参照)によって規定する。
前提表明: (f0が不定でない) かつ
(f0. M=Generation) かつ
(f0. R=S ())
帰結表明: (f. L=(f0. LS(end-of-line) )) かつ
(f↑は全面的不定である) かつ
(f. R=S ())かつ
(f. M=Generation),
ここで,S (end-of-line) は,6.4.3.5に規定する行末成分だけから成る列とする。
参考 writeln (f) は,その時点までに生成された部分行(空でありうる。)を終える。6.6.5.2の規定に
よって,前提表明がwriteln (f) の実行直前に成立していなければ,誤りとする。
6.9.5 手続きpage
writeln (f) に対する前提表明(6.9.4参照)がpage (f) の駆動の直前に成立していなけ
れば,誤りとする。実引数並びを省略した場合,この手続きは,標準のテキストファイルoutputに適用す
.. ..
る。この場合,プログラムは,つづりoutputの識別子を含むプログラム引数並びを含まなければならない。
page (f) は,テキストファイルfを改ページ機能をもつ装置上に印字している場合に以後は新しいページに
印字するという処理系定義の効果をもつ。f. Lが空列でなく,しかもf. L. lastが行末成分(6.4.3.5参照)
でない場合,writeln (f) を駆動する。更に,バッファ変数f↑を全面的不定にする。生成の間に手続きpage
を適用したテキストファイルを検査したときの効果は,処理系依存とする。
6.10 プログラム
プログラム = プログラム頭部 ; プログラムブロック . .
プログラム頭部 = program 識別子 [ ( プログラム引数並び ) .
プログラム引数並び = 識別子並び .
プログラムブロック = ブロック .
.
プログラム頭部の識別子をプログラム名という。プログラム名は,プログラムの中で何の意味ももたな
..
い。プログラム引数並びの含む識別子を,プログラム引数という。それらは,互いに異なっていなければ
ならない。各プログラム引数には,プログラムブロックを領域とする,変数名としての定義位置がなけれ
ばならない。プログラム引数が表す変数のプログラム外部の実体への結び付け方は,処理系依存とする。
ただし,変数の型がファイル型である場合,その結び付け方は,処理系定義とする。
――――― [JIS X 3008 pdf 51] ―――――
48
X 3008-1994 (ISO/IEC 7185: 1990)
参考 このような外部実体の外部表現は,この規格の範囲外とする。
6.に規定する変数に対するすべての動作,演算又は関数の実行は,変数がプログラム引数であって,プ
ログラム引数の結び付け方の結果として,定義どおり行えないとき,誤りとする。
...
標準の識別子input又はoutputの,プログラム引数並びの.識別子並びの中の
出現は,その標準の識別子
の,標準の型名textの表す標準の型をもつ変数名としての定義位置となる。この定義位置の領域は,プロ
グラムブロックとする。識別子inputがプログラム引数並びの中に現れると,そのテキストファイル又は
結合したバッファ変数に対する最初のアクセスまでに,resetに対する帰結表明が成立する。同様に,識別
子outputがプログラム引数並びの中に現れると,rewriteに対する帰結表明が成立する。標準手続きreset
又はrewriteを,これらのテキストファイルに適用したときの効果は,処理系定義とする。
例 program copy (f, g) ;
var f, g : file of real;
begin reset (f) ; rewrite (g) ;
while not eof (f) o
begin g↑: = : f↑; get (f) ; put (g)
end
end.
program copytext (input, output) ;
[{ このプログラムは,テキストファイルinputの文字を,行の構造を
保ったままテキストファイルoutputにコピーする。}]
var ch : char;
begin
while not eof do
begin
while not eoln do
begin read (ch) ; write (ch)
end;
readln; writeln
end
end.
program t6p6p3p4 (output) ;
var globalone, globaltwo : integer;
procedure dummy;
begin
writeln (fail4)
end [{ dummy}] ;
procedure p (procedure f(procedure ff; procedure gg) ; procedure g);
――――― [JIS X 3008 pdf 52] ―――――
49
X 3008-1994 (ISO/IEC 7185: 1990)
var localtop : integer;
procedure r;
begin [{ r}]
if globalone = 1 then
begin
if (globaltwo <> 2) r (localtop <> 1) hen
writeln (fail1)
end
else if globalone = 2 then
begin
if (globaltwo <> 2) r (localtop <> 2) hen
writeln (fail2)
else
writeln (pass)
end
else
writeln (fail3) ;
globalone : = globalone + 1
end [{ r}] ;
begin [{ p}]
globaltwo : = globaltwo + 1;
localtop : = globaltwo;
if globaltwo = 1 then
p (f, r)
else
f (g, r)
end [{ p}] ;
procedure q (procedure f; procedure g) ;
begin
f;
g
end [{ q}] ;
begin [{ t6p6p3p4}]
globalone : = 1;
globaltwo : = 0;
p (q, dummy)
end. [{ t6p6p3p4}]
――――― [JIS X 3008 pdf 53] ―――――
50
X 3008-1994 (ISO/IEC 7185: 1990)
附属書A(参考) 構文規則
構造型,単純型,特殊記号,符号付き数,プログラム及びポインタ型の六つの非終端記号は,意味の規
定の中で用いるだけで,構文規則の右辺では用いない。文法全体の開始記号は,非終端記号“プログラム”
とする。
6.6.3.7.1 値整合配列仕様 = 識別子並び : 整合配列形式 .
6.6.3.1 値引数仕様 = 識別子並び : 型名 .
6.1.7 アポストロフィ表記 = .
6.6.3.7.1 因子 > 限界名 .
6.7.1 因子 > 変数アクセス | 符号なし定数 | 関数呼出し
| 集合構成子 | ( 式 ) | not 因子 .
6.1.1 英字 = a | b | c | d | e| f | g | h | i
| j | k | l | m | n | o | p | q |
r
| s | t | u | v | w | x | y | z .
6.4.1 書下し型 = 書下し順序型 | 書下し構造型 | 書下しポインタ型 .
6.4.3.1 書下し構造型 = [ packed ] 詰めなし構造型 .
6.4.2.1 書下し順序型 = 列挙型 | 部分範囲型 .
6.4.4 書下しポインタ型 = ↑ 被指示型 .
6.7.2.1 加減演算子 = + | − | or .
6.4.1 型定義 = 識別子 = 型表記 .
6.2.1 型定義部 = [ type 型定義 : [{ 型定義 ;}] ] .
6.4.1 型表記 = 型名 | 書下し型 .
6.4.1 型名 = 識別子 .
6.4.3.3 可変部 = case 可変要素選択子 of 可変要素 [{ ; 可変要素}] .
6.4.3.3 可変要素 = 選択定数並び : ( フィールド並び ) .
6.4.3.3 可変要素選択子 = [ タグフィールド : ] タグ型 .
6.6.3.1 仮引数区域 > 値引数仕様 | 変数引数仕様 | 手続き引数仕様 | 関数引数仕様 .
6.6.3.7.1. 仮引数区域 > 整合配列引数仕様 .
6.6.3.1 仮引数並び = ( 仮引数区域 [{ ; 仮引数区域}] ) .
6.7.2.1 関係演算子 = = | <> | < | > | <= |>= | in .
6.6.2 関数宣言
= 関数頭部 ; 指令
| 関数標示 ; 関数ブロック
| 関数頭部 ; 関数ブロック .
6.6.2 関数頭部 = function 識別子 [ 仮引数並び ] : 結果型 .
6.6.3.1 関数引数仕様 = 関数頭部 .
6.6.2 関数標示 = function 関数名 .
6.6.2 関数ブロック = ブロック .
6.6.2 関数名 = 識別子 .
――――― [JIS X 3008 pdf 54] ―――――
51
X 3008-1994 (ISO/IEC 7185: 1990)
6.7.3 関数呼出し
= 関数名 [ 実引数並び ] .
6.4.3.4 基底型 = 順序型 .
6.8.2.1 空文 = .
6.8.3.6 繰返し文
= repeat文 | while文 | for文 .
6.6.2 結果型 = 単純型名 | ポインタ型名 .
6.6.3.7.1 限界名 = 識別子 .
6.7.1 元表記 = 式 [ . . 式 ] .
6.7.1 項 = 因子 [{ 乗除演算子 因子}] .
6.4.3.1 構造型 = 書下し構造型 | 構造型名 .
6.4.1 構造型名 = 型名 .
6.8.3.1 構造文 = 複合文 | 条件文 | 繰返し文 | with文 .
6.4.3.3 固定部 = レコード要素 [{ ; レコード要素}] .
6.7.1 式 = 単純式 [ 関係演算子 単純式 ] .
6.1.3 識別子
= 英字 [{ 英字 | 数字}] .
6.4.2.3 識別子並び = 識別子 [{ , 識別子}] .
6.1.5 指数 = [ 符号 ] 数字列 .
6.2.1 実行部 = 複合文 .
6.4.2.1 実数型名 = 型名 .
6.7.3 実引数 = 式 | 変数アクセス | 手続き名 | 関数名 .
6.7.3 実引数並び = ( 実引数 [{ , 実引数}] )6.4.3.4 集合型
= set of 基底型 .
6.7.1 集合構成子 = [ [ 元表記 [{ , 元表記}] ] ] .
6.8.3.9 終値 = 式 .
6.4.2.1 順序型 = 書下し順序型 | 順序型名 .
6.4.2.1 順序型名 = 型名 .
6.5.2 純変数
= 変数名 .
6.8.3.3 条件文
= if文 | case文 .
6.7.2.1 乗除演算子 = * | / | div | mod | and .
6.1.5 小数部 = 数字列 .
6.8.3.9 初期値 = 式.
6.1.4 指令
= 英字 [{ 英字 | 数字}] .
6.1.1 数字 = 0 | 1 |2 | 3 | 4
| 5 | 6 | 7 | 8 | 9 .6.1.5 数
字列 = 数字 [{ 数字}] .6.8.3.9 制御変数 = 純変数 .6.6.3.7.1 整合配列形式 = 詰めあり整合配列形式 | 詰めなし整合配列形式 .
6.6.3.7.1 整合配列引数仕様 = 値整合配列仕様 | 変数整合配列仕様 .
6.4.3.2 成分型 = 型表記 .
6.5.3.1 成分変数 = 添字付き変数 | フィールド表記 .
6.8.3.5 選択肢 = 選択定数並び : 文 .
――――― [JIS X 3008 pdf 55] ―――――
次のページ PDF 56
JIS X 3008:1994の引用国際規格 ISO 一覧
- ISO/IEC 7185:1990(IDT)
JIS X 3008:1994の国際規格 ICS 分類一覧
- 35 : 情報技術.事務機械 > 35.060 : 情報技術に使用される言語