JIS X 3003:1993 電子計算機プログラム言語Full BASIC | ページ 18

82
X 3003-1993
果も及ぼさないことがある。
(4) sk文 (ask-statement) は,ファイルの現在の状態を問い合わせる。
11.1.2 構文 構文は,次による。ここで,(1)(22)は中核の生成規則,(23)(31)は拡充ファイルの生成
規則,(32)(34)は両方の機能単位に適用する構文,“固”は固有形式拡充ファイルの生成規則とする。
中核の生成規則
(1) pen文=OPEN 経路指定 NAME ファイル名 ファイル属性並び
(2) 経路指定=経路式 コロン
(3) 経路式=番号記号 指標
(4) ファイル名=文字列式
(5) ファイル属性並び={コンマ ファイル属性}*
(6) ファイル属性⊃中核ファイル属性
(7) 中核ファイル属性=access句|organization句|rectype句|recsize句
(8) ccess句=ACCESS{INPUT|OUTPUT|OUTIN|文字列式}
(9) rganization句=ORGANIZATION{ファイル編成値|文字列式}
(10) ファイル編成値⊃中核ファイル編成値
(11) 中核ファイル編成値=SEQUENTIAL|STREAM
(12) ectype句=RECTYPE{記録形式値|文字列式}
(13) 記録形式値⊃中核記録形式値
(14) 中核記録形式値=DISPLAY|INTERNAL
(15) ecsize句=RECSIZE{VARIABLE|文字列式}{LENGTH 指標}?
(16) lose文=CLOSE 経路式
(17) rase文=ERASE REST・ 経路式
(18) sk文⊃ASK 経路指定 質問項目並び
(19) 質問項目並び=質問項目{コンマ 質問項目}*
(20) 質問項目=属性名 変数名 変数名*
(21) 属性名⊃中核属性名
(22) 中核属性名= ACCESS|DATUM|ERASABLE|FILETYPE|MARGIN|NAME|
ORGANIZATION|POINTER|RECSIZE|RECTYPE|SETTER|
ZONEWIDTH
拡充ファイルの生成規則
(23) ファイル編成値⊃拡充ファイル編成値
(24) 拡充ファイル編成値=RELATIVE|KEYED
固(25) 記録形式値⊃拡充記録形式値
固(26) 拡充記録形式値=NATIVE
(27) ファイル属性⊃拡充ファイル属性
(28) 拡充ファイル属性=collate句
(29) ollate句=COLLATE{STANDARD|NATIVE|文字列式}
(30) 属性名⊃拡充属性名
(31) 拡充属性名=RECORD|KEY|COLLATE
(32) 一つのファイル属性は,一つのファイル属性並び中では,たかだか1回だけ書くことができる。

――――― [JIS X 3003 pdf 86] ―――――

                                                                                             83
