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

                                                                                            137
X 3003-1993
(31) 一つのプログラム中で,同じ名前の外部絵定義を2回以上定義してはならない。一つのプログラム単
位中で,同じ名前の内部絵定義を2回以上定義してはならない。
(32) 一つのプログラム単位中で,同じ名前の(内部又は外部)絵を2回以上宣言したり定義したりしては
ならない。
(33) 絵名が外部絵定義によって定義されている場合,そのプログラム単位中でその絵名を参照するどの
draw文よりも早い位置に,その絵名を含むexternal-picture宣言のdeclare文を書かなければならない。
(34) 絵名が内部絵定義によって定義されている場合,そのプログラム単位中でその絵名を参照するどの
draw文よりも早い位置に,その内部絵定義,又はその絵名を含む内部picture宣言のdeclare文のど
ちらかを書かなければならない。
(35) 自己再帰的な絵は,自分自身を宣言する必要はない。すなわち,内部絵定義又は外部絵定義が自分自
身を参照するdraw文を含むときに,その参照は,より早い位置でその絵名を宣言しておくことを必
要としない。
(36) xit-picture文は,絵定義の中にだけ書くことができる。
(37) raw文の参照実引き数の個数及び型は,対応する絵定義の参照仮引き数の個数及び型と一致しなけれ
ばならない。これは,副プログラムにおける規定 [9.2.2(29) ] と同じとする。
(38) 参照実引き数の実配列の次元数は,対応する仮配列の次元数と同じでなければならない。仮配列の次
元数は,その仮配列宣言中のコンマの個数に1を加えたものとする。
(39) 数値型の参照実引き数を,別のプログラム単位中の対応する数値型の参照仮引き数に渡す場合,有効
なarithmetic選択子がプログラム単位間で一致していなければならない。
(40) 一つの参照仮引き数部に,同じ参照仮引き数の名前を2回以上書いてはならない。
参照仮引き数を,その内部絵定義又は外部絵定義の内部で,declare文又はdim文に書いてはならな
い。
(41) 参照仮引き数として,経路番号ゼロを書いてはならない。
(42) 内部picture宣言中に書いた絵名には,そのプログラム単位中のどこかで,内部絵定義を与えなけれ
ばならない。
(43) xternal-picture宣言中に書いた絵名には,そのプログラム中のどこかで,外部絵定義を与えなければ
ならない。
(44) 変形項及び変形指示mat文の中のすべての数値配列は,2次元でなければならない。
(45) 変形関数の値実引き数の個数及び型は,13.5.4の規定に合致しなければならない。
13.5.3 例 構文の例を次に示す。
DRAW CIRCLE (2)
DRAW CIRCLE WITH SHIFT (2,0)*SCALE(.4) (2)
DRAW HOUSE (”SPLITLEVEL”, 80000) ITH SHEAR(.1) (2)
EXIT PICTURE (8)
MAT SPINSHRINK=ROTATE (180)*SCALE(.1) (9)
MAT WhereamI=Transform (9)
Plot lines : x, sin(x); (11)

――――― [JIS X 3003 pdf 141] ―――――

138
X 3003-1993
100 EXTERNAL PICTURE CIRCLE
150 LET P=2*3.14159265/50
200 FOR I=0 TO 50
250 LET IP=I*P (19)
300 PLOT LINES:COS(IP),SIN(IP);
400 NEXT I
500 END PICTURE
13.5.4 意味 意味は,次による。
(1) 絵定義及び変形
(1.1) raw文を実行すると,その絵名をもつ絵定義が実行される。絵は,副プログラムと同様の方法で呼
び出す。参照実引き数は,副プログラムの場合と同じ規則に従って受け渡す。絵と副プログラムは,
どちらも再帰的に呼び出すことができる。ルーチン識別名及び絵定義中の変数名の有効範囲の規則
は,副プログラムの場合と同じとし,絵定義が内部絵定義であるか,外部絵定義であるかによる。
副プログラムにおける経路番号に対する規則も,絵定義に対して同様に適用する。ただし,次の二
つの点で重要な相違がある。
第一に,座標系を再定義するset文(すなわち,機能語WINDOW,VIEWPORT,DEVICE WINDOW
若しくはDEVICE VIEWPORTをもつset文),又は切取りに影響するset文(すなわち,機能語CLIP
をもつset文)を,絵定義の実行中に,実行してはならない。
第二に,図形動詞PLOTをもつ図形出力文によって生成される図形出力は,図形動詞GRAPHを
もつ図形出力文によって生成される図形出力と同じとする。ただし,その座標は,絵定義を呼び出
すdraw文で指定された変形指示に従って,(1.2)のとおりに変形される。図形動詞PLOTをもつ図
形出力文を実行するときに,絵定義の実行中でなければ,図形出力は13.3の規定に従う。図形動詞
GRAPHをもつ図形出力文によって生成される図形出力は,その絵に対して現在有効な変形指示に
は影響されない。
(1.2) 変形を行うために,2次元平面上の点の問題座標 (x, y) を,同次座標 (homogeneous coordinates) (cx,
cy, 0, c) で表現する。ここで,cはゼロでない数値とする。この行ベクトルに,draw文における変
形項の値である4行4列の行列を右から乗ずると,座標が変形され,同次座標の新しい行ベクトル
が得られる。
一つ又は二つの数値式の実引き数をもち,4行4列の行列の値を生成する変形関数を用いて,変
形を指示することができる。これらの変形関数の値実引き数の個数,その効果及び値は,表13.1に
よる。
関数ROTATE及び関数SHEARの値実引き数は,そのプログラム単位におけるangle選択子の指
定に従って,度単位又はラジアン単位とする(5.6参照)。

