COBOL2002 ユーザーズガイド

[目次][用語][索引][前へ][次へ]

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

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

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

区分 項目 制限値,限界値
全般規定 語の長さ 31文字
英数字定数,日本語文字定数の長さ 1〜160文字※16
固定小数点数字定数のけた数 1〜18けた※11
浮動小数点数字定数のけた数 仮数部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文字※15
作業場所節の英字項目のけた数 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けた※12
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けた以内※14)
ブール項目のけた数 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文字※16
ACCEPT文で一度に転送できるデータのサイズ 114バイト(FROM CONSOLE指定時)
COPY文の入れ子 20重
原文名の長さ 31文字※2
仮原文の原文語 1〜322文字
演算結果を保証する算術式の中間結果のけた数 30けた※13
算術式に含まれる算術演算子 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文で扱える基本項目の最大数 32bit版PC(x86) COBOL2002の場合
  • 2,729個(-NumCsvオプション指定ありの場合)
  • 5,459個(-NumCsvオプション指定なしの場合)
64bit版PC(x64) COBOL2002の場合
  • 2,047個(-NumCsvオプション指定ありの場合)
  • 4,094個(-NumCsvオプション指定なしの場合)
ASSIGN句のデータ名1に指定できるデータ項目の最大長 32,767バイト
プログラム間連絡機能 プログラム名,利用者定義関数名,クラス名,インタフェース名,メソッド名の長さ 31文字(定数指定でない場合)
プログラム名,メソッド名を定数指定する場合の長さ 160バイト※17
-Main,V3オプションで引数を受け取るときに指定できる最大長 100バイト
FD EXTERNAL句の数(プログラム単位,実行時単位) 255個
01 EXTERNAL句の数(外部属性) 実行単位内で32,767個
プログラム単位で32,767個※6
入れ子のプログラムの個数 65,535個
入れ子のプログラムのネストの深さ 255レベル
ENTRY文の個数 32,767個
stdcall呼び出し規約にするプログラムの個数(CALL 一意名がある場合) 1,700個※7
CALL文,INVOKE文のBY VALUE,BY CONTENT,RETURNINGに指定されたデータ項目のサイズ 16,777,215バイト
利用者定義関数の引数として指定されたデータ項目のサイズ(ただし,対応する仮引数にBY VALUEが指定または仮定される場合,および返却値だけ) 16,777,215バイト
整列併合機能 SORT文,MERGE文の入力ファイル数 12個
整列併合用キーの指定個数 64個
整列併合用キーのサイズの合計 4,080バイト
整列併合用レコードのサイズ 65,535バイト
データベースアクセス機能 SQL文の長さ 65,528バイト※9
SQL文で参照する埋め込み変数の長さ COBOL2002のデータ項目と同じ
SQL文で記述する語,定数の長さ COBOL2002の語,定数と同じ
オブジェクト指向機能 クラス定義中に記述可能なメソッドの数 65,530※8
報告書作成機能 PAGE LIMIT句に指定できる値 999
(-CompatiV3指定時は,9,999)
LINE NUMBER句に指定できる値 999(-CompatiV3指定時は,9,999)
COLUMN句に指定できる値
  • RECORD句がない時:133−印刷項目のサイズ+ 1
  • RECORD句がある時:RECORD句に指定した最大レコード長−印刷項目のサイズ+ 1
    注:CODE句を指定したときは,指定した文字定数のサイズ分だけ印刷項目の配置位置が右端にずれるので,その分COLUMN句に指定できる制限値も少なくなります
その他 コンパイル可能なソース行数 999,999行
手続き名の個数 1,048,575個
ファイルの数 255個
自由形式正書法での1行のバイト数 255バイト
COPY文PREFIXING指定およびSUFFIXING指定に指定できる語の長さ 30文字
一つの実行単位が使用できるスタックサイズの上限 システムのスタックサイズの設定値に依存
COBOL2002で扱えるファイル名の長さの上限 パス名を含めて255バイト※10

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

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

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

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

注※4
ファイル節の合計サイズは,次のように計算します。
Σ(各記述項のレコード長+24+α)
α:レコード間の境界調整で生じる遊びバイト
レコード間は8バイト境界調整される。
[図データ]

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

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

注※7
次のプログラム数の合計値です。
  • 外部プログラム節で,STDCALLまたはPASCALに関連づけたプログラム
  • stdcall呼び出し指示ファイル(.cbw)に指定したプログラム
  • stdcall呼び出し規約のDLL中の内側のプログラム

注※8
クラス定義に含まれるファクトリ定義,オブジェクト定義のデータ記述項にPROPERTY句が指定されている場合は次のようになります。
クラス定義中に記述可能なメソッドの数
= 65,530 - (SET,GET指定がないPROPERTY句の数)×2 - (SET,GET指定があるPROPERTY句の数)

注※9
SQL文の長さは,次の項目の合計値になります。
  • SQL文を構成する語,定数の長さ(「EXEC SQL」と「END-EXEC」は含めない)
  • 語と定数の間は,分離符の空白文字1バイトを加算する。
    (語と定数の間に,注記行や複数の空白文字があっても,常に空白文字1バイトとして扱う)
ただし,動的SQLの長さは,コンパイラではチェックしません。

注※10
パス名を含めないファイル名の長さの上限も255バイトです。
使用できるファイル名の長さが機能により個別に規定されている場合は,その長さが上限となります。
また,指定されたファイル名は内部的に絶対パス名に変換することがありますが,このとき内部的に処理できる絶対パス名の長さの上限は,260バイトです。

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

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

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

注※14
-MaxDigits38オプションの指定がある場合,数字は38けた以内となります。

注※15
-MaxDigits38オプションを指定したとき,PICTURE文字列の長さは60文字となります。

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

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