33.5.11 規格の設定
規格との仕様チェックを設定するコンパイラオプションについて,説明します。
(1) -StdMIAオプション
(a) 形式
-StdMIA{,13|,14}+ -noStdMIA
(c) 注意事項
-
-StdMIAオプション,-Std85オプション,-Std2002オプションは,同時に指定できません。同時に指定した場合は,警告のメッセージが出力され,次の優先順位に従ってオプションが有効となります。
-
-Std2002オプション
-
-Std85オプション
-
-StdMIAオプション
-
-
次のオプションは,-StdMIAオプションと背反となるため,同時に指定できません。同時に指定した場合は,-StdMIAオプションが有効となり,次のオプションが無効となります。
-V3Spec -StdVersion -CompatiM7 -CompatiV3 -H8Switch
-Cblctr -IgnoreLCC -JPN -CmDol -Comp5 -NumAccept
-V3Rec -EquivRule,NotAny -SQL -BinExtend -MaxDigits38
-IntResult,DecFloat40 -LiteralExtend -V3RecFCSpace -SQLDisp
-V3RecEased
-
-StdMIA,13オプションは,次のオプションと背反となるため,同時に指定できません。同時に指定した場合は,-StdMIA,13オプションが有効となり,次のオプションが無効となります。
-EquivRule,StdCode -Bin1Byte
-
このオプションは,自由形式正書法で書かれたCOBOL原始プログラムをコンパイルする場合には指定できません。指定した場合,エラーとなってコンパイルが中止されます。
(2) -Std85オプション
(a) 形式
-Std85{,{High|Middle|Low }|,Obso|,Report}+ -noStd85
(b) 機能
仕様チェック機能として,JIS仕様※の範囲外チェックや廃要素をチェックします。
仕様範囲外の記述や廃要素があると,警告レベルのエラーメッセージが出力されます。
- 注※
-
JIS X 3002-1992 電子計算機プログラムCOBOLの仕様
- -Std85,High
-
JIS仕様の範囲外チェックをします。
- -Std85,Middle
-
JIS仕様の中位集合範囲外(上位集合,JIS仕様の範囲外)チェックをします。
- -Std85,Low
-
JIS仕様の下位集合範囲外(中位集合,上位集合,JIS仕様の範囲外)チェックをします。
- -Std85,Obso
-
JIS仕様の廃要素をチェックします。
- -Std85,Report
-
JIS仕様の報告書作成機能をチェックします。
- -noStd85
-
-Std85オプションの指定を打ち消します。
(c) 注意事項
-
-Std85オプションは,次のオプションと背反となるため,同時に指定できません。同時に指定した場合は,-Std85オプションが有効となり,次のオプションが無効となります。
-V3Spec -StdVersion -CompatiM7 -CompatiV3 -H8Switch -Cblctr
-IgnoreLCC -JPN -CmDol -Comp5 -NumAccept -V3Rec
-EquivRule,NotAny -SQL -BinExtend -MaxDigits38
-IntResult,DecFloat40 -LiteralExtend -V3RecFCSpace -SQLDisp
-V3RecEased
-
このオプションは,自由形式正書法で書かれたCOBOL原始プログラムをコンパイルする場合には指定できません。指定した場合,エラーとなってコンパイルが中止されます。
(3) -Std2002オプション
(a) 形式
-Std2002{,OutRange|,Obso|,Archaic}+ -noStd2002
(c) 注意事項
-
-Std2002オプションは,次のオプションと背反関係にあり同時に指定した場合は,-Std2002オプションを有効とします。
-V3Spec -StdVersion -CompatiM7 -CompatiV3 -H8Switch -Cblctr
-IgnoreLCC -JPN -CmDol -Comp5 -NumAccept -V3Rec
-EquivRule,NotAny -SQL -BinExtend -MaxDigits38
-IntResult,DecFloat40 -LiteralExtend -V3RecFCSpace -SQLDisp
-V3RecEased
(4) -StdVersionオプション
(a) 形式
-StdVersion,{1|2} -noStdVersion
(b) 機能
第1次または第2次規格の言語仕様の解釈でコンパイルするためのオプションです。このオプションを指定しないときは,第3次規格以降の解釈でコンパイルされます。
- -StdVersion,1
- -StdVersion,2
- -noStdVersion
-
-StdVersionオプションの指定を打ち消します。
このオプションを指定した場合,第3次規格以降の解釈※でコンパイルします。
-StdVersionオプション指定時,および未指定時の言語仕様の相違を,次に示します。
差異の生じる言語仕様 |
第1次規格 |
第2次規格 |
第3次規格以降 |
---|---|---|---|
比較条件の略記法のNOT |
略記法の条件の中のNOTが比較演算子の一部とも取れるときには論理演算子とみなす。 |
NOTの直後にGREATER,>,LESS,<,EQUAL,=,>=,<=のどれかが続くとき,NOTは比較条件の一部となる。これ以外のNOTは論理演算子とみなす。 |
|
MOVE文の位取り |
送り出し側作用対象が位取りした整数項目(PICTURE句の右端文字がP)で,受け取り側作用対象が英数字編集項目の場合,あとに続くゼロを切り捨てて空白とする。 |
左記の場合,あとに続くゼロを切り捨てない。 |
|
UNSTRING文のDELIMITED BY ALL指定 |
複数の連続する区切り文字が現れた場合,区切り文字の受け取り領域に入るだけ区切り文字を移す。 |
左記の場合,区切り文字の受け取り領域には1個(1組)の区切り文字しか移さない。 |
|
COPY文の展開 |
第1次規格の仕様に従った書き方は旧仕様として展開する。 |
第2次規格以降の仕様に従ってCOPY文を展開する。 |
|
JUST句の処理 |
JUST句の指定がある英数字,英字,英数字編集にVALUE句で初期値を与える場合,JUST句の機能を働かせる。 |
左記の場合,JUST句の機能を働かせない。 |
|
WRITE文のADVANCINGの仮定 |
1ファイルに対する複数個のWRITE文でADVANCING指定があるものとないものを混用した場合,ADVANCING指定のないものに対してはBEFORE ADVANCING 1かAFTER ADVANCING 1のどちらかを仮定する。どちらを仮定するかはWRITE文の指定の内容による。 |
左記の場合,常にAFTER ADVANCING 1を仮定する。 |
|
PERFORM文のVARYING AFTER指定がある場合の反復制御変数を初期化する位置 |
|
TEST AFTER指定時もTEST BEFORE指定時も,外側のループの反復制御変数をBY指定の値で増加させてから,内側の反復制御変数をFROM指定で再び初期化する。 |
|
SELECT OPTIONAL句 |
覚え書きとする。 |
覚え書きとしない。 |
|
CURRENCY SIGN句に指定できる定数 |
"=","/"が指定できる。 |
"=","/"は指定できない。 |
(c) 注意事項
-
このオプションは,自由形式正書法で書かれたCOBOL原始プログラムをコンパイルする場合には指定できません。指定した場合,エラーとなってコンパイルが中止されます。