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

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

表E-1 コンパイラの制限値,限界値

区分項目制限値,限界値
全般規定語の長さ31文字
英数字定数,日本語文字定数の長さ1~160文字※14
固定小数点数字定数のけた数1~18けた※9
浮動小数点数字定数のけた数仮数部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文字※13
作業場所節の英字項目のけた数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けた※10
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けた以内※12
ブール項目のけた数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文字※14
ACCEPT文で一度に転送できるデータのサイズ114バイト(FROM CONSOLE指定時)
COPY文の入れ子20重
原文名の長さ31文字※2
仮原文の原文語1~322文字
演算結果を保証する算術式の中間結果のけた数30けた※11
算術式に含まれる算術演算子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文で扱える基本項目の最大数UNIX32の場合
  • 2,729個(-NumCsvオプション指定ありの場合)
  • 5,459個(-NumCsvオプション指定なしの場合)
UNIX64の場合
  • 2,047個(-NumCsvオプション指定ありの場合)
  • 4,094個(-NumCsvオプション指定なしの場合)
ASSIGN句のデータ名1に指定できるデータ項目の最大長32,767バイト
プログラム間連絡機能プログラム名,利用者定義関数名,クラス名,インタフェース名,メソッド名の長さ31文字(定数指定でない場合)
プログラム名,メソッド名を定数指定する場合の長さ160バイト※15
-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バイト
整列併合機能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バイト※8
ソース行数以外の制限値は独立していないため,すべての制限値が同時に適用されるとは限りません。

注※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
パス名を含めないファイル名の長さの上限も255バイトです。
使用できるファイル名の長さが機能により個別に規定されている場合は,その長さが上限となります。
また,指定されたファイル名は内部的に絶対パス名に変換することがありますが,このとき内部的に処理できる絶対パス名の長さの上限は,1,023バイトです。
注※9
-MaxDigits38オプションを指定した場合,けた数は1~38けたとなります。
注※10
-MaxDigits38オプションを指定した場合,けた数の上限は38けたとなります。
注※11
-IntResult,DecFloat40オプションを指定した場合,けた数は40けたとなります。
注※12
AIX(64),Linux(x64)の場合,-MaxDigits38オプションの指定がある場合,数字は38けた以内となります。
注※13
AIX(64),Linux(x64)の場合,-MaxDigits38オプションを指定したとき,PICTURE文字列の長さは60文字となります。
注※14
AIX(32),AIX(64),Linux(x86),Linux(x64)の場合,-LiteralExtend,Alnumオプションを指定したとき,英数字定数の長さは1~8,191文字(バイト)となります。
注※15
AIX(32),AIX(64),Linux(x86),Linux(x64)の場合,-LiteralExtend,Alnumオプションを指定した場合,プログラム名およびメソッド名を定数指定するときの長さは,1~1,024文字(バイト)となります。