IBM 拡張とは、付録H. 業界仕様 にリストされた COBOL 標準ではなく、IBM によって定義されたフィーチャー、構文規則、または振る舞いを指します。
IBM 拡張言語エレメント (表 57) には、IBM 拡張が要旨と共に記載されています。標準の振る舞いが分かりにくい場合は、それを大括弧 [ ] で囲んで示しています。拡張については、この文書の全編にわたって詳しく説明していますが、拡張として詳細に示されてはいません。
IBM 拡張の多くは、その構文によって標準言語と区別されています。それ以外については、コンパイラー・オプションを使用して標準または拡張の振る舞いのいずれかを選択します。通常、関連するコンパイラー・オプションが詳細規則に記載されています。コンパイラー・オプションの詳細については、「COBOL for Windows プログラミング・ガイド」を参照してください。
項目が拡張としてリストされている場合は、すべての関連規則もまた拡張になります。例えば、DBCS 文字用の USAGE DISPLAY-1 は拡張としてリストされています。したがって、これをステートメントおよび文節で多数使用する場合もまた拡張になります。ただし、個別にはリストされていません。
| 言語領域 | 拡張エレメント |
|---|---|
| COBOL ワード |
マルチバイト文字で書かれたユーザー定義語 マルチバイト文字で書かれたシステム名 クラス名 (オブジェクト指向用) メソッド名 |
| 国別文字サポート (Unicode サポート) |
USAGE NATIONAL を使用した UTF-16 に対するサポート データ・カテゴリーが国別、国別編集、数字、数字編集、外部 10 進数、および外部浮動小数点の場合の使用法 NATIONAL NATIONAL 句を使用した GROUP-USAGE 文節 国別リテラル (基本および 16 進数) 表意定数 SPACE、ZERO、QUOTE、HIGH-VALUES、LOW-VALUES、ALL リテラルの国別文字値 データ変換のための組み込み関数
UPPER-CASE 関数と LOWER-CASE 関数による大文字小文字の拡張マッピング |
| 暗黙の項目 | 特殊オブジェクト・リファレンス
特殊レジスター
|
| 表意定数 |
表意定数 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 桁を指定します。] 浮動小数点数字リテラル。 |
| コメント |
見出し部ヘッダーの前のコメント行。 マルチバイト文字を含むコメント行およびコメント記入項目。 |
| 終了マーカー | 以下の終了マーカーがあります。
|
| 索引付けと添え字付け |
テーブルと別のテーブルに定義された索引名との照会。 相対添え字付けにおける演算子 + または - の後の正符号付き整数リテラルの指定。 |
| 2000 年言語拡張および日付フィールド |
DATE FORMAT 文節 ウィンドウ化日付フィールド、拡張日付フィールド、年末尾型日付フィールド、互換日付フィールド、日付形式、および世紀ウィンドウ。 以下の組み込み関数。
|
| プログラムの見出し部 |
IDENTIFICATION の省略 ID RECURSIVE 文節 PROGRAM-ID、AUTHOR、INSTALLATION、DATE-WRITTEN、および SECURITY 段落ヘッダーの後のオプショナル分離文字ピリオド。[標準 COBOL 85 では、それぞれの段落ヘッダーの後にピリオドが必要です。] PROGRAM-ID 段落内のプログラム名の後のオプショナル分離文字ピリオド。[標準 COBOL 85 では、プログラム名の後にピリオドが必要です。] PROGRAM-ID 段落内のプログラム名を示す英数字リテラル。長さ 160 文字までのプログラム名。[標準 COBOL 85 では、プログラム名をユーザー定義語として指定する必要があります。] |
| 終了マーカー |
リテラルのプログラム名。[標準 COBOL 85 では、プログラム名をユーザー定義語として指定する必要があります。] |
| オブジェクト指向の構造 |
クラス定義内:
メソッド定義内:
|
| 構成セクション | 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 つの文字のみが許可され、これが通貨符号および通貨ピクチャー・シンボルになります。標準通貨符号は、以下のものであってはなりません。
通貨符号としての小文字の英字の使用。[標準 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 文節 行順次形式ファイル記述項目 |
| ソート・マージ・ファイル記述項目 |
以下の文節:
|
| 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 文節 |
句:
USAGE INDEX の項目に対する SYNCHRONIZED 文節の使用 |
| 条件名項目の VALUE 文節 |
ファイル・セクションおよびリンケージ・セクションにおける条件名項目以外の VALUE 文節 DISPLAY 以外の USAGE を持つグループでの条件名項目に対する VALUE 文節 ロケールで定義する照合シーケンスを使用して、THROUGH 句の値の範囲を指定します。 VALUE IS NULL および VALUE IS NULLS |
| 手続き部 |
セクション名の省略 セクション名が省略されている場合の段落名の省略 メソッド、ファクトリー、またはオブジェクトの手続き部 手続き部のヘッダーで USING 句を使用しないリンケージ・セクションのデータ項目の参照 (それらのデータ名 が ADDRESS OF 句または ADDRESS OF 特殊レジスターのオペランドである場合) ステートメント
|
| 手続き部のヘッダー |
BY VALUE 句 RETURNING 句 データ項目の記述に REDEFINES 文節がある場合の USING 文節でのデータ項目の指定 USING 句内での所定のデータ項目の 複数インスタンスの指定 メソッド定義、ファクトリー定義、およびオブジェクト定義のフォーマット |
| 宣言型プロシージャー |
LABEL 宣言 アクティブ宣言の実行 |
| プロシージャー |
優先順位番号 を正の符号付き数字リテラルとして指定。[標準 COBOL 85 では、符号なし整数でなければなりません。] 宣言の後、または宣言がない場合のセクション・ヘッダーの省略。[標準 COBOL 85 では、“DECLARATIVES.” 構文の後ろ、および “END DECLARATIVES.” 構文の後ろにセクション・ヘッダーが必要です。] 宣言がない場合の初期段落名 の省略。[標準 COBOL 85 では、以下の場合に段落名が必要です。
また、標準 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 ステートメント |
呼び出されるプログラムを識別するためのプロシージャー・ポインターおよび関数ポインターのオペランド 以下の句:
英字またはゾーン 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 句および適当な例外プロシージャーの省略 英数字以外のカテゴリーのキーの使用 以下の比較演算子
|
| 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 コンパイラー・オプションの影響 以下の関数:
|
| LENGTH 関数 | 関数への引数としてのポインター、ADDRESS OF 特殊レジスター、または LENGTH OF 特殊レジスターの指定 |
| コンパイラー指示ステートメント |
以下のステートメント:
|
| COPY ステートメント |
テキスト名修飾子を指定する “OF library-name” 構文のオプション テキスト名 およびライブラリー名 を指定するためのリテラル SUPPRESS 句 ネストされた COPY ステートメント REPLACING オペランドのワード ・フォーム内の最初または最後の文字としてのハイフンの使用 REPLACING オペランドのワード ・フォーム内での任意の文字の使用 (COBOL 区切り文字を除く)。[標準 COBOL 85 では、ユーザー定義語の構成で使用される文字のみを受け入れます。] |
| コンパイラー指示 | >>CALLINTERFACE 指示 |