付録F コンパイラの制限値
コンパイラの制限値,限界値を次に示します。
区分 |
項目 |
制限値,限界値 |
---|---|---|
全般規定 |
語の長さ |
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に指定できる値 |
英数字項目の場合
日本語項目の場合
|
|
外部浮動小数点数字項目の値の範囲(絶対値) |
約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)の場合
AIX(64),Linux(x64)の場合
|
|
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文字(バイト)となります。