COBOL2002 使用の手引 手引編


付録F コンパイラの制限値

コンパイラの制限値,限界値を次に示します。

表F‒1 コンパイラの制限値,限界値

区分

項目

制限値,限界値

全般規定

語の長さ

31文字

英数字定数,日本語文字定数の長さ

1〜160文字※15

固定小数点数字定数のけた数

1〜18けた※10

浮動小数点数字定数のけた数

仮数部1〜16けた

指数部2けた

単精度浮動小数点数字定数の値の範囲(絶対値)

約10-37.9以上約1038.5以下,または0

倍精度浮動小数点数字定数の値の範囲(絶対値)

約10-308以上約10308以下,または0

連結式で連結できる定数の長さ

2〜1,024文字

基本機能

作業場所節のデータ項目の長さ

16,777,215バイト(クラス定義)

1,073,741,823バイト(上記以外)

局所場所節のデータ項目の長さ

1,073,741,823バイト

ファイル節のデータ項目の長さ

16,777,191バイト※1(クラス定義のファイル節FD記述項)

1,073,741,799バイト※1(上記以外のファイル節FD記述項)

65,535バイト(ファイル節SD記述項)

連絡節のデータ項目の長さ

16,777,215バイト(BY VALUE,RETURNING項目)

1,073,741,823バイト(上記以外)

上記以外の節のデータ項目の長さ

16,777,215バイト

1レコードに含まれる可変長項目の制御変数

100個

PICTURE文字列の長さ

30文字※14

作業場所節の英字項目のけた数

16,777,215けた(クラス定義)

1,073,741,823けた(上記以外)

局所場所節の英字項目のけた数

1,073,741,823けた

ファイル節の英字項目のけた数

16,777,191バイト※1(クラス定義のファイル節FD記述項)

1,073,741,799バイト※1(上記以外のファイル節FD記述項)

65,535バイト(ファイル節SD記述項)

連絡節の英字項目のけた数

16,777,215けた(BY VALUE,RETURNING項目)

1,073,741,823けた(上記以外)

上記以外の英字項目のけた数

16,777,215けた

外部10進,内部10進項目のけた数

18けた※11

2進項目のけた数

18けた

外部浮動小数点数字項目のけた数

仮数部1〜16けた

指数部2けた

作業場所節の英数字,英数字編集項目のけた数

16,777,215けた(クラス定義)

1,073,741,823けた(上記以外)

局所場所節の英数字,英数字編集項目のけた数

1,073,741,823けた

ファイル節の英数字,英数字編集項目のけた数

16,777,191バイト※1(クラス定義のファイル節FD記述項)

1,073,741,799バイト※1(上記以外のファイル節FD記述項)

65,535バイト(ファイル節SD記述項)

連絡節の英数字,英数字編集項目のけた数

16,777,215けた(BY VALUE,RETURNING項目)

1,073,741,823けた(上記以外)

上記以外の英数字,英数字編集項目のけた数

16,777,215けた

数字編集項目のけた数

249けた

