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

                                                                                            147
X 3003-1993
事象を参照するconnect-event文 (connect-statement) 及びdisconnect-event文 (disconnect-statement) は,
外部のハードウェアからの指定した事象信号 (event signal) の受付けを,それぞれ可能又は不能にする。
14.3.2 構文 構文は,次による。
(1) 並行動作制御文=start文|wait文|signal文|connect-event文|disconnect-event文
(2) tart文=START ルーチン識別名
(3) ait文=WAIT{time句|delay句|event-timeout句}
(4) ime句=TIME 時間式
(5) 時間式=数値時間式|文字列時間式
(6) 文字列時間式=文字列式
(7) elay句=DELAY 数値時間式
(8) vent-timeout句=EVENT 事象名 timeout句?
(9) ignal文=SIGNAL 事象名
(10) onnect-event文=CONNECT EVENT 事象名並び
(11) 事象名並び=事象名{コンマ 事象名}*
(12) isconnect-event文=DISCONNECT EVENT 事象名並び
(13) rocess宣言で宣言してない事象名を,connect-event文及びdisconnect-event文に書いてはならない。
(14) rocess宣言で宣言した事象名を,signal文に書いてはならない。
(15) tart文中のルーチン識別名は,プログラム中のどれかのparact行に書いてなければならない。
(16) ait文中の事象名は,signal文に書いてあるか,又は処理事象としてprocess宣言中に宣言してあるか
でなければならない。
14.3.3 例 構文の例を次に示す。
START FILL (2)
WAIT DELAY 1.5*60*60 (3)
WAIT TIME ”09:15:00” (3)
WAIT EVENT READY TIMEOUT 4 (3)
WAIT TIME A$ (3)
SIGNAL READY (9)
CONNECT EVENT FULL (10)
DISCONNECT EVENT FULL, TOOFUL (12)
14.3.4 意味 意味は,次による。
(1) tart文を実行すると,指名された並行単位で定義される並行活動が進行状態になる。wait文を実行す
ると,指定した定時間だけ,指定した時刻まで又は指定した事象が発生するまで,そのwait文を実行
した並行活動が休止される。
(2) 数値時間式の値は,秒数を表す。式の値が整数でない場合,時間式の精度は,時計機構の分解能に依
存する。文字列時間式の値は,関数TIME$の形式,範囲及び意味による(6.4参照)。
(3) elay句のあるwait文の場合,並行活動は,指定された長さの時間だけ休止され,その時間が経過し
た後に再び進行状態になる。
数値時間式をもつtime句のあるwait文の場合,並行活動は,その日の午前0時からの経過時間が
指定された秒数になるまで休止され,その時刻に再び進行状態になる。午前0時からの経過時間が指
定された秒数を既に超えている場合,並行活動は,翌日のその時刻まで待たされる。

――――― [JIS X 3003 pdf 151] ―――――

