Rational Developer for System z
COBOL for Windows バージョン 7.5 言語解説書


付録A. IBM 拡張

IBM 拡張とは、付録H. 業界仕様 にリストされた COBOL 標準ではなく、IBM によって定義されたフィーチャー、構文規則、または振る舞いを指します。

IBM 拡張言語エレメント (表 57) には、IBM 拡張が要旨と共に記載されています。標準の振る舞いが分かりにくい場合は、それを大括弧 [ ] で囲んで示しています。拡張については、この文書の全編にわたって詳しく説明していますが、拡張として詳細に示されてはいません。

IBM 拡張の多くは、その構文によって標準言語と区別されています。それ以外については、コンパイラー・オプションを使用して標準または拡張の振る舞いのいずれかを選択します。通常、関連するコンパイラー・オプションが詳細規則に記載されています。コンパイラー・オプションの詳細については、「COBOL for Windows プログラミング・ガイド」を参照してください。

項目が拡張としてリストされている場合は、すべての関連規則もまた拡張になります。例えば、DBCS 文字用の USAGE DISPLAY-1 は拡張としてリストされています。したがって、これをステートメントおよび文節で多数使用する場合もまた拡張になります。ただし、個別にはリストされていません。

表 57. IBM 拡張言語エレメント
言語領域 拡張エレメント
COBOL ワード

マルチバイト文字で書かれたユーザー定義語

マルチバイト文字で書かれたシステム名

クラス名 (オブジェクト指向用)

メソッド名

国別文字サポート (Unicode サポート)

USAGE NATIONAL を使用した UTF-16 に対するサポート

データ・カテゴリーが国別、国別編集、数字、数字編集、外部 10 進数、および外部浮動小数点の場合の使用法 NATIONAL

NATIONAL 句を使用した GROUP-USAGE 文節

国別リテラル (基本および 16 進数)

表意定数 SPACE、ZERO、QUOTE、HIGH-VALUES、LOW-VALUES、ALL リテラルの国別文字値

データ変換のための組み込み関数

  • DISPLAY-OF
  • NATIONAL-OF

UPPER-CASE 関数と LOWER-CASE 関数による大文字小文字の拡張マッピング

暗黙の項目 特殊オブジェクト・リファレンス
  • SELF
  • SUPER

特殊レジスター

  • ADDRESS OF
  • JNIENVPTR
  • LENGTH OF
  • RETURN-CODE
  • SHIFT-IN
  • SHIFT-OUT
  • SORT-CONTROL
  • SORT-CORE-SIZE
  • SORT-FILE-SIZE
  • SORT-MESSAGE
  • SORT-MODE-SIZE
  • SORT-RETURN
  • TALLY
  • WHEN-COMPILED
  • XML-CODE
  • XML-EVENT
  • XML-NTEXT
  • XML-TEXT
表意定数