X 3003-1993
(33) 一つの属性名は,一つの質問項目並び中では,たかだか1回だけ書くことができる。
(34) 質問項目中の変数の個数及び型は,表11.5 [11.1.4(10) ] に従っていなければならない。
11.1.3 例 構文の例を次に示す。
OPEN #3:NAME ”myfile” (1)
OPEN #N:NAME A$, ACCESS OUTIN, ORGANIZATION KEYED,
RECTYPE INTERNAL, RECSIZE VARIABLE LENGTH L (1)
OPEN #N+H1:NAME ”MY” & F$, ORGANIZATION ORG$ (1)
CLOSE #N (16)
ERASE #3 (17)
ERASE REST #4 (17)
ASK #3:ACCESS AC$, DATUM DT$, NAME NM$, ORGANIZATION ORG$,
POINTER P$, RECSIZE RS$ NUMCHARS, RECTYPE RT$ (18)
ASK #N:KEY K$ (18)
11.1.4 意味 意味は,次による。
(1) ファイルと経路 ファイルは,プログラム単位の実行中に割り当てられる経路 (channel) を通じて参
照する。
(1.1) 経路は,BASICプログラムとの間で外部データを転送するための論理的な路とする。プログラム単
位中では,経路は,そのプログラム単位に局所的な経路番号によって識別する。経路番号は,ゼロ
以上かつ処理系定義の最大値以下の整数とする。この最大値は,99以上でなければならない。ファ
イルは,ファイル名 (file-name) によって識別する。
(1.2) 経路に割り当てられている状態のファイルは“開いている (open)”といい,割り当てられていない
状態のファイルは“閉じている (closed)”という。ファイルが割り当てられている状態の経路は“活
性状態にある (active)”といい,割り当てられていない状態の経路は“不活性状態にある (inactive)”
という。
プログラムの実行開始時点では,ゼロ番以外のすべての経路は,不活性状態とする。ゼロ番の経
路は,常に活性状態とする。ゼロ番の経路に対してopen文,close文又はerase文を実行すると,
続行可能な例外状態になる。
(1.3) ゼロ番の経路による入力及び出力は,それぞれ経路式 (channel-expression) を含まないinput操作及
びprint操作と同じ入力源及び出力先をもつ。ゼロ番の経路は,ファイル属性としてSEQUENTIAL,
DISPLAY及びOUTINをもち,記録設定及び消去の能力をもたない装置として動作する。
(2) pen文 open文 (open-statement) は,ファイルを参照可能にする。
(2.1) pen文は,ファイル名によって識別されるファイルを,経路式によって指定した経路番号を通じて,
プログラムから参照できるようにする。英字の大文字と小文字の別だけが異なるファイル名を,同
じファイルを表すものとするか否かは,処理系定義とする。open文の実行が成功すると,指定した
経路は活性状態になり,指定したファイルは開かれる。
既に活性状態にある経路によってファイルを開こうとすると,例外状態になる。既に開いている
ファイルを開こうとした場合の効果は,処理系定義とする。同時に活性状態になりうるゼロ番以外
の経路の個数は,中核機能単位に合致する処理系の場合には1以上,拡充ファイル機能単位に合致
する処理系の場合には2以上とする。
(2.2) pen文の実行が成功すると,狭義ファイル (true file) は,それ以降,明示的な指定又は省略時想定

――――― [JIS X 3003 pdf 87] ―――――

84
X 3003-1993
によって関連付けられたファイル属性に従って参照できるようになる。参照可能とは,ある種のフ
ァイル操作が可能なこと及びある種のファイル指示子 (file pointer) 操作が可能なことの二つを意
味する。ファイル属性 (file attribute) と,それに対して許される文の関係の概要は,11.0による。フ
ァイルを開こうとして,open文の要求する属性によってはそのファイルを参照可能にすることがで
きない場合,すなわち,関連する操作のうちで実行できないものがそのファイルにある場合には,
例外状態になる。
(2.3) 装置に対するopen文の実行が成功すると,二つの例外を除いて,すべてのファイル処理文は,狭
義ファイルに対するのと同じ効果をもつようになる。特に,出力の場合には同じデータが生成され,
入力の場合には値及び文字は同様に解釈され同様に変数に代入される。しかし,装置には,記録設
定(11.2参照)又はerase文[(9)参照]に関連付けられた意味を,必ずしも適用できない。個々の
装置がこれらの能力をもつか否かは,ask文によって知ることができる。
(2.4) あるファイル編成属性,記録形式属性及び記録長属性でファイルを開くことに成功した後に,その
ファイルを閉じ,その後,これらのファイル属性に関して以前と異なる値でそのファイルを開いた
場合,そのファイルがそのようなファイル属性によって参照可能になるか否かは,処理系定義とす
る。同様に,内部形式又は固有形式の記録形式属性をもつファイルに対する2回のopen文の実行
の間で,有効なarithmetic選択子が異なっている場合,そのファイルがそのようにして参照可能に
なるか否かは,処理系定義とする。
逆に,狭義ファイルを後で再び開くときに次の三つの条件が満たされている場合には,利用者が
処理系定義の手段でその間にファイルを不変に保っていたならば,そのファイルは参照可能になり,
ファイルの内容は正しく保存される。
(a) これらの三つのファイル属性の値が以前と同じである。
(b) 大小順序属性の値も以前と同じである。
(c) 内部形式又は固有形式のファイルについては,有効なarithmetic選択子も以前と同じである。ただ
し,同じarithmetic選択子とは,ここではDECIMAL, NATIVE又はFIXED(15.1参照)のこととす
る。FIXEDの後ろの省略時想定の精度指定のことではない。
装置は,必ずしもデータを保存しない。索引編成ファイルを,異なる大小順序属性のもとで再び
開くと,例外状態になる。
(2.5) 内部形式又は固有形式のファイルを,arithmetic選択子が異なる,別のプログラム単位で参照した
場合,その結果は処理系定義とする。
(2.6) 処理系は,すべての入出力方向属性の利用可能な狭義ファイルを提供しなければならない。更に,
利用できない入出力方向属性のある狭義ファイルを提供してもよい。装置は,すべての入出力方向
属性が利用可能であるとは限らない。
(2.7) 中核機能単位に合致する処理系は,ファイル編成値と記録形式値に関して,次の3種類の組合せを
受け入れ,処理しなければならない。これら以外の組合せの効果は,処理系定義とする。
(a) 順編成・表示形式
(b) 順編成・内部形式
(c) 流れ編成・内部形式
(2.8) 内部形式拡充ファイル機能単位に合致する処理系は,(2.7)の3種類に加えて,次の2種類の組合せ
をも受け入れ,処理しなければならない。
(a) 相対編成・内部形式