――――― [JIS X 3003 pdf 142] ―――――

                                                                                            139
X 3003-1993
表13.1 図形変形関数
関数 変形
SHIFT (a, b) (x, y) を (x+a, y+b) に平行移動する。
値 : 1 0 0 0
0 1 0 0
0 0 1 0
a b 0 1
SCALE (a, b) (x, y) を (ax, by) に拡大縮小する。
値 : a 0 0 0
0 b 0 0
0 0 1 0
0 0 0 1
SCALE (a) (x, y) を (ax, ay) に拡大縮小する。
値 : a 0 0 0
0 a 0 0
0 0 a 0
0 0 0 1
ROTATE (a) (x, y) を,問題座標系の原点について,逆時計回りにa度又は
aラジアン回転する。
値 : cos (a) sin (a) 0 0
−sin (a) cos (a) 0 0
0 0 1 0
0 0 0 1
SHEAR (a) (x, y) を (x+ytan (a), y) に写像して, (x, y) 平面上の垂直線を
a度又はaラジアン傾ける。
値 : 1 0 0 0
tan (a) 1 0 0
0 0 1 0
0 0 0 1
(1.3) 引き数のない関数TRANSFORMは,現在有効なすべての変形を重ねた結果の現在変形を,4行4列
の行列として返す。直接的にも間接的にもdraw文によって呼ばれていないプログラム単位の中で
は,この関数は,単位行列を返す。
(1.4) 変形項として用いる数値配列は,すべて4行4列の行列でなければならない。そのような変形指示
による変形の結果は,各変形項に従う変形を左から右に適用することによって得られる。
(1.5) 絵定義は,他の手続きを呼び出すことができる。更に,直接的に又は他の手続きを通して間接的に,
自分自身を呼び出すこともできる。
(1.6) ある絵定義の実行中に,次の絵定義を変形を伴って呼び出すと,2番目の絵定義によって生成され
る点に対して,二重の(更には多重の)変形が適用される。まず2番目の絵定義を呼び出すdraw
文で指定された変形が行われ,次にもとの絵定義に対する変形が行われる。
(1.7) nd-picture行は,絵定義の構文上の終りを示すとともに,それを実行すると絵定義の実行が終了す
る。exit-picture文を実行すると,その絵定義の実行が終了する。絵定義の実行が終了すると,絵定
義の実行を開始させたdraw文の次の行から実行が続く。
(1.8) 絵定義中でstop文を実行すると,プログラム全体の実行が終了する。
(1.9) 変形指示mat文を実行すると,変形の値である4行4列の行列が等号の左辺の数値配列に代入され
る。必要であれば,その数値配列は,7.2の規定に従って,動的に上下限が再定義される。
(2) 変形入力 機能語GET POINT又はMAT GET POINTをもつ図形入力文の実行は,機能語LOCATE

――――― [JIS X 3003 pdf 143] ―――――