表意定数 QUOTE の値としてアポストロフィ (') を選択

ポインター用およびオブジェクト・リファレンス用の NULL/NULLS

リテラル

区切り文字を開始および終了するときの引用符 (“) の代わりとしてアポストロフィ (') を使用。

英数字リテラルにおける単一バイト文字およびマルチバイト文字の混在 (混合リテラル)。

開始区切り文字 X” および X' によって定義された、英数字リテラルに対する 16 進数表記。

開始区切り文字 Z“ および Z' によって定義された、ヌル終了英数字リテラル。

開始区切り文字 N”、N'、G“ によって定義された、DBCS リテラル。N” および N' は、NSYMBOL(DBCS) コンパイラー・オプションが有効であるときは DBCS として定義されます。

連続した英数字リテラル (最初のリテラルを継続される行の列 72 で終了し、次のリテラルを継続行内で単一引用符を使用して開始することにより、2 つの連続した英数字リテラルをコーディングします。)

リテラルの内容を国別文字として保管するための国別リテラル N“、 N'、 NX”、 NX'。N“ および N' は、NSYMBOL(NATIONAL) コンパイラー・オプションが 有効である場合は国別として定義されます。

19 (から 31) 桁の固定小数点数字リテラル。[標準 COBOL 85 では、最大 18 桁を指定します。]

浮動小数点数字リテラル。

コメント

見出し部ヘッダーの前のコメント行。

マルチバイト文字を含むコメント行およびコメント記入項目。

終了マーカー 以下の終了マーカーがあります。
  • END CLASS
  • END FACTORY
  • END METHOD
  • END OBJECT
索引付けと添え字付け

テーブルと別のテーブルに定義された索引名との照会。

相対添え字付けにおける演算子 + または - の後の正符号付き整数リテラルの指定。

2000 年言語拡張および日付フィールド

DATE FORMAT 文節

ウィンドウ化日付フィールド、拡張日付フィールド、年末尾型日付フィールド、互換日付フィールド、日付形式、および世紀ウィンドウ。

以下の組み込み関数。

  • DATEVAL
  • UNDATE
  • YEARWINDOW
  • DATE-TO-YYYYMMDD
  • DAY-TO-YYYYDDD
  • YEAR-TO-YYYY
プログラムの見出し部

IDENTIFICATION の省略 ID

RECURSIVE 文節

PROGRAM-ID、AUTHOR、INSTALLATION、DATE-WRITTEN、および SECURITY 段落ヘッダーの後のオプショナル分離文字ピリオド。[標準 COBOL 85 では、それぞれの段落ヘッダーの後にピリオドが必要です。]

PROGRAM-ID 段落内のプログラム名の後のオプショナル分離文字ピリオド。[標準 COBOL 85 では、プログラム名の後にピリオドが必要です。]

PROGRAM-ID 段落内のプログラム名を示す英数字リテラル。長さ 160 文字までのプログラム名。[標準 COBOL 85 では、プログラム名をユーザー定義語として指定する必要があります。]

終了マーカー

リテラルのプログラム名。[標準 COBOL 85 では、プログラム名をユーザー定義語として指定する必要があります。]

オブジェクト指向の構造

クラス定義内:

  • CLASS-ID 段落
  • INHERITS 文節
  • END CLASS マーカー

メソッド定義内:

  • METHOD-ID 段落
  • EXIT METHOD ステートメント
  • END METHOD マーカー
構成セクション REPOSITORY 段落
SPECIAL-NAMES 段落

文節のオプションの順序。[標準 COBOL 85 では、文節を構文図に示されている順にコーディングする必要があります。]

文節がコーディングされていない場合に、最後の文節の後にピリオドを加えるかどうかのオプション。[標準 COBOL 85 では、文節がコーディングされていない場合にもピリオドが必要です。]

複数の CURRENCY SIGN 文節。[標準 COBOL 85 では、単一の CURRENCY SIGN 文節を許可します。]

CURRENCY SIGN 文節の WITH PICTURE SYMBOL 句

CURRENCY SIGN 文節での複数文字および大/小文字混合の通貨符号 (WITH PICTURE SYMBOL 句が指定されている場合)。[標準 COBOL 85 では 1 つの文字のみが許可され、これが通貨符号および通貨ピクチャー・シンボルになります。標準通貨符号は、以下のものであってはなりません。

  • 標準ピクチャー・シンボルのいずれかと同じ文字
  • 0 から 9 桁
  • いずれかの特殊文字 * + - , ; ( ) ” = /
  • スペース ]

通貨符号としての小文字の英字の使用。[標準 COBOL 85 では、大文字のみを許可します。]

ロケールの設定でマルチバイト・コード・ページが指定されている場合、SYMBOLIC CHARACTERS 文節は使用不可。

INPUT-OUTPUT SECTION、FILE-CONTROL 段落

“FILE-CONTROL.” のオプション (INPUT-OUTPUT SECTION が指定されていて、ファイル制御段落が指定されていない場合、およびコンパイル単位にファイルが 定義されていない場合)。[標準 COBOL 85 では、“INPUT-OUTPUT SECTION.” がコーディングされている場合、 “FILE-CONTROL.” がコーディングされる必要があります。]

“FILE CONTROL.” 構文が指定されていてコンパイル単位にファイルが定義されていない場合の、ファイル制御段落のオプション。[標準 COBOL 85 では、“INPUT-OUTPUT SECTION.” がコーディングされている場合、ファイル制御段落がコーディングされる必要があります。]

ASSIGN 文節の USING 句

PASSWORD 文節

FILE STATUS 文節の 2 番目のデータ名

ALTERNATE RECORD KEY 文節の RECORD のオプション。[標準 COBOL 85 では、ワード RECORD が必要です。]

RESERVE 文節がないと実行に影響を及ぼします。

数字、数字編集、英数字編集、英字、内部浮動小数点、外部浮動小数点、国別、国別編集、または DBCS の基本項目あるいは代替レコード・キー・データ項目。 [標準 COBOL 85 では、キーが英数字でなければなりません。]

可変長レコードを含む索引ファイル用の最小レコード・サイズの範囲外で定義された基本または代替レコード・キー。[標準 COBOL 85 では、基本および代替レコード・キーを最小レコード・サイズ内に収めることが必要です。]

レコードへの降順での順次アクセス。[標準 COBOL 85 では、昇順アクセスのみ提供しています。]

FILE STATUS 文節における、USAGE DISPLAY または NATIONAL の数値データ項目。[標準 COBOL 85 では、英数字ファイル状況データ項目が必要です。]

ORGANIZATION IS LINE SEQUENTIAL 文節および行順次ファイル制御形式

PADDING CHARACTER 文節の国別リテラル

INPUT-OUTPUT SECTION、I-O-CONTROL 段落

APPLY WRITE-ONLY 文節

順次、索引付き、およびソート・マージ形式の I-O-control 項目の SAME 文節に 1 つのファイル名のみを指定。[標準 COBOL 85 では、最低でも 2 つのファイル名が必要です。]

RERUN 文節のキーワード ON のオプション。[標準 COBOL 85 では、ON をコーディングする必要があります。]

行順次形式の I-O-control 項目

ソート・マージ I-O-control 項目の RERUN 文節

THREAD コンパイラー・オプションを使用している場合、RERUN 文節は使用不可

RERUN 文節がないと、NOTHREAD コンパイラー・オプション使用時の実行に影響を与えます。

データ部 LOCAL-STORAGE SECTION

リンケージ・セクションの GLOBAL 文節

データ記述項目の同じ階層レベルにある他のレベル番号よりも低いレベル番号の指定。[標準 COBOL 85 では、階層の同じレベルにあるすべての基本項目またはグループ項目には同一のレベル番号を割り当てる必要があります。]

内部浮動小数点、外部浮動小数点、DBCS、国別、および国別編集のデータ・カテゴリー

使用法 NATIONAL の数字データ・カテゴリー

使用法 NATIONAL の数字編集データ・カテゴリー

ファイル・セクション

LABEL RECORDS 文節のデータ名 (ユーザー・ラベルの指定用)

RECORDING MODE 文節

行順次形式ファイル記述項目

ソート・マージ・ファイル記述項目

以下の文節:

  • BLOCK CONTAINS
  • LABEL RECORDS
  • VALUE OF
  • LINAGE
  • CODE-SET
  • WITH FOOTING
  • LINES AT
VALUE OF 文節 VALUE 文節がないと、SD の元で指定された場合の実行に影響します。
DATA RECORDS 文節 指定したデータ名 に対する 01 レコード記述項目のオプション。[標準 COBOL 85 では、同じデータ名 を持つ 01 レコードを指定する必要があります。]
LINAGE 文節 EXTEND モードでオープンされたファイルに対する LINAGE の指定
データ記述項目 DATE-FORMAT 文節
BLANK WHEN ZERO 文節 ZERO に対する代替スペル ZEROS および ZEROES
GLOBAL 文節 リンケージ・セクションでの GLOBAL の指定
INDEXED BY 句 固有でない非参照索引名
OCCURS 文節

可変長テーブルに対する “integer-1 TO” の省略

複合 OCCURS DEPENDING ON。[標準 COBOL 85 では、OCCURS DEPENDING ON を含む項目の後ろには従属項目のみが 続き、OCCURS DEPENDING ON を含む項目が OCCURS DEPENDING ON を含む項目に従属しないようにする必要があります。]

キー名が固有でない場合の、修飾子なしで指定されたキーの暗黙の修飾

INDEXED BY 句の指定がないテーブルの索引付けによる参照

ASCENDING/DESCENDING KEY 句の、 USAGE COMPUTATIONAL-1、 COMPUTATIONAL-2、 COMPUTATIONAL-3、 COMPUTATIONAL-4、 および COMPUTATIONAL-5 のキー

参照されない固有でない索引名の受け入れ

PICTURE 文節 31 から 50 までの文字を含む PICTURE 文字ストリング。[標準 COBOL 85 では、文字の長さは 30 文字までです。]

ピクチャー・シンボル G および N

ピクチャー・シンボル E および外部浮動小数点ピクチャー・フォーマット

PICTURE 文節がデータ記述項目の最後の文節ではない場合の、 直後に分離文字コンマまたは分離文字セミコロンが付く末尾コンマ挿入文字または末尾ピリオド挿入文字のコーディング [標準 COBOL 85 では、コンマまたはピリオドで終了するピクチャーを含む PICTURE 文節は項目内の最後の文節でなければならず、その直後に分離文字ピリオドを付ける必要があります。]

CURRENCY コンパイラー・オプションを使用した通貨符号および通貨記号の選択

大文字小文字が区別される通貨記号

USAGE DISPLAY および PACKED-DECIMAL の数値項目および USAGE DISPLAY の数字編集項目に対する最大 31 桁の指定

BINARY、COMPUTATIONAL、または COMPUTATIONAL-4 を使用して記述されたデータ項目の値に対する TRUNC コンパイラー・オプションと BINARY コンパイラー・オプションの影響

REDEFINES 文節 再定義データ項目の REDEFINES の指定

従属レベルでの、再定義データ項目よりサイズが大きいデータ項目の再定義の指定

SYNCHRONIZED 文節 レベル 01 項目に対する SYNCHRONIZED の指定
USAGE 文節

句:

  • NATIVE
  • COMP-1 および COMPUTATIONAL-1
  • COMP-2 および COMPUTATIONAL-2
  • COMP-3 および COMPUTATIONAL-3
  • COMP-4 および COMPUTATIONAL-4
  • COMP-5 および COMPUTATIONAL-5
  • DISPLAY-1
  • OBJECT REFERENCE
  • NATIONAL
  • POINTER
  • PROCEDURE-POINTER
  • FUNCTION-POINTER

USAGE INDEX の項目に対する SYNCHRONIZED 文節の使用

条件名項目の VALUE 文節

ファイル・セクションおよびリンケージ・セクションにおける条件名項目以外の VALUE 文節

DISPLAY 以外の USAGE を持つグループでの条件名項目に対する VALUE 文節

ロケールで定義する照合シーケンスを使用して、THROUGH 句の値の範囲を指定します。

VALUE IS NULL および VALUE IS NULLS

手続き部

セクション名の省略

セクション名が省略されている場合の段落名の省略

メソッド、ファクトリー、またはオブジェクトの手続き部

手続き部のヘッダーで USING 句を使用しないリンケージ・セクションのデータ項目の参照 (それらのデータ名 が ADDRESS OF 句または ADDRESS OF 特殊レジスターのオペランドである場合)

ステートメント

  • ENTRY
  • EXIT METHOD
  • GOBACK
  • INVOKE
  • XML PARSE
  • XML GENERATE
手続き部のヘッダー

BY VALUE 句

RETURNING 句

データ項目の記述に REDEFINES 文節がある場合の USING 文節でのデータ項目の指定

USING 句内での所定のデータ項目の 複数インスタンスの指定

メソッド定義、ファクトリー定義、およびオブジェクト定義のフォーマット

宣言型プロシージャー

LABEL 宣言

アクティブ宣言の実行

プロシージャー

優先順位番号 を正の符号付き数字リテラルとして指定。[標準 COBOL 85 では、符号なし整数でなければなりません。]

宣言の後、または宣言がない場合のセクション・ヘッダーの省略。[標準 COBOL 85 では、“DECLARATIVES.” 構文の後ろ、および “END DECLARATIVES.” 構文の後ろにセクション・ヘッダーが必要です。]

宣言がない場合の初期段落名 の省略。[標準 COBOL 85 では、以下の場合に段落名が必要です。

  • 宣言型プロシージャーにステートメントがある場合は、USE ステートメントの後
  • 宣言型プロシージャーの外部のセクション・ヘッダーの後ろ
  • 宣言がない場合は、プロシージャー・ステートメント (ある場合) の前

また、標準 COBOL 85 ではプロシージャー・ステートメントを段落内に含めることが必要です。]

セクション内に含まれていない段落の指定 (セクション内に含まれている段落がある場合でも指定できる)。[標準 COBOL 85 では、宣言がない場合を除いて、段落はセクション内にある必要があります。標準 COBOL 85 では、すべての段落をセクション内に含めるか、またはまったく含めない必要があります。]

条件式

DBCS および KANJI クラス条件

NUMERIC クラス・テストにおける USAGE COMPUTATIONAL-3 または USAGE PACKED-DECIMAL データ項目の指定

比較条件

英数字、DBCS、または国別リテラルを括弧で囲む

データ・ポインター・フォーマット、プロシージャー・ポインターおよび関数ポインター・フォーマット、およびオブジェクト・リファレンス・フォーマット

索引名の演算式との比較

簡略複合比較条件内の括弧の使用

CORRESPONDING 句 充てん項目に従属する ID の指定
INVALID KEY 句 INVALID KEY 句および適当な EXCEPTION/ERROR プロシージャーの省略。[標準 COBOL 85 では、最低でも上記の 1 つが必要です。]
ACCEPT ステートメント

FROM 句の environment-name オペランド

DATE YYYYMMDD 句

DAY YYYYDDD 句

ADD ステートメント 18 桁より大きいオペランドの合成
CALL ステートメント

呼び出されるプログラムを識別するためのプロシージャー・ポインターおよび関数ポインターのオペランド

以下の句:

  • ADDRESS OF
  • LENGTH OF
  • OMITTED
  • BY VALUE
  • RETURNING

英字またはゾーン 10 進数データ項目での呼び出されるプログラム名の指定

従属グループ項目として定義された引数の指定。[標準 COBOL 85 では、引数はレベル 01 で定義された基本データ項目またはグループ項目である必要があります。]

CANCEL ステートメント

英字またはゾーン 10 進数データ項目での取り消すプログラム名の指定

取り消すプログラムの名前に対する PGMNAME コンパイラー・オプションの影響

CLOSE ステートメント

WITH NO REWIND 句

行順次形式

COMPUTE ステートメント

等号 (=) に代わるワード EQUAL の使用

DISPLAY ステートメント

UPON 句の environment-name オペランド

符号付き数字リテラルおよび非整数数字リテラルの表示

DIVIDE ステートメント

18 桁より大きいオペランドの合成

EXIT ステートメント EXIT ステートメントの前または後にステートメントを持つ文の中、または別の文を持つ段落の中での EXIT ステートメントの指定。[標準 COBOL 85 では、EXIT ステートメントは、段落内の唯一の文である文の中に自身によって指定する必要があります。]

EXIT PROGRAM ステートメント

命令ステートメントのシーケンス内の最後のステートメントに先立つ EXIT PROGRAM の指定。[標準 COBOL 85 では、EXIT PROGRAM ステートメントを命令ステートメントのシーケンス内の最後のステートメントとして指定する必要があります。]

GO TO ステートメント

命令ステートメントのシーケンス内の最後のステートメントに先立つ無条件フォーマットのコーディング。[標準 COBOL 85 では、以下のように無条件 GO TO をコーディングする必要があります。

  • プロシージャー名が指定されていない場合は、単一ステートメント段落内でのみコーディングする
  • それ以外の場合は、文の最後のステートメントとしてコーディングする。]

MORE-LABELS フォーマット

IF ステートメント END-IF と NEXT SENTENCE 句との併用。[標準 COBOL 85 では、END-IF を NEXT SENTENCE と併用することはできません。]
INITIALIZE ステートメント

REPLACING 句の中の DBCS、EGCS、NATIONAL、および NATIONAL-EDITED

OCCURS 文節の DEPENDING 句を含むデータ項目の初期化

MERGE ステートメント SAME 文節でのファイル名の指定
MULTIPLY ステートメント 18 桁より大きいオペランドの合成
OPEN ステートメント

行順次形式

LINAGE 文節を持つファイルに対する EXTEND 句の指定

PERFORM ステートメント

空の行内 PERFORM ステートメント

複数のアクティブな PERFORMS に対する共通出口

READ ステートメント

PREVIOUS 句

AT END 句および適当な宣言型プロシージャーの省略

INVALID KEY 句および適当な宣言型プロシージャーの省略

グループ項目ではなく基本英数字項目でもない項目の読み取り

RETURN ステートメント 英数字グループ項目ではなく基本英数字項目でもない項目へのリターン
REWRITE ステートメント

INVALID KEY 句および適当な宣言型プロシージャーの省略

再書き込みされるレコードの中の文字位置の数以外の文字位置の数によるレコードの再書き込み

SEARCH ステートメント

END SEARCH を NEXT SENTENCE と共に指定

二分探索フォーマットにおける NEXT SENTENCE 句と命令ステートメントの省略

SET ステートメント

データ・ポインター・フォーマット

プロシージャー・ポインターおよび関数ポインター・フォーマット

オブジェクト・リファレンス・フォーマット

SORT ステートメント SAME 文節での GIVING ファイル名の指定
START ステートメント

INVALID KEY 句および適当な例外プロシージャーの省略

英数字以外のカテゴリーのキーの使用

以下の比較演算子

  • LESS THAN
  • <
  • NOT GREATER THAN
  • NOT >
  • LESS THAN OR EQUAL TO
  • <=
STOP ステートメント

非整数固定小数点リテラルまたは符号付き数値整数または非整数固定小数点リテラルの指定

文の最後のステートメント以外のステートメントとしての STOP のコーディング

STRING ステートメント INTO 句で指定されたデータ項目の参照変更
SUBTRACT ステートメント 18 桁より大きいオペランドの合成
UNSTRING ステートメント 送り出しフィールドの参照変更
WRITE ステートメント

INVALID KEY 句と NOT ON INVALID KEY 句

行順次形式

相対ファイルに対する、置き換えられるレコード内の文字位置の数以外の文字位置の数の書き込み

単一の WRITE ステートメントでの ADVANCING PAGE 句と END-OF-PAGE 句の指定

相対ファイルまたは索引付きファイルに対する、INVALID KEY 句と適当な例外プロシージャーの省略

組み込み関数

DATE-OF-INTEGER および DAY-OF-INTEGER 関数に対する DATEPROC および INTDATE コンパイラー・オプションの影響

以下の関数:

  • DATE-TO-YYYYMMDD
  • DATEVAL
  • DAY-TO-YYYYDDD
  • DISPLAY-OF
  • NATIONAL-OF
  • UNDATE
  • YEAR-TO-YYYY
  • YEARWINDOW
LENGTH 関数 関数への引数としてのポインター、ADDRESS OF 特殊レジスター、または LENGTH OF 特殊レジスターの指定
コンパイラー指示ステートメント

以下のステートメント:

  • BASIS
  • CBL(PROCESS)
  • *CONTROL および *CBL
  • DELETE
  • EJECT
  • INSERT
  • READY または RESET TRACE
  • SERVICE LABEL
  • SERVICE RELOAD
  • SKIP1、SKIP2、および SKIP3
  • TITLE
COPY ステートメント

テキスト名修飾子を指定する “OF library-name” 構文のオプション

テキスト名 およびライブラリー名 を指定するためのリテラル

SUPPRESS 句

ネストされた COPY ステートメント

REPLACING オペランドのワード ・フォーム内の最初または最後の文字としてのハイフンの使用

REPLACING オペランドのワード ・フォーム内での任意の文字の使用 (COBOL 区切り文字を除く)。[標準 COBOL 85 では、ユーザー定義語の構成で使用される文字のみを受け入れます。]

コンパイラー指示 >>CALLINTERFACE 指示

ご利用条件 | フィードバック

Copyright IBM Corporation 1996, 2008.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)