――――― [JIS X 3003 pdf 88] ―――――

                                                                                             85
X 3003-1993
(b) 索引編成・内部形式
(2.9) 固有形式拡充ファイル機能単位に合致する処理系は,(2.7)の3種類に加えて,次の3種類の組合せ
をも受け入れ,処理しなければならない。
(a) 順編成・固有形式
(b) 相対編成・固有形式
(c) 索引編成・固有形式
(2.10) 属性の値として文字列式を用いた場合,その値は,その属性に関連付けられた機能語のうちのいず
れかでなければならない。この文字列値の中では,英大文字と英小文字は,等価とする。処理系は,
ファイル属性の値を追加定義してもよい。
(3) ccess句 access句 (access-mode) は,データをファイルから入力転送するかファイルに出力転送する
かの方向を指示する入出力方向 (access mode) 属性を与える。この属性は,access句のもつ機能語
INPUT(入力専用),OUTPUT(出力専用),OUTIN(入出力両用)のいずれか又は値がこれらの機能
語のいずれかになる文字列式によって指定する。
(3.1) 入出力方向属性がINPUTであれば,ファイルからデータを読み込むことはできるが,そのファイル
を変更することはできない。具体的には,機能語MAT又はLINEのあるものも含め,read操作,
指示子制御を指定したset文及びinput操作は許されるが,print操作,write操作,rewrite操作及
びdelete文は許されない。
(3.2) 入出力方向属性がOUTPUTであれば,ファイルに新たなデータを加えることはできるが,ファイル
中に既に存在するデータを変更したり,ファイルからデータを取り出したりすることはできない。
具体的には,print操作,指示子制御を指定したset文及びwrite操作は許されるが,read操作,rewrite
操作,delete文及びinput操作は許されない。
(3.3) 入出力方向属性がOUTINであれば,rewrite操作及びdelete文も含めて,そのファイルに対するす
べての記録操作が許される。
(3.4) rase文は,入出力方向属性がOUTINであるファイルに対してだけ許される。
(3.5) ファイル属性並び中にaccess句を書かなかったときの入出力方向属性は,そのファイルが入出力可
能であればOUTINが与えられ,入力だけ可能であればINPUTが与えられ,出力だけ可能であれば
OUTPUTが与えられる。ゼロ番の経路は,OUTINを与えて開かれたかのように動作する。
(3.6) pen文を実行すると,ファイル指示子は,出力専用として開いたファイルではファイルの終りに設
定され,その他のファイルではファイルの始めに設定される。
(4) rganization句 organization句 (file-organization) は,ファイル要素間の論理的関係と,要素を識別
するためのファイル指示子の操作手段とを指定するファイル編成 (file organization) 属性を与える。こ
の属性は,organization句のもつ機能語SEQUENTIAL(順編成),STREAM(流れ編成),RELATIVE
(相対編成),KEYED(索引編成)のいずれか又は値がこれらの機能語のいずれかになる文字列式に
よって指定する。
(4.1) 装置は,順編成又は流れ編成として参照される。相対編成及び索引編成は,狭義ファイルにだけ許
される。
(4.2) 順編成ファイルは,記録 (record) の列とする。記録の順序は,記録が出力された順序になる。記録
は,ファイルの終りにだけ追加することができる。ファイル指示子によって記録を識別する手段は,
ファイル指示子の現在の位置に対する相対的な位置,特別な位置BEGIN及び特別な位置ENDだけ
を可能とする。ここで,BEGINは記録の列(もしあれば)の先頭の記録を識別し,ENDは末尾の