(数字は18けた以内※13

ブール項目のけた数

2,034けた

日本語項目のけた数

16,383けた

動的長基本項目のLIMITに指定できる値

英数字項目の場合

  • 16,777,214けた

日本語項目の場合

  • 16,382けた

外部浮動小数点数字項目の値の範囲(絶対値)

約10-37.9以上約1038.5以下,または0

条件文の入れ子

1,000重

うちPERFORM文の入れ子

100重

PERFORM文のVARYING指定で変化させられる一意名の数

7個(AFTER指定の数は6個以内)

EVALUATE文の入れ子

50重

GO TO DEPENDING文の一意名のけた数

9けた

STOP文の定数の長さ

160文字※15

ACCEPT文で一度に転送できるデータのサイズ

114バイト(FROM CONSOLE指定時)

COPY文の入れ子

20重

原文名の長さ

31文字※2

仮原文の原文語

1〜322文字

演算結果を保証する算術式の中間結果のけた数

30けた※12

算術式に含まれる算術演算子

100個

作業場所節※3の節の合計サイズ

16,777,215バイト(クラス定義)

1,073,741,823バイト(上記以外)

局所場所節の節の合計サイズ

1,073,741,823バイト

ファイル節※3※4の節の合計サイズ

16,777,215バイト(クラス定義)

1,073,741,823バイト(上記以外)

その他の節(連絡節を除く)の合計サイズ

16,777,215バイト

算術式中に含まれる算術演算子

100個

表操作機能

作業場所節のOCCURS句の整数2の値,添字の値,部分参照の値

16,777,215(クラス定義)

1,073,741,823(上記以外)

局所場所節のOCCURS句の整数2の値,添字の値,部分参照の値

1,073,741,823

ファイル節のOCCURS句の整数2の値,添字の値,部分参照の値

16,777,191(クラス定義のファイル節FD記述項)

1,073,741,799(上記以外のファイル節FD記述項)

65,535(ファイル節SD記述項)

連絡節のOCCURS句の整数2の値,添字の値,部分参照の値

16,777,215(BY VALUE,RETURNING項目)※5

1,073,741,823(上記以外)

上記外の節のOCCURS句の整数2の値,添字の値,部分参照の値

16,777,215

OCCURS句に指定できる指標名の数

12個

OCCURS句に定義した指標名に設定できる最大値

10けた(クラス定義以外の作業場所節,クラス定義以外のファイル節FD記述項,局所場所節,BY VALUE/RETURNING項目以外の連絡節)

9けた(BY VALUE/RETURNING項目の連絡節および上記以外の節)

OCCURS句の次元数

7次元

OCCURS KEYの個数

12個

SEARCH文の入れ子

15重

入出力機能

RECORD CONTAINS CHARACTERS句で指定できる値

16,777,191※1

(クラス定義のファイル節FD記述項)

1,073,741,799※1

(上記以外のファイル節FD記述項)

65,535

(ファイル節SD記述項)

BLOCK CONTAINS句で指定できる値

16,777,191※1

(クラス定義のファイル節FD記述項)

1,073,741,799※1

(上記以外のファイル節FD記述項)

WRITE ADVANCINGで指定できる整数

0〜99

RECORD KEY句で指定できるキーの最大長

255バイト

ALTERNATE RECORD KEY句で指定できるキーの最大長

255バイト

ALTERNATE RECORD KEY句で指定できるキーの個数

98個

LINAGE句で指定できる整数

1〜32,767

LINAGE FOOTINGで指定できる整数

0〜32,767

LINAGE TOPで指定できる整数

0〜32,767

LINAGE BOTTOMで指定できる整数

0〜32,767

RECORD IS VARYING句のFROMに指定できる整数

1〜16,777,191※1

(クラス定義のファイル節FD記述項)

1〜1,073,741,799※1

(上記以外のファイル節FD記述項)

1〜65,535

(ファイル節SD記述項)

RECORD IS VARYING句のTOに指定できる整数

1〜16,777,191※1

(クラス定義のファイル節FD記述項)

1〜1,073,741,799※1

(上記以外のファイル節FD記述項)

1〜65,535

(ファイル節SD記述項)

ファイルのブロック長に指定できる値

1〜16,777,191※1

(クラス定義)

1〜1,073,741,799

(上記以外)

CSV編成ファイルのREAD/WRITE文で扱える基本項目の最大数

AIX(32),Linux(x86)の場合

  • 2,729個(-NumCsvオプション指定ありの場合)

  • 5,459個(-NumCsvオプション指定なしの場合)

AIX(64),Linux(x64)の場合

  • 2,047個(-NumCsvオプション指定ありの場合)

  • 4,094個(-NumCsvオプション指定なしの場合)

ASSIGN句のデータ名1に指定できるデータ項目の最大長

32,767バイト

プログラム間連絡機能

プログラム名,利用者定義関数名,クラス名,インタフェース名,メソッド名の長さ

31文字(定数指定でない場合)

プログラム名,メソッド名を定数指定する場合の長さ

160バイト※16

-Main,V3オプションで引数を受け取るときに指定できる最大長

100バイト

FD EXTERNAL句の数(プログラム単位,実行時単位)

255個

01 EXTERNAL句の数(外部属性)

実行単位内で32,767個

プログラム単位で32,767個※6

入れ子のプログラムの個数

65,535個

入れ子のプログラムのネストの深さ

255レベル

ENTRY文の個数

32,767個

CALL文,INVOKE文のBY VALUE,BY CONTENT,RETURNINGに指定されたデータ項目のサイズ

16,777,215バイト

利用者定義関数の引数として指定されたデータ項目のサイズ(ただし,対応する仮引数にBY VALUEが指定または仮定される場合,および返却値だけ)

16,777,215バイト

データベースアクセス機能

SQL文の長さ

65,528バイト※8

SQL文で参照する埋め込み変数の長さ

COBOL2002のデータ項目と同じ

SQL文で記述する語,定数の長さ

COBOL2002の語,定数と同じ

整列併合機能

SORT文,MERGE文の入力ファイル数

12個

整列併合用キーの指定個数

64個

整列併合用キーのサイズの合計

4,080バイト

整列併合用レコードのサイズ

65,535バイト

オブジェクト指向機能

クラス定義中に記述可能なメソッドの数

65,530※7

その他

コンパイル可能なソース行数

999,999行

手続き名の個数

1,048,575個

ファイルの数

255個

自由形式正書法での1行のバイト数

255バイト

COPY文PREFIXING指定およびSUFFIXING指定に指定できる語の長さ

30文字

一つの実行単位が使用できるスタックサイズの上限

システムのスタックサイズの設定値に依存

COBOL2002で扱えるファイル名の長さの上限

パス名を含めて255バイト※9

ソース行数以外の制限値は独立していないため,すべての制限値が同時に適用されるとは限りません。

注※1

索引ファイルは,割り当てるファイルによって次のようになります。

  • ISAMを使用する場合:65,503バイト

  • HiRDBによる索引編成ファイルを使用する場合:1,073,741,799バイト

    ただし,CREATE TABLE定義の指定に依存する。

注※2

-V3Recまたは-CompatiV3オプション(VOS3 COBOL85互換のオプション)を指定した場合,先頭の8文字だけが有効となります。

注※3

-MultiThreadオプション指定時,ファイル節,作業場所節の合計の上限は,16,777,215バイトとなります。

注※4

ファイル節の合計サイズは,次のように計算します。

Σ(各記述項のレコード長+24+α)

α:レコード間の境界調整で生じる遊びバイト

レコード間は8バイト境界調整される。

[図データ]

注※5

添字の値,および部分参照の値の場合,上限は1,073,741,823となります。

注※6

ただし,プログラム単位では,アドレスデータ項目の個数や連絡節の01レベルデータ項目の個数によって,上記の最大数まで指定できないことがあります。

注※7

クラス定義に含まれるファクトリ定義,オブジェクト定義のデータ記述項にPROPERTY句が指定されている場合は次のようになります。

クラス定義中に記述可能なメソッドの数

= 65,530 - (SET,GET指定がないPROPERTY句の数)×2 - (SET,GET指定があるPROPERTY句の数)

注※8

SQL文の長さは,次の項目の合計値になります。

  • SQL文を構成する語,定数の長さ(「EXEC SQL」と「END-EXEC」は含めない)

  • 語と定数の間は,分離符の空白文字1バイトを加算する。

    (語と定数の間に,注記行や複数の空白文字があっても,常に空白文字1バイトとして扱う)

ただし,動的SQLの長さは,コンパイラではチェックしません。

注※9

パス名を含めないファイル名の長さの上限も255バイトです。

使用できるファイル名の長さが機能により個別に規定されている場合は,その長さが上限となります。

また,指定されたファイル名は内部的に絶対パス名に変換することがありますが,このとき内部的に処理できる絶対パス名の長さの上限は,1,023バイトです。

注※10

-MaxDigits38オプションを指定した場合,けた数は1〜38けたとなります。

注※11

-MaxDigits38オプションを指定した場合,けた数の上限は38けたとなります。

注※12

-IntResult,DecFloat40オプションを指定した場合,けた数は40けたとなります。

注※13

AIX(64),Linux(x64)の場合,-MaxDigits38オプションの指定がある場合,数字は38けた以内となります。

注※14

AIX(64),Linux(x64)の場合,-MaxDigits38オプションを指定したとき,PICTURE文字列の長さは60文字となります。

注※15

-LiteralExtend,Alnumオプションを指定したとき,英数字定数の長さは1〜8,191文字(バイト)となります。

注※16

-LiteralExtend,Alnumオプションを指定した場合,プログラム名およびメソッド名を定数指定するときの長さは,1〜1,024文字(バイト)となります。