140
X 3003-1993
POINT又はMAT LOCATE POINTをもつ図形入力文と同様とする。ただし,GETによって入力される
点の座標は,基準化,装置変形及び現在変形の逆行列によって変形される。現在変形の逆行列を求め
られないとき(すなわち,現在変形が特異行列であるとき),この文の効果は,処理系定義とする。
(3) 描点出力
(3.1) 機能語PLOT LINESをもつ幾何図形文の実行は,機能語GRAPH LINESをもつ幾何図形文と同様と
する。ただし,次の三つの点で相違がある。
第一に,点の座標は,絵呼出しによって(1)に定めたとおりに変形される。
第二に,点並び中の点の個数が,1個以下であっても例外状態にならない。
第三に,実際に描かれる線は,それより前に実行された,機能語PLOT LINESをもつ幾何図形文
に依存することがある。
(3.2) 点並び中の点の座標は,13.3による。出力は,画面上の描点 (beam) の移動の概念によって規定す
る。描点と画面とは,実際には,プロッタのペンと紙又はその他の物理的な装置の組合せでありう
る。
(3.3) 描点の状態は,オン又はオフとする。オンの状態で移動すると,その始点と終点を結ぶ線分が画面
上に描かれる。オフの状態で移動すると,画面上には何も効果がない。
(3.4) 機能語PLOT LINESをもつ幾何図形文を実行すると,描点が,現在の位置から点並びの最初の点に
移動してオンになり,以後各点を順次にたどる。各回の移動の終点で,描点がオンになる。点並び
の後ろにセミコロンがある場合,そしてその場合に限り,文の実行が終わった時,描点はオンのま
まとする。
(3.5) 次の場合,描点はオフになる。その座標位置は,不定とする。
(a) 機能語PLOT LINESをもち,点並び又はセミコロンのない幾何図形文の実行後
(b) 機能語PLOT LINESをもたない図形出力文の実行前
(c) プログラムの実行開始時
(d) 図形入力文の実行前
(e) 基準装置座標空間の変形に効果を与える文(すなわち,機能語WINDOW,VIEWPORT,DEVICE
WINDOW又はDEVICE VIEWPORTをもつset文)の実行前
(f) 絵定義に入る時及びそこから出る時
(3.6) 次の絵定義の例は,円を近似的に描く。適切な座標が与えられているとする。
110 External picture circle
120 Let P = 2*PI/100
130 For I = 0 to 100
140 Plot lines : cos (I*P), sin (I*P) ;
150 Next I
160 End picture
参考 ANSI X3.113では,上の例のコロンがないが,誤りであるので,TIBによって訂正した。
13.5.5 例外状態 例外状態は,次による。
(1) 座標を再定義したり切取りに影響したりするset文を,絵定義の実行中に実行する。(11004,続行不
能。)
(2) raw文の変形項が,4行4列の行列でない。(6201,続行不能。)
(3) 変形指示mat文によって値が代入される数値配列のもとの寸法が,4行4列の行列に再定義できない

――――― [JIS X 3003 pdf 144] ―――――

                                                                                            141
X 3003-1993
寸法である。(5002,続行不能。)
13.5.6 注意 注意は,次による。
(1) 変形の行列が4行4列であるのは,3次元への拡張を許すためである。
(2) 13.3.5に規定するすべての例外状態は,13.5に規定する図形出力文にも適用する。ただし,図形対象
LINESの点並び中に点が1個以下しかないときの例外状態 [13.3.5(4) ] は,適用しない。
(3) 13.4.5に規定するすべての例外状態は,13.5に規定する図形入力文にも適用する。
(4) 点並びのない文PLOT LINESのただ一つの効果は,描点をオフにすることである。
参考 ANSI X3.113では,“点並びもセミコロンもない文”となっているが,誤りであるので,TIBに
よって訂正した。
(5) 次の事項に関する9.1.6の注意は,絵に対しても同様に適用する。
(a) 異なるcollate選択子をもつプログラム単位は,誤りとはしない[9.1.6(1)参照]。
(b) 定義又は宣言されていながら引用されない関数名は,誤りとはしない[9.1.6(2)参照]。
(c) 定義が宣言に先行する関数名は,内部関数定義では誤りとはしない[9.1.6(3)参照]。
(d) プログラム単位中で引用する外部関数名は,そのプログラム単位中で必ず宣言しなければならない。
内部関数名は,必ずしも宣言しなくてもよい[9.1.6(4)参照]。
(e) 外部関数と同じ名前の内部関数を使ってもよい[9.1.6(5)参照]。
参考 ANSI X3.113では,ここが“異なったプログラム単位においては”となっているが,誤りであ
るので,TIBによって訂正した。
(6) 別名 (alias) に関する9.2.6の注意は,絵定義に対しても同様に適用する。

14. 実時間

14.0 概要

 この規格の実時間 (real-time) 機能単位は,制御,オートメーション,監視などを含む適用業
務に使用することを意図する。これによって,プログラムを,幾つかの並行動作する単一系列の活動に分
割できるようになる。これらの活動は,適用業務の目標を全体として達成するように協同する。
内部的又は外部的に発生する事象 (event) に応ずるために,並行活動 (concurrent activity) の実行をスケ
ジュールする機能を提供する。共用データを使用したり,通報 (message) を送受したりして,並行活動間
で交信できる。
処理対象 (process object) は,実時間プログラムの外部環境の一部とする。代表的な処理対象としては,
設備のインタフェースにおける測定点及び制御点がある。並行活動と処理対象間の通信は,処理域 (process
port) を通して処理対象を参照する入出力操作によって行う。

14.1 実時間プログラム

14.1.1 概要 実時間プログラム (real-time-program) は,処理環境を記述する実時間宣言単位
(real-time-declarations,14.2参照),一つ以上の並行単位 (parallel-section) の一つの列,及びこれらの並行
単位から呼び出すことができる幾つかの手続きで構成する。それぞれの並行単位は,名前を付け,機能語
PARACT (PARallel ACTivity) とEND PARACTで区切る。複数個の並行単位は,それぞれ別のプログラム単
位を構成し,並行活動を定義する。
並行動作制御文(scheduling-statement,14.3参照)が,並行単位を実行可能にする。実行は,並行単位の
先頭の行から始まる。
14.1.2 構文 構文は,次による。

――――― [JIS X 3003 pdf 145] ―――――

次のページ PDF 146

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

  • ISO/IEC 10279:1991(IDT)

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

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