――――― [JIS X 3003 pdf 89] ―――――

86
X 3003-1993
記録の直後の位置(記録を追加できるただ一つの位置)を識別する。1回の記録操作によって,表
示形式記録は複数個操作できるが,内部形式又は固有形式の記録はたかだか1個しか操作できない。
(4.3) 流れ編成ファイルは,記録ではなく個々の値 (value) の列であるという点を除けば,順編成ファイ
ルとほとんど同じとする。値の順序は,値が出力された順序になる。値は,ファイルの終りにだけ
追加することができる。値を識別する手段は,ファイル指示子の現在の位置に対する相対的な位置,
特別な位置BEGIN及び特別な位置ENDだけを可能とする。ここで,BEGINは値の列(もしあれば)
の先頭の値を識別し,ENDは末尾の値の直後の位置を識別する。1回の記録操作では,通常,流れ
編成ファイル中の一連の値を入力又は出力する。
(4.4) 相対編成ファイルは,記録領域 (record-area) の列とする。この記録領域は,記録を含むことも含ま
ないこともある。記録領域には,1から始まる一連の番号が与えられている。したがって,記録領
域及びその中に含まれる記録の順序は,記録領域に関連付けられた整数を識別することによって定
まる。順編成ファイルに与えられている手段のほかに,この記録番号 (record number) を使用するこ
とによってもファイル指示子を操作することができる。相対編成ファイルでは,ファイルの始めは,
記録領域中の記録の有無にかかわらず先頭の記録領域とする。ファイルの終りは,既に存在してい
る最後の記録の直後の位置とする。したがって,例えば既存の記録の最も大きい記録番号が44であ
れば,ファイルの終りは記録番号45の記録領域となる。ファイル中に記録が一つもなければ,ファ
イルの終りは記録番号1の記録領域となる。
相対編成ファイル中の記録は,読み書きできるばかりでなく,rewrite操作によって変更でき,
delete文によって削除できる。更に記録は,ファイルの終りばかりでなく,ファイルの終りを越え
た位置も含めて,任意の空の記録領域に追加することができる。1回の記録操作では,たかだか1
個の記録を操作する。
(4.5) 索引編成ファイルは,記録の列とする。個々の記録は,キー (key) と呼ばれる文字列で識別する。
記録の論理的な順序は,それらのキーの大小順序によって定まる[(7)参照]。したがって,順編成
ファイルに与えられている手段のほかに,キーを使用することによってもファイル指示子を操作す
ることができる。順編成ファイルと同様に,ファイルの始めは記録の列(もしあれば)の先頭の記
録とし,ファイルの終りは最後の記録の直後の位置とする。
記録は,列の中の任意の位置に追加できる。ただし,記録を生成するときには,正確なキーを必
ず指定しなければならず,キーの値の重複は許されない。記録はまた入力,変更及び削除すること
ができる。1回の記録操作では,たかだか1個の記録を操作する。
(4.6) pen文にorganization句を書かなかったときのファイル編成属性は,そのファイルに関して利用可
能なシステム情報によって決められる。そのような情報が不十分であれば,処理系は,SEQUENTIAL
を与えてそのファイルを開こうとする。ゼロ番の経路は,SEQUENTIALを与えて開かれたかのよう
に動作する。
(5) ectype句 rectype句 (record-type) は,記録中のデータ又は個々のファイル要素としてのデータの論
理表現を指定する記録形式 (record type) 属性を与える。記録形式属性は,データがプログラムとファ
イルの間を転送されるときのデータの解釈及び変換の方法に影響を与える。この属性は,rectype句の
もつ機能語DISPLAY(表示形式),INTERNAL(内部形式),NATIVE(固有形式)のいずれか又は値
がこれらの機能語のいずれかになる文字列式によって指定する。
(5.1) 記録形式属性がDISPLAYであれば,記録が文字の列であることを示す。文字の列は,出力ではprint
操作,入力ではinput操作の意味の規定に従って処理される(10.参照)。表示形式記録は,read操

――――― [JIS X 3003 pdf 90] ―――――

次のページ PDF 91

JIS X 3003:1993の引用国際規格 ISO 一覧

  • ISO/IEC 10279:1991(IDT)

JIS X 3003:1993の国際規格 ICS 分類一覧

JIS X 3003:1993の関連規格と引用規格一覧