148
X 3003-1993
文字列時間式をもつtime句のあるwait文の場合,並行活動は,その日の指定された時刻まで休止
され,その時刻に再び進行状態になる。その日の指定された時刻が既に過ぎている場合,並行活動は,
翌日のその時刻まで待たされる。
(4) vent-timeout句のあるwait文の場合,並行活動は,指定された事象が発生するまで休止され,その事
象が発生した時に再び進行状態になる(14.2及び14.4参照)。event-timeout句にtimeout句を書いた
場合,指定された時間内に事象が発生しないと例外状態になる。
(5) ignal文を実行すると,指定された事象が発生する。signal文の実行後も,その並行活動は進行状態の
ままとする。
(6) onnect-event文を実行すると,指定された処理事象 (process event) が接続される。接続された処理対
象は,事象を発生することができる。
(7) isconnect-event文を実行すると,指定された処理事象が切り離される。disconnect-event文を実行す
る以前に発生した事象で,まだwait文に対して効果を及ぼしていないものは,無効になる。接続され
ていない処理対象は,事象を発生することができない。
(8) 発生した事象は,その事象を待っている並行活動を再び進行状態にする。その事象を待っている並行
活動がない場合,事象の発生後最初にその事象に対するwait文を実行した並行活動が,休止されずに
そのまま進行状態を続ける。どちらの場合も,発生した事象は,これらの効果を及ぼした後無効にな
る。
(9) 同じ事象を待っている並行活動が複数個ある場合,その事象の発生によってどの並行活動が進行状態
になるかは,処理系定義とする。1回の事象の発生に対しては,一つの並行活動だけが進行状態にな
る。
(10) ignal文によって発生した事象がwait文に対して効果を及ぼさないままに,再び同じ事象を発生する
signal文を実行すると,例外状態になる。それらの事象は,無効になる。
(11) 接続されている処理対象の発生した事象がwait文に対して効果を及ぼさないままに,同じ対象が再び
事象を発生し,かつその事象に対するwait文を実行すると,例外状態になる。それらの事象は,無効
になる。
(12) 実時間プログラムの実行の初めでは,どの事象も発生していないし,どの処理事象も接続されていな
い。
14.3.5 例外状態 例外状態は,次による。
(1) tart文で指定された並行活動が,停止状態でない。(12001,続行不能。)
(2) ある事象が,既に発生されていて,その事象が待ち状態の並行活動を進行状態にすることにまだ使わ
れていないのに,signal文が同じ事象を再び発生しようとした。(12002,続行不能。)
(3) 時間式として使われている数値式の値が,1日の秒数86400を超える,又は負である。(12004,続行
不能。)
(4) 時間式として使われている文字列式の値が,関数TIME$の形式でない。(12005,続行不能。)
(5) ait文で指定された事象が,timeout句で指定された時間内に発生しない。(12101,続行不能。)
(6) 接続されている処理対象の発生した事象で,まだwait文に対して効果を及ぼしていないものが二つ以
上あるときに,wait文を実行する。(12003,続行不能。)
(7) 既に接続されている事象に対してconnect-event文を実行する。(12006,続行不能。)
(8) 既に切り離されている事象に対してdisconnect-event文を実行する。(12007,続行不能。)

――――― [JIS X 3003 pdf 152] ―――――

                                                                                            149
X 3003-1993
14.3.6 注意 処理系の時計機構を,季節時間の変更,誤差などのために調整する必要があるとき,time
句のあるwait文に問題が生ずる。待ち時刻が来て,活動がいったん進行状態にされると,時計機構を戻し
たときに,戻される時間の間に待ち時刻があっても,その活動は,翌日まで再び進行状態にはされないよ
うにすることを推奨する。同様に,時計機構を進める場合,進められる時間の間に待ち時刻のある活動は,
待ち時刻が来たものとして進行状態にされるようにすることを推奨する。

14.4 処理入出力

14.4.1 概要 in-from文 (in-statement) 及びout-to文 (out-statement) は,受動的な処理対象 (process object)
と実時間プログラムとの間の通信路を通して,データの転送を行う。in-from文は,外部の値をプログラ
ム中の変数に転送する。out-to文は,値を外部の処理対象に転送する。
14.4.2 構文 構文は,次による。
(1) 処理域入出力文=in-from文|out-to文
(2) n-from文=IN FROM{処理域名|処理域配列名 添字部} TO 入力構造 timeout句?
(3) 入力構造=入力構造要素{コンマ 入力構造要素}*
(4) 入力構造要素=変数名|配列名
(5) ut-to文=OUT TO{処理域名|処理域配列名 添字部} FROM 出力構造 timeout句?
(6) 出力構造=出力構造要素{コンマ 出力構造要素}*
(7) 出力構造要素=式|配列名
(8) n-from文及びout-to文中に書く処理域名及び処理域配列名は,すべてprocess宣言又は処理域配列宣
言で宣言しておかなければならない。
(9) n-from文及びout-to文の中の添字部の添字の個数は,対応する処理域配列宣言中の上下限指定の個
数と一致しなければならない。
(10) 入力構造及び出力構造の中の要素の個数及び型は,その処理域に対する宣言中で指名した構造名の
structure宣言による構造と,要素ごとに一致しなければならない。すなわち,
(a) 入力構造及び出力構造の中の要素の個数は,その処理域のstructure宣言中の(反復回数をも含めた)
型指示の個数と,一致しなければならない。
(b) 入力構造及び出力構造の中の要素を,その処理域のstructure宣言中の型指示に,一つずつ順番に対
応付けたとき,表のとおりに対応しなければならない。
structure宣言中の型指示入力構造要素 出力構造要素
NUMERIC 数値単純変数名 数値式
STRING 文字列単純変数名 文字列式
NUMERIC 上下限指定部 数値配列名 数値配列名
STRING 上下限指定部 文字列配列名 文字列配列名
(11) 入力構造要素及び出力構造要素の中の配列の次元数は,その処理域の宣言中で指名されたstructure
宣言と一致しなければならない。structure宣言の型指示に精度指定があるときには,対応する入力構
造要素及び出力構造要素にも同じ型指示を書かなければならない(15.1参照)。
(12) UTPUTと宣言された処理域名及び処理域配列名を,in-from文に書いてはならない。INPUTと宣言
された処理域名及び処理域配列名を,out-to文に書いてはならない。
14.4.3 例 構文の例を次に示す。
IN FROM WEIGHT TO X, Y (2)
IN FROM PANEL TO A$, B, C, Fvect (2)
IN FROM RIG1(NEXT) O ALPHA TIMEOUT 2.5 (2)

