この規格ページの目次
17
X 3003-1993
STEP, STOP, STREAM, STRING, STYLE, SUB, TAB, TEXT, THEN, THERE, TIMEOUT, TO, TRACE,
UNTIL, USING, VARIABLE, VIEWPORT, WHILE, WINDOW, WITH, WRITE, ZONEWIDTH
4.4.3 例 構文の例を次に示す。
X (2)
sum (2)
A$ (4)
lastname$ (4)
INVERT (5)
4.4.4 意味 意味は,次による。
(1) プログラム単位中で定義された変数,配列,handler区,内部関数定義,内部副プログラム定義又は
内部絵定義(13.5参照)を命名する識別名は,それを含むプログラム単位が呼び出されるたびに局所
的 (local) とする。その意味で,各プログラム単位は,他と区別される実体 (entity) とする。これら
の識別名は,別のプログラム単位中では別の対象を命名し,同一プログラム単位の別の回の呼出しで
も別の対象を命名する。ただし,組込み関数又はプログラム単位を命名する識別名は,プログラム全
体に対して広域的 (global) とする。すなわち,それらの識別名は,どこにあっても同じ対象を指名す
る。
参考 あるプログラム単位の名前を,別のプログラム単位の内部で,変数の名前として用いるような
ことはできる。
(2) 組込み関数の名前又は機能語TABと同じつづりの名前を,利用者定義関数,配列又は変数の識別名と
して,暗黙的に又は明示的に定義・宣言してもよい。その定義・宣言の有効範囲の中では,指定され
た解釈が,規格であらかじめ規定した解釈に優先する。したがって,その有効範囲の中では,この組
込み関数又は印字の位置指定TABは,利用できなくなる。
(3) 一つのプログラム単位中で,英大文字と英小文字が違うだけの識別名は,同じ対象を指示する。例え
ば,X1は,x1と同じ対象を識別する。その他の違いのある識別名は,別の対象を指示する。
参考 別の種類の対象であれば,同じつづりの識別名をもつことがありうる[4.4.2,4.4.6(4)参照]。
4.4.5 例外状態 なし。
4.4.6 注意 注意は,次による。
(1) この規格に対して,単純変数名として使用できない単語を増やすような処理系定義の拡張をしてはな
らない。
配列や定義関数を引用するプログラム単位中では,すべての配列は宣言しなければならず(7.1参照),
すべての定義関数もまた宣言・定義しなければならない。したがって,プログラム中におけるこれら
の識別名に対する宣言が,処理系組込みの解釈に優先するのならば,処理系は,この規格で規定され
ている以外の組込み関数を提供することができる。
しかし,処理系が拡張して提供する組込み関数に引き数がなくて,それを使う場合,その名前が単
純変数名と構文的に区別できないことがありうる。そのような組込み関数を提供する処理系は,それ
らの名前を組込み関数名として識別する構文的な手段を提供しなければならない。構文の例としては,
次のようなものが考えられる。
(a) これらの関数を引用するプログラム単位は,この関数名を明示的に宣言しなければならないことに
する。
――――― [JIS X 3003 pdf 21] ―――――
18
X 3003-1993
(b) EWFUNCTION ( ) というふうに,これらの関数の引用には,空の括弧を書かなければならないこ
とにする。
(2) オペレーティングシステムは,主プログラムとは独立に翻訳される手続きの識別名の長さ及び形につ
いて,追加の制限を課してもよい。
(3) 組込み関数は,同じつづりの名前の利用者定義関数又は単純変数が定義された場合には,無視される。
識別名は,機能語と同じつづりであってもよい。ただし,機能語PRINT,ELSE,REM又はNOTと同
じであってはならない。
(4) 同じつづりの識別名が,二つ以上の別の対象を命名してもよい場合及び命名してはならない場合は,
次のようにまとめることができる。
参考 この(4)項は,TIBによる。
(a) 一つの文字列識別名は,その有効範囲の中では,二つ以上の文字列対象を命名するのに用いてはな
らない。そして例えば,そのプログラム単位の中で,declare文のexternal-function宣言で宣言し,
引用するのでないならば,外部関数と同じつづりの文字列識別名で内部の対象を命名してもよい。
(b) 一つの数値識別名は,その有効範囲の中では,二つ以上の数値対象を命名するのに用いてはならな
い。そして例えば,そのプログラム単位の中で,declare文のexternal-function宣言で宣言し,引用
するのでないならば,外部関数と同じつづりの数値識別名で内部の対象を命名してもよい。
(c) ある内部ルーチン(内部副プログラム,内部関数,内部絵及びhandler区)を命名するのに用いた
ルーチン識別名は,そのプログラム単位の有効範囲の中では,ほかの内部ルーチンを命名するのに
用いてはならない。
(d) 内部副プログラム,内部関数又は内部絵を命名するのに用いたルーチン識別名は,そのプログラム
単位の有効範囲の中では,それぞれ外部副プログラム,外部関数又は外部絵を命名するのに用いて
はならない。
(e) 一つのルーチン識別名は,一つのプログラムの中で,二つ以上の外部ルーチン,プログラム又は並
行単位を命名するのに用いてはならない。
(f) 次の対象は,同じルーチン識別名で重ねて命名してもよい。
外部副プログラムと内部関数
外部副プログラムと内部絵
外部副プログラムと内部のhandler区
外部絵と内部副プログラム
外部絵と内部関数
外部絵と内部のhandler区
主プログラムと内部副プログラム
主プログラムと内部関数
主プログラムと内部絵
主プログラムと内部のhandler区
並行単位と内部副プログラム
並行単位と内部関数
並行単位と内部絵
並行単位と内部のhandler区
――――― [JIS X 3003 pdf 22] ―――――
19
X 3003-1993
5. 数値
5.0 概要
数値 (nunber) は,BASICの基本的な二つのデータ型 (data type) の一つとする(他の一つは,
文字列とする)。数値は,定数,変数及び組込み関数に結び付けられ,それらによって数値式が構成される。
5.1 数値定数
5.1.1 概要 数値定数 (numeric-contant) は,スカラ数値 (scalar numeric value) を表す。数値定数は,位
取り10進数で表現する。数値定数には,次の四つの形式がある。
形式1 小数点なし指数部なし (implicit point unscaled) 形式 sd···d
形式2 小数点あり指数部なし (explicit point unscaled) 形式 sd···drd···d
形式3 小数点あり指数部あり (explicit point scaled) 形式 sd···drd···dEsd···d
形式4 小数点なし指数部あり (implicit point scaled) 形式 sd···dEsd···d
ここで,
d : 10進数字
r : 小数点
s : 省略可能な符号
E : 英字E又はe
とする。符号の先行していない数値定数は,正とみなす。
5.1.2 構文 構文は,次による。
(1) 定数⊃数値定数
(2) 数値定数=符号? 符号なし数値定数
(3) 符号=正号|負号
(4) 符号なし数値定数=有効数字部 指数部?
(5) 有効数字部=符号なし整数 小数点?|符号なし整数? 小数部
(6) 符号なし整数=数字 数字*
(7) 小数部=小数点 符号なし整数
(8) 指数部=E 符号? 符号なし整数
5.1.3 例 構文の例を次に示す。
−21. (2)
1E10 (4)
5e−1 (4)
.4E+1 (4)
500. (5)
1.2 (5)
.255 (7)
5.1.4 意味 意味は,次による。
(1) 数値定数の値は,その定数によって表現される数値とする。英字E及びeは,10のべき乗を意味する。
ここで,E又はeの後ろの符号を省略すると,正号が想定される。
(2) プログラム中では,数値定数の有効数字部 (significand) の数字のけた数は,何けたあってもよい。処
理系は,その数値定数の正確な値,又はそれを処理系定義の精度 (precision) に丸めた値を保持する。
数値定数の処理系定義の精度は,有効なarithmetic選択子がDECIMALであるかNATIVEであるかに
対応して,それぞれ10進10けた以上又は10進6けた以上とする(5.6参照)。
――――― [JIS X 3003 pdf 23] ―――――
20
X 3003-1993
数値定数の指数部 (exrad) の数字のけた数は,何けたあってもよい。ただし,ゼロでない定数の絶
対値が,処理系定義の範囲の外にある場合には,例外状態になりうる(5.6参照)。絶対値が機械最小
値 (machine infinitesimal) よりも小さい定数は,ゼロで置き換えられる。絶対値が関数MAXNUMの
値よりも大きい定数は,あふれ (overflow) を報告される。
5.1.5 例外状態 例外状態は,次による。
(1) 数値定数の評価があふれを起こす。(1001,続行不能。)
5.1.6 注意 注意は,次による。
(1) ゼロでなく,かつ絶対値が機械最小値よりも小さい定数は,処理系が下位けたあふれ (underflow) の
例外状態(1501,続行可能。ゼロで置き換えて処理を続ける。)として報告し,例外処理区による処理
を許すことを推奨する。
(2) この規格には,名前付き定数の機能はない。しかし,それは,引き数のない利用者定義関数(9.1参照)
を用いて書くことができる。
5.2 数値変数
5.2.1 概要 数値変数名 (numeric-variable) は,数値単純変数 (simple numeric variable) 又は数値配列
(numeric array) の要素に対する参照とする。
5.2.2 構文 構文は,次による。
(1) 変数名⊃数値変数名
(2) 数値変数名=数値単純変数名|数値配列要素名
(3) 数値単純変数名=数値識別名
(4) 数値配列要素名=数値配列名 添字部
(5) 数値配列名=数値識別名
(6) 添字部=左括弧 添字{コンマ 添字}* 右括弧
(7) 添字=指標
(8) 指標=数値式
(9) 単純変数名⊃数値単純変数名
(10) 配列名⊃数値配列名
(11) 添字部の添字の個数は,13とする。
5.2.3 例 構文の例を次に示す。
X (3)
sum (3)
V(4) (4)
table(i,j+1) (4)
5.2.4 意味 意味は,次による。
(1) プログラムの実行中はいつも,一つの数値変数は一つの数値に結び付いている。数値変数に結び付い
た値は,プログラム中で文を実行して,変更することができる。
(2) 数値単純変数名 (simple-numeric-variable) は,単にプログラム単位中に書くだけで暗黙的に宣言される。
数値変数名の有効範囲は,それの書いてあるプログラム単位とする。ただし,内部手続き定義の仮引
き数の場合を除く(9.1及び9.2参照)。
参考 ANSI X3.113では,ここが“内部関数定義”となっているが,誤りであるので,TIBによって
訂正した。
――――― [JIS X 3003 pdf 24] ―――――
21
X 3003-1993
(3) 指標 (index) は,数値式とし,その値は,最も近い整数値に丸められる。xを丸めた値は,INT (x+.
5) で定義する。
(4) 数値配列要素名 (numeric-array-element) は,添字付き数値変数名ともいい,配列中の要素を添字の値
によって選択して参照する。参照可能な添字の値の範囲は,dim文又はdeclare文によって明示的に宣
言しなければならない(7.1参照)。添字の値は,正しい範囲の中になければならない。
(5) 実行を開始する時に数値変数に結び付ける初期値は,処理系定義とする。
5.2.5 例外状態 例外状態は,次による。
(1) 添字の値が,宣言された上下限指定の範囲の中にない。(2001,続行不能。)
5.2.6 注意 注意は,次による。
(1) 変数の初期値については規定しないので,処理系によって異なりうる。したがって,プログラムを移
植可能にするには,変数を含む式の評価に先立って,それらの変数に値を明示的に代入しておくこと
が望ましい。
(2) 初期値を変数に結び付けるには,処理系定義の多くの方式がある。すべての変数の初期値を未定義で
あることがわかるようにしておき,値が明示的に代入されることなしにその変数の値を利用しようと
すると,例外状態(3101,続行可能。処理系定義の値を用いて処理を続ける。)になる方式を推奨する。
5.3 数値式
5.3.1 概要 数値式 (numeric-expression) は,加算,減算,乗算,除算及びべき乗の演算を用いて,数値
変数名,符号なし数値定数及び数値関数引用で構成する。
5.3.2 構文 構文は,次による。
(1) 式⊃数値式
(2) 数値式=符号? 数値項{符号 数値項}*
(3) 数値項=数値因子{乗除算演算子 数値因子}*
(4) 数値因子=数値一次子{山記号 数値一次子}*
(5) 数値一次子=符号なし数値定数|数値変数名|数値関数引用|左括弧 数値式 右括弧
(6) 数値関数引用⊃数値関数名 値実引き数部?
(7) 数値関数名=数値定義関数名|数値組込み関数名
(8) 値実引き数部=左括弧 値実引き数{コンマ 値実引き数}* 右括弧
(9) 値実引き数=式|実配列名
(10) 実配列名=配列名
(11) 乗除算演算子=星印|斜線
(12) 数値関数引用中の値実引き数の個数及び型は,その数値関数の定義における値仮引き数の個数及び型
と一致していなければならない。実配列は,対応する値仮引き数と同じ次元数をもたなければならな
い。
(13) 数値型の値実引き数を外部関数定義に渡す場合,外部関数定義及びそれを呼び出すプログラム単位に
おいて有効なarithmetic選択子は,一致していなければならない。
(14) プログラム単位中の式の中で引用されるすべての数値関数名は,組込み関数名であるか,又はそのプ
ログラム単位中のより早い位置に,内部関数定義による定義若しくはdeclare文による宣言がなけれ
ばならない。
5.3.3 例 構文の例を次に示す。
3*X−Y^2 (2)
――――― [JIS X 3003 pdf 25] ―――――
次のページ PDF 26
JIS X 3003:1993の引用国際規格 ISO 一覧
- ISO/IEC 10279:1991(IDT)
JIS X 3003:1993の国際規格 ICS 分類一覧
- 35 : 情報技術.事務機械 > 35.060 : 情報技術に使用される言語
JIS X 3003:1993の関連規格と引用規格一覧
- 規格番号
- 規格名称
- JISX0201:1997
- 7ビット及び8ビットの情報交換用符号化文字集合
- JISX0301:2002
- 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記