COBOL2002 言語 拡張仕様編


付録C STANDARDオプションと-StdVersionオプションを指定した場合の仕様の相違

ここでは,VOS3 COBOL85でSTANDARD=(1)またはSTANDARD=(2)オプションを指定した場合と,COBOL2002で-StdVersion,1または-StdVersion,2オプションを指定した場合の仕様の相違点について説明する。

なお,-StdVersionオプションについては,マニュアル「COBOL2002 ユーザーズガイド」または「COBOL2002 使用の手引 手引編」を参照のこと。

表C‒1 VOS3 COBOL85とCOBOL2002の仕様の比較

項番

差異の生じる言語仕様

VOS3 COBOL85

COBOL2002

STANDARD=(1)指定時

STANDARD=(2)指定時

-StdVersion,1指定時

-StdVersion,2指定時

1

CURRENCY SIGN句で指定する定数

L,=,/を指定できる。

L,=,/を指定できない。

=,/が指定できる。

=,/が指定できない。

2

SELECT OPTIONAL句

覚え書きとする。

覚え書きとしない。

VOS3 COBOL85と同じ。

3

RESERVE句

コンパイラが自動的に割り当てる一つの入出力領域に加えて,RESERVE句で指定した個数の入出力領域を確保する。

なお,RESERVE句に補助語ALTERNATEが書かれていると,STANDARDの指定にかかわらずSTANDARD=(1)の仕様が使用される。

RESERVE句で指定した個数の入出力領域を確保する。

覚え書きとする。

4

比較条件の略記法におけるNOT

略記法の条件中のNOTが,比較演算子一部とも論理演算子とも取れる場合は,論理演算子とみなす。

NOTの直後にGREATER,>,LESS,<,EQUAL,=,>=,<=のどれかが続くとき,NOTは比較条件の一部となる。これ以外のNOTは論理演算子とみなす。

VOS3 COBOL85と同じ。

5

MOVE文の位取り

送り側が位取りした整数項目(PICTURE句の右端文字がPのとき)受け取り側が英数字項目または英数字編集項目であれば,あとに続くゼロは切り捨て空白とする。

左記の場合,あとに続くゼロを切り捨てない。

VOS3 COBOL85と同じ。

6

UNSTRING文のDELIMITED BY ALL指定

二つ以上の連続する区切り文字が出現した場合,区切り文字の受け取り領域に入るだけ,区切り文字を移す。

二つ以上の連続する区切り文字が出現した場合,区切り文字の受け取り領域には1個(1組)の区切り文字しか移さない。

VOS3 COBOL85と同じ。

7

COPY文の展開

第1次規格の仕様に従った書き方は,旧仕様書として展開する。

第1次規格の仕様に従っていない書き方は,第2次規格の仕様に従ったCOPY文とみなし展開する。

第2次規格以降の仕様に従ってCOPY文を展開する。

VOS3 COBOL85と同じ。

8

独立区分中のPERFORM文で固定区分中の手続きを呼び出したときの扱い

手続きを出て,呼び出し元に戻ると,独立区分は再度初期設定される。

手続きを出て,呼び出し元に戻ると,独立区分は呼び出し時と同じである。

COBOL2002では,VOS3 COBOL85の区分化機能は未サポートである。

9

JUST句の処理

JUST句の指定がある英数字,英字,英数字編集にVALUE句で初期値を与えるとき,JUST句の機能を働かせる。

左記の場合,JUST句の機能を働かせない。

VOS3 COBOL85と同じ。

10

WRITE文のADVANCING句の仮定

一つのファイルに対する複数個のWRITE文でADVANCING句があるものとないものを混用した場合,ADVANCING句のないものに対してBEFORE ADVANCING 1かAFTER ADVANCING 1のどちらかを仮定する。

ADVANCING句指定のあるWRITE文の指定がすべてBEFOREのときBEFORE ADVANCING 1,すべてAFTERのときAFTER ADVANCING 1,BEFOREとAFTER混在のときBEFORE ADVANCING 1を仮定する。

左記の場合,常にAFTER ADVANCING 1を仮定する。

VOS3 COBOL85と同じ。

11

EVALUATE文のALSOの指定

選択主体,または選択対象を複数記述する場合は,それぞれを空白で区切って指定する(VOS3 COBOL85では,選択主体,または選択対象を複数記述する場合,ALSO指定で区切ってもよい)。

選択主体,および選択対象を複数記述する場合,ALSO指定は必須である。

12

PERFORM文のVARYING…AFTER指定(一つのPERFORM文での2〜3重ループ)がある場合の反復制御変数の制御方法

反復制御変数の初期化を行う位置を次のようにする。

  1. TEST AFTER句指定時

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

  2. TEST BEFORE句指定時

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

VOS3 COBOL85と同じ。

13

END−動詞の記述

四則演算,入出力などの文が条件文となっているときだけEND−動詞を記述できる。条件文と文の対応を次に示す。

ON SIZE ERRORの場合
  • ADD

  • SUBTRACT

  • MULTIPLY

  • DIVIDE

  • COMPUTE

AT END/AT EOP/INVALID KEY の場合
  • DELETE

  • READ

  • REWRITE

  • WRITE

  • START

ON OVERFLOW/ON EXCEPTIONの場合
  • CALL

  • STRING

  • UNSTRING

左記に示した文が無条件のときでもEND−動詞を記述できる。

14

SEARCH文での部分参照の指定

第3次規格でのサポートであり,部分参照は指定できない。

制限のない個所に部分参照を指定できる。