――――― [JIS X 3003 pdf 153] ―――――

150
X 3003-1993
OUT TO Z1 FROM B*C+X (5)
OUT TO PANEL FROM A$&B$, JIM, FRED, Cvect (5)
14.4.4 意味 意味は,次による。
(1) n-from文を実行すると,指定した処理域から値を得て,それを入力構造中の対応する変数及び配列に
代入する。変数への代入,添字の評価及び部分文字列指定の評価の順序は,input文の場合と同じと
する。
(2) 数値が下位けたあふれになると,その値はゼロで置き換えられる。
(3) n-from文の実行は,入力構造中のすべての変数及び配列に値が代入されたときか,又は続行不能な例
外状態になったときにだけ完了する。これらの例外状態としては,正しくないデータ又はハードウェ
アの誤動作によるもの,timeout句で指定した秒数が経過した場合などがある。
(4) ut-to文を実行すると,出力構造中の式が評価され,その値及び指定した配列中のすべての要素の値
が,指定した処理域に送られる。
参考 ANSI X3.113では“仮配列”となっているが,誤りであるので,TIBによって訂正した。
(5) ut-to文の実行は,出力構造からのすべての値が処理環境によって受け入れられたときか,又は続行
不能な例外状態になったときにだけ完了する。これらの例外状態としては,正しくないデータ又はハ
ードウェアの誤動作による場合,timeout句で指定した秒数が経過した場合などがある。
(6) 入力構造又は出力構造の中に配列名があると,その名前の配列全体の内容が,行別の昇順で入力又は
出力される。
14.4.5 例外状態 例外状態は,次による。
(1) 入力構造中の数値変数又は数値配列への値の代入が,数値あふれを起こす。(1201,続行不能。)
(2) 入力構造中の文字列変数又は文字列配列への値の代入が,文字列あふれを起こす。(1203,続行不能。)
(3) 入力構造又は出力構造の中で使われている配列名の各次元の現在の寸法が,指名された処理域の宣言
中で指定された構造のstructure宣言と一致しない。(6301,続行不能。)
(4) n-from文又はout-to文の実行が,timeout句で与えられた制限時間内に完了しない。(12102,続行不
能。)
(5) 処理域に対する添字が,処理域配列宣言で指定された範囲の中にない。(2001,続行不能。)
14.4.6 注意 処理系定義の例外状態があってもよい。これらは,主に特定の処理対象の特性に関するもの
である。

14.5 共用データ

