このページでは,JIS規格との相違を述べます。
次の文献(いずれか)をご用意のうえ,お読みください。
(1) 日本工業規格 Full BASIC (JIS X3003-1993),日本規格協会
(2) JISハンドブック 情報処理 プログラム言語編,日本規格協会
JIS規格の本文は,日本工業標準調査会
「JIS検索」 のページで,JIS規格番号に「X3003」と入力して閲覧することもできます。
半角カナや漢字を使用する場合に生じる相違は無視しています。
2.1
この処理系はいずれの機能単位に対しても規格合致ではない。
2.4
(5) 翻訳時のエラーになって実行できない場合がある。(5.1.5参照)
4.2.1
平行単位は書けない。
5.1.5
数値式中の数値定数のあふれが翻訳時にエラーになることがある。
7.1
配列の添字は,-2147483647〜2147483647の範囲になければならない。
9.3 プログラム連鎖
9.3.5(2) 引数の個数や型が一致しない場合でも例外状態にならないことがある。
(引数を文字列に変換して処理するので,数値や配列を単純文字列変数で受けても例外状態にならない。)
9.3.5(4) ARITHMETIC選択子の違いがあっても正常に動作し,例外を生成しない。
10.4
書式項目として用いられる以外の文字,および,数字位置の直後以外に書かれるコンマは,即値文字として認識する。
10.5.4(5.3)
MAT PRINT文を実行するとき,JISの規定に追加して,更に,最後に行末を生成する。
(もし,そうしないとすると,MAT PRINT A,BではAとBの間に改行が出力されるのに対し,MAT PRINT AとMAT PRINT Bを続けて実行したときには間に改行が出力されないことになる。)
拡充ファイルの機能は実現していない。
11.1.4
(10) 記録の最大長は,open文で指定した数値をそのまま返す。
11.1.4
(10.2) ASK #0: RECSIZE a$ n を実行すると,n=2147483647になる。
11.4.5
(18) extype 8101 を内部形式記録にも準用する。
12.1.4
when本体内部で起きた例外状態は,すべて続行不能例外として扱われる。これは,12.1.4.(4)(d)に規定されるEXIT HANDLERを実行したときに意味を持つ。
12.1.4(4)
when-in区に属する例外処理区で,when-in区を囲むdo区,for区から抜けることを意味するexit-do文,exit-for文を実行すると,例外処理区から出ることになる。(規格には,これらの文の効果についての記述が欠けている。)
12.1.4.(4)(d)
“その例外状態の行を含む最も内側の保護区”を,現在,例外処理を実行中の保護区(現在実行中の例外処理区を呼び出した保護区)と解釈する。
12.1.4(6)
「例外処理区」と書かれた部分は「Handler区」であると解釈する。
(そう解釈しないと,8.2.4(3)の記述との整合性が失われる。)
12.1.4(8)
例外処理区の内部で新たに起きた続行可能例外には,この規定を適用しない。
12.1.4(9.1)
handler区で続行不能例外が発生すると,ただちにプログラム単位の外側に例外が伝達される。
12.1.6(9)
def文で例外状態が起きた場合は,12.1.4(9)の規定に従う。
(JISの記述は誤りと思われる)
12.2.4(6)
trace文の実行結果は,若干,規格と食い違う点がある。
特に,代入文を実行しても変数値が変化しなければ報告しない。
12.2.6(1)
値が変化した配列要素のみ報告する。
13.3.4
(3.1) 書式項目が不足する場合には,出力欄を星印で埋める。
10.4.5が要求するような書式なしの表現での値の報告はしない。
13.3.5
(4) エラーとして扱わない。
Note. 図形出力先がビットマップ以外の場合には上記以外にも非互換がある。
この機能は実現されていない。
この機能は実現されていない。
17.4
(3) 入力応答はプログラム文字に限定しない。また,行末文字であってもその文字自体を代入する。行末を表すCHR$(13)&CHR$(10)は2文字として扱う。
(9) エコー表示はキーボードからの入力にのみ可能。ファイルを開くと,エコー表示は無効に設定される。
18.2
DEF行および手続き定義の最初の行に書く定義関数名(あるいはルーチン名)と引数,および,関数定義let文の左辺に書く定義関数名に(27)〜(30)で拡張された形の識別名を使用することを認めない。
構文規則 5.6.2,6.6.2,7.1.2に従って書かれる識別名に(27)〜(30)で拡張された形の識別名を使用することを認めない。
修飾識別名の構文規則(26)において,定義関数名,数値単純変数名,文字列単純変数名,仮配列宣言に(27)〜(30)で拡張された形の識別名を使用することを認めない。
share文,public文で宣言する数値関数は,モジュール本体とarithmetic選択子が同じでなければならない。
18.2(7)
OPTION ARITHMETIC,あるいは MODULE OPTION ARITHMEICを書く場合は,PUBLIC NUMERIC,および SHARE NUMERICより先に書かなければならない。
OPTION BASE,あるいは MODULE OPTION BASEを書く場合は,PUBLIC文,SHARE文による配列宣言より先に書かなければならない。
18.2(32)
無視する。
18.4
モジュールに含まれる外部副プログラムおよび外部絵はpublic宣言されているものとみなす。外部副プログラムおよび外部絵をshare宣言してもエラーにならないが無視する。