COBOL2002 使用の手引 手引編


32.5.11 規格の設定

規格との仕様チェックを設定するコンパイラオプションについて,説明します。

〈この項の構成〉

(1) -StdMIAオプション

(a) 形式

-StdMIA{,13|,14}+
-noStdMIA

(b) 機能

仕様チェック機能として,MIA仕様範囲外チェックします。

仕様範囲外の記述があると,警告レベルのエラーメッセージが出力されます。

注※

MULTIVENDOR INTEGRATION ARCHITECTURE VERSION 1.3および1.4(日本電信電話株式会社)の仕様(JIS X 3002-1988 電子計算機プログラムCOBOLの仕様が前提)

-StdMIA,13

MIAバージョン1.3仕様を範囲外チェックします。

-StdMIA,14

MIAバージョン1.4仕様を範囲外チェックします。

なお,このオプションを指定すると,-StdMIA,13サブオプションを仮定します。

-noStdMIA

-StdMIAオプションの指定を打ち消します。

(c) 注意事項

  • -StdMIAオプション,-Std85オプション,-Std2002オプションは,同時に指定できません。同時に指定した場合は,警告のメッセージが出力され,次の優先順位に従ってオプションが有効となります。

    1. -Std2002オプション

    2. -Std85オプション

    3. -StdMIAオプション

  • 次のオプションは,-StdMIAオプションと背反となるため,同時に指定できません。同時に指定した場合は,-StdMIAオプションが有効となり,次のオプションが無効となります。

    -V3Spec -StdVersion -CompatiV3 -H8Switch

    -Cblctr -IgnoreLCC -JPN -CmDol -Comp5 -NumAccept

    -V3Rec -EquivRule,NotAny -SQL -BinExtend -MaxDigits38

    -IntResult,DecFloat40 -LiteralExtend -V3RecFCSpace -SQLDisp

  • -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 -CompatiV3 -H8Switch -Cblctr

    -IgnoreLCC -JPN -CmDol -Comp5 -NumAccept -V3Rec

    -EquivRule,NotAny -SQL -BinExtend -MaxDigits38

    -IntResult,DecFloat40 -LiteralExtend -V3RecFCSpace -SQLDisp

  • このオプションは,自由形式正書法で書かれたCOBOL原始プログラムをコンパイルする場合には指定できません。指定した場合,エラーとなってコンパイルが中止されます。

(3) -Std2002オプション

(a) 形式

-Std2002{,OutRange|,Obso|,Archaic}+
-noStd2002

(b) 機能

仕様チェック機能として,COBOL2002仕様の範囲外チェックや廃要素をチェックします。

仕様範囲外の記述や廃要素があると,警告レベルのエラーメッセージが出力されます。

-Std2002,OutRange

COBOL2002仕様の範囲外チェックをします。

-Std2002,Obso

COBOL2002仕様の廃要素をチェックします。

-Std2002,Archaic

COBOL2002仕様の古典的要素をチェックします。

-noStd2002

-Std2002オプションの指定を打ち消します。

(c) 注意事項

  • -Std2002オプションは,次のオプションと背反関係にあり同時に指定した場合は,-Std2002オプションを有効とします。

    -V3Spec -StdVersion -CompatiV3 -H8Switch -Cblctr

    -IgnoreLCC -JPN -CmDol -Comp5 -NumAccept -V3Rec

    -EquivRule,NotAny -SQL -BinExtend -MaxDigits38

    -IntResult,DecFloat40 -LiteralExtend -V3RecFCSpace -SQLDisp

(4) -StdVersionオプション

(a) 形式

-StdVersion,{1|2}
-noStdVersion

(b) 機能

第1次または第2次規格の言語仕様の解釈でコンパイルするためのオプションです。このオプションを指定しないときは,第3次規格以降の解釈でコンパイルされます。

-StdVersion,1

第1次規格(JIS72,ISO72,ANSI68)の解釈でコンパイルします。

-StdVersion,2

第2次規格(JIS80,ISO78,ANSI74)の解釈でコンパイルします。

-noStdVersion

-StdVersionオプションの指定を打ち消します。

このオプションを指定した場合,第3次規格以降の解釈でコンパイルします。

注※

第3次規格以降の解釈とは,次の二つの規格の解釈を指します。

  • 第3次規格(ISO85,ANSI85,JIS88,JIS92)

  • 第4次規格(ISO/IEC 1989:2002,JIS X3002:2011)

-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指定時

    外側のループの反復制御変数をBY指定の値で増加させてから,内側のループの反復制御変数をFROM指定の変数で再び初期化する。

  • TEST BEFORE指定時

    内側のループの反復制御変数FROM指定の変数で初期化してから,外側のループの反復制御変数をBY指定の値で増加させる。

TEST AFTER指定時もTEST BEFORE指定時も,外側のループの反復制御変数をBY指定の値で増加させてから,内側の反復制御変数をFROM指定で再び初期化する。

SELECT OPTIONAL句

覚え書きとする。

覚え書きとしない。

CURRENCY SIGN句に指定できる定数

"=","/"が指定できる。

"=","/"は指定できない。

(c) 注意事項

  • このオプションは,自由形式正書法で書かれたCOBOL原始プログラムをコンパイルする場合には指定できません。指定した場合,エラーとなってコンパイルが中止されます。