14.5.1 概要 get-from文 (get-statement) 及びput-to文 (put-statement) は,並行活動と共用データ (shared
data) の集まりとの間のデータ転送を行う。データは,共用域を通して転送される。
14.5.2 構文 構文は,次による。
(1) 共用域入出力文=put-to文|get-from文
(2) ut-to文=PUT TO 共用域名 添字部? FROM 出力構造 timeout句?
(3) et-from文=GET FROM 共用域名 添字部? TO 入力構造 timeout句?
(4) ut-to文及びget-from文中に書く共用域名は,すべてshared宣言で宣言しておかなければならない。
(5) 共用域名に後続する添字部は,その共用域名に対するshared宣言中に上下限指定部があるときにだけ
書くことができるし,書かなければならない。この場合,添字部の添字の個数は,上下限指定部で指
定した次元数と一致しなければならない。
(6) 入力構造及び出力構造の中の要素の個数及び型は,その共用域に対するshared宣言で指名した構造名

――――― [JIS X 3003 pdf 154] ―――――

                                                                                            151
X 3003-1993
のstructure宣言による構造に,14.4.2(10)の規定に従って一致しなければならない。
14.5.3 例 構文の例を次に示す。
PUT TO FLIGHT(N+1) ROM I$, N, 2, P (2)
GET FROM D TO E (3)
14.5.4 意味 意味は,次による。
(1) ut-to文を実行すると,出力構造中の式が評価され,その値及び指定した配列中のすべての要素の値
が,対応する共用データの集まりに送られる。
(2) et-from文を実行すると,対応する共用データの集まりからの値が,入力構造中の変数及び配列に代
入される。入力構造中の添字及び部分文字列指定は,入力構造中の先行する(左側の)変数及び配列
がすべて値を代入されてから,評価される。
(3) et-from文が初期化されていないデータを引用した場合,その結果は,処理系定義とする。
(4) ut-to文及びget-from文の実行は,すべての値が転送されたときか,又は続行不能な例外状態になっ
たときに完了する。一つのget-from文又はput-to文の実行が完了するまでは,他のどの並行活動も指
定されている共用データの集まりを参照することができない。
(5) 共用域入出力文とseize区(14.8参照)との関係は,次のとおりとする。
(5.1) 共用域入出力文がseize区の中にない場合,それはあたかも次の行からなるseize区の中にあるかの
ように実行される。
(a) その共用域入出力文と同じ共用域名及びtimeout句を指定するseize行。
(b) その共用域入出力文,ただし,timeout句は除く。
(c) nd-seize行。
(5.2) 共用域入出力文がseize区の中にある場合,特別な制約はない。
14.5.5 例外状態 例外状態は,次による。
(1) 入力構造中の数値変数又は数値配列への値の代入が数値あふれを起こす。(1202,続行不能。)
(2) 入力構造中の文字列変数又は文字列配列への値の代入が文字列あふれを起こす。(1204,続行不能。)
(3) 入力構造又は出力構造の中で使われている配列の各次元の現在の寸法が,指名された共用域の宣言中
で指定された構造のstructure宣言と一致しない。(6301,続行不能。)
(4) 共用域に対する添字が,shared宣言で指定された範囲の中にない。(2001,続行不能。)
14.5.6 注意 なし。

14.6 通報の受け渡し

14.6.1 概要 send-to文 (send-statement) とreceive-from文 (receive-statement) は,並行活動間でデータを
送受する。データは,一方の並行活動に含まれるsend-to文の中の通報出力域 (message output port) と他方
の並行活動に含まれるreceive-from文の中の通報入力域 (message input port) とを結ぶ通報路 (message
path) を通して送受される。
通報路は,一方の並行活動に含まれるsend-to文の中と,他方の並行活動に含まれるreceive-from文の
中とで同じ通報域名を使用することによって,実行時に暗黙的に確立される。
14.6.2 構文 構文は,次による。
(1) 通報域入出力文=send-to文|receive-from文
(2) end-to文=SEND TO 通報域名 FROM 出力構造 timeout句
(3) eceive-from文=RECEIVE FROM 通報域名 TO 入力構造 timeout句
(4) elect-on-port区= select-on-port行 注釈行* 通報case区 通報case区* case-timeout区?

――――― [JIS X 3003 pdf 155] ―――――

次のページ PDF 156

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

  • ISO/IEC 10279:1991(IDT)

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

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