COBOL2002 ユーザーズガイド

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

35.5.14 その他の設定

その他のコンパイラオプションについて,説明します。

<この項の構成>
(1) -Bin1Byteオプション
(2) -JPNオプション
(3) -EquivRuleオプション
(4) -UscoreStartオプション
(5) -BinExtendオプション
(6) -MinusZeroオプション
(7) -TruncCheckオプション
(8) -LowerAsUpperオプション
(9) -CBLVALUEオプション
(10) -Repositoryオプション
(11) -RepositoryCheckオプション
(12) -Defineオプション
(13) -Detailsオプション
(14) -OldFormオプション
(15) -Helpオプション
(16) -UniObjGenオプション
(17) -UniEndianオプション
(18) -MaxDigits38オプション(64bit版PC(x64) COBOL2002で有効)
(19) -IntResult,DecFloat40オプション(64bit版PC(x64) COBOL2002で有効)
(20) -LiteralExtendオプション
(21) -SpaceAsZeroオプション

(1) -Bin1Byteオプション

(a) 形式
 
-Bin1Byte
-noBin1Byte
(b) 機能

-Bin1Byte
1バイトの2進項目を有効にします。

-noBin1Byte
-Bin1Byteオプションの指定を打ち消します。

(2) -JPNオプション

(a) 形式
 
-JPN,{Alnum|V3JPN|V3JPNSpace}
-noJPN
(b) 機能

-JPN,Alnum
日本語項目,日本語編集項目,および日本語文字定数をそれぞれ英数字項目,英数字編集項目,および英数字定数として扱います。
これは,VOS3 COBOL85のLANGOPT=(-D)オプションとXCOBOL=(N)オプションを同時に指定したときと同じ動作になります。
なお,-CompatiV3オプションを指定すると,このオプションが仮定されます。

-JPN,V3JPN
日本語項目,日本語編集項目,および日本語文字定数をそれぞれ英数字項目,英数字編集項目,および英数字定数として扱うようにするためのオプションです。ただし,LENGTH関数の引数,STRING文,UNSTRING文,またはINSPECT文では日本語項目,日本語編集項目,および日本語文字定数はそのままの属性として扱います。
また,日本語項目または日本語編集項目の部分参照は,英数字項目または英数字編集項目として扱いますが,最左端の文字位置と長さは日本語文字数を表します。これは,VOS3 COBOL85のLANGOPT=(-D)オプションとXCOBOL=(-N)オプションを同時に指定したときと同じ動作になります。
-JPN,V3JPNオプションは,VOS3 COBOL85互換機能です。
注※
VOS3 COBOL85では,LENGTH関数の引数に日本語項目,日本語編集項目,および日本語文字定数は指定できません。

-JPN,V3JPNSpace
-CompatiV3オプションと同時に指定した場合,日本語項目,日本語編集項目および日本語文字定数をそのままの属性で扱います。これは,VOS3 COBOL85のLANGOPT=(D)オプションとXCOBOL=(-N)オプションを同時に指定したときと同じ動作になります。
-JPN,V3JPNSpaceオプションは,VOS3 COBOL85互換機能です。
VOS3 COBOL85でLANGOPT=(D)オプションを指定した場合とCOBOL2002での動作の相違については,マニュアル「COBOL2002 言語 拡張仕様編 付録B LANGOPT=(D)オプションと-JPN,V3JPNSpaceオプションを指定した場合の仕様の相違」を参照してください。
このオプションを指定してコンパイルすると,日本語項目および日本語編集項目に対して,次に示すとおりに扱います。
  • 表意定数SPACE(SPACES)の扱い
    日本語項目および日本語編集項目に対する表意定数SPACE(SPACES)は,日本語空白(X'8140')となります。
  • 日本語項目および日本語編集項目同士の転記の扱い
    日本語項目および日本語編集項目同士の転記で,受け取り側のけた数が送り出し側のけた数より長い場合,受け取り側の右側に日本語空白(X'8140')を補います。
  • 日本語項目および日本語編集項目同士の比較の扱い
    日本語項目および日本語編集項目同士の比較で,作用対象のけた数が等しくない場合,短い方の作用対象の右側に,長い方の作用対象のけた数に等しくなるまで日本語空白(X'8140')があるものとみなして比較します。

-noJPN
-JPNオプションの指定を打ち消します。
(c) 注意事項

(3) -EquivRuleオプション

(a) 形式
 
-EquivRule,{NotExtend|NotAny|StdCode}
-noEquivRule
(b) 機能

拡張コード文字標準コード文字を等価とみなさないようにするためのオプションです。

標準コードおよび拡張コードについては,マニュアル「COBOL2002 言語 標準仕様編 付録I 用語の定義(Terms and Definitions)」を参照してください。

-EquivRule,NotExtend
拡張コード文字と標準コード文字を等価とみなしません。

-EquivRule,NotAny
拡張コード文字と標準コード文字を等価とみなしません。さらに,標準コードの英大文字と標準コードの英小文字も等価とみなしません。
この場合,予約語および文脈依存語はすべて標準コードの英大文字で記述してください。

-EquivRule,StdCode
拡張コード文字と標準コード文字を等価とみなしません。さらに,日本語文字定数中に標準コードの空白を書いてもエラーとしません。ただし,日本語文字定数中に空白以外の標準コード文字を書いた場合は,警告レベルのエラーとなります。なお,日本語文字定数の標準コード文字数は偶数としてください。日本語文字定数の標準コード文字数が奇数の場合,警告レベルのエラーとし,日本語文字定数に標準コードの空白を追加します。
また,72カラムより前に改行文字があるCOBOL原始プログラムは,改行文字から72カラムまでを空白に置き換えてコンパイルします。

-noEquivRule
-EquivRuleオプションの指定を打ち消します。

(4) -UscoreStartオプション

(a) 形式
 
-UscoreStart
-noUscoreStart
(b) 機能

-UscoreStart
先頭が下線のCALL定数を指定できるようにします。
先頭が下線のプログラム名をCALL定数で指定した場合,定数の先頭から'_'または'__'(下線2個)を除いた名称でプログラムを呼び出します。

-noUscoreStart
-UscoreStartオプションの指定を打ち消します。

(5) -BinExtendオプション

(a) 形式
 
-BinExtend
-noBinExtend
(b) 機能

-BinExtend
用途(USAGE句)が2進(BINARY,COMP,COMP-4)のデータ項目に指定できる初期値(VALUE句の値)を拡張します。
PICTURE句で指定したけた数とVALUE句に指定できる値との対応は次のとおりです。
PICTURE句で指定したけた数 VALUE句に指定できる値
1〜4けた -215〜215-1
5〜9けた -231〜231-1
10〜18けた -999,999,999,999,999,999〜999,999,999,999,999,999

-noBinExtend
-BinExtendオプションの指定を打ち消します。

(6) -MinusZeroオプション

(a) 形式
 
-MinusZero
-noMinusZero
(b) 機能

符号付き内部10進項目または符号付き外部10進項目への転記で切り捨てが発生した結果,負の符号を持つゼロ(以下,-0と表記します)が発生することがあります。この-0は演算や比較で数値として参照する場合は,正の符号を持つゼロ(以下,+0と表記します)と同じに扱われ,プログラムの動作には影響しません。しかし,DISPLAY文で表示したり,上位の集団項目で参照したり,REDEFINES句で別の属性として参照した場合に,実行結果が異なることがあります。-MinusZeroオプションは,符号付き内部10進項目および符号付き外部10進項目に,ほかのデータ項目の値や演算結果を転記する場合に発生した-0を強制的に+0に変換して,-0の発生を防止するオプションです。他システムや他社のCOBOLとのデータの互換性や移行性が向上します。

(例1)
       01 A PIC S9(5) USAGE DISPLAY.
       01 B PIC S9(5) USAGE DISPLAY VALUE 0.
           COMPUTE A = B - 0.1.
 
右辺の式の結果は-0.1になり,それをAに格納する際に,小数部が切り捨てられて-0となる。-MinusZeroオプションを指定すると,-0が+0に変換されてAに格納される。
注※
ただし,演算結果が必ず-0になるとは限りません。

(例2)
       01 A PIC S9(4) USAGE DISPLAY.
       01 B PIC S9(5) USAGE DISPLAY VALUE -10000.
           MOVE B TO A. 
 
Aに格納する際に,10,000の最上位けたの1が切り捨てられて-0となる。
-MinusZeroオプションを指定すると,-0が+0に変換されてAに格納される。

-MinusZero
負の符号を持つゼロ(-0)を強制的に正の符号を持つゼロ(+0)に変換します。

-noMinusZero
-MinusZeroオプションの指定を打ち消します。
(c) 注意事項

(7) -TruncCheckオプション

(a) 形式
 
-TruncCheck
-noTruncCheck
(b) 機能

-TruncCheck
転記での送り出し側作用対象のサイズをチェックします。
送り出し側作用対象のけた数が受け取り側作用対象のけた数より大きい場合は,メッセージが出力されます。

-noTruncCheck
-TruncCheckオプションの指定を打ち消します。
(c) -TruncCheckオプションのチェック対象

-TruncCheckオプションは,次の項目について,転記での送り出し側作用対象のサイズをチェックします。

チェック対象となる項目
  • 外部10進項目
  • 内部10進項目
  • 2進項目(1バイト2進項目を含む)
  • 数字定数(16進数字定数を含む)
  • 固定長集団項目
  • 英数字項目
  • 英数字定数(16進英数字定数を含む)
  • ALL英数字定数
  • 数字型,整数型,または英数字型の,組み込み関数および利用者定義関数
注※
送り出し側が英数字型の組み込み関数で,かつ次に示す条件の場合はチェックしません。
  • 引数が部分参照されていて,長さが可変である。
    長さが可変になるのは次のどちらかのときです。
    ・部分参照の長さがデータ名指定である
    ・部分参照の開始位置がデータ名指定で,長さが省略されている
  • 組み込み関数がMAX関数またはMIN関数で,データ名の引数が複数指定されている。
  • 組み込み関数がTRIM関数またはSUBSTRING関数である。

チェック対象となる転記の個所
  • VALUE句
  • 画面節(WINDOW SECTION)のSOURCE句
  • ACCEPT文の書き方2(日付と時刻を取得するACCEPT文)
  • INITIALIZE文のREPLACING指定
  • MOVE文
  • READ文のINTO指定
  • RELEASE文のFROM指定
  • RETURN文のINTO指定
  • SET文の書き方4(条件設定のSET文)
  • WRITE文のFROM指定
  • COMPUTE文(送り出し側作用対象が単一の数字項目や数字定数の場合)
  • 上記以外の算術文(中間結果のけた数1が受け取り側作用対象のけた数より大きい場合※2
注※1
中間結果のけた数については,「5.2.4 演算の中間結果」を参照してください。
注※2
64bit版PC(x64) COBOL2002の場合,-MaxDigits38オプションおよび-IntResult,DecFloat40オプションを指定しているときは,常に中間結果のけた数の方が大きいと判定します。

受け取り側作用対象が英数字の場合
  • 受け取り側作用対象が固定長集団項目のときはバイト数で比較されます。
  • 送り出し側作用対象が数字で,受け取り側作用対象が英数字のときは,送り出し側作用対象はけた数(小数けたを含む)で比較します。
  • -H8Switchオプションが指定してあり,送り出し側作用対象が数字で受け取り側作用対象が英数字のときは,数字項目はバイト数で比較されます。

受け取り側作用対象が数字の場合
  • 整数けた数で比較します。
  • 次のすべての条件を満たすときはチェックしません。
    ・-DigitsTruncオプションの指定がある
    ・-MaxDigits38オプションおよび-IntResult,DecFloat40オプションを指定していない(64bit版PC(x64) COBOL2002の場合)
    ・受け取り側作用対象が2進項目である
    ・VALUE句の転記ではない
  • 送り出し側作用対象が18けたを超える英数字項目のときはチェックしません。
注※
64bit版PC(x64) COBOL2002の場合,-MaxDigits38オプションおよび-IntResult,DecFloat40オプションを指定しているときは,38けたとなります。

(8) -LowerAsUpperオプション

(a) 形式
 
-LowerAsUpper
-noLowerAsUpper
(b) 機能

-LowerAsUpper
CALL定数の英小文字を英大文字に変換した名称でプログラムを呼び出します。

-noLowerAsUpper
-LowerAsUpperオプションの指定を打ち消します。

(9) -CBLVALUEオプション

(a) 形式
 
-CBLVALUE
-noCBLVALUE
(b) 機能

-CBLVALUE
環境変数CBLVALUEを有効にするためのオプションです。
環境変数CBLVALUEの詳細については,「35.6.3 コンパイラ環境変数の詳細」の「(17) CBLVALUE」を参照してください。

-noCBLVALUE
-CBLVALUEオプションの指定を打ち消します。

(10) -Repositoryオプション

(a) 形式
 
-Repository,{Gen|Sup}
-noRepository
(b) 機能

-Repository,Gen
ソースファイルからリポジトリファイルを作成するときに指定します。この場合,オブジェクトファイルは作成されません。
なお,翻訳単位(プログラム定義を除く)が未完成でも,シグニチャと呼ばれるインタフェース部分が決まっていれば,リポジトリファイルを作成できます。詳細は,「36.3.2 リポジトリファイルの単独生成」を参照してください。
注意事項
  • クラス定義,インタフェース定義,および関数定義が一つも格納されていないファイルに-Repository,Genオプションを指定した場合,オプションの指定が無効となります。
  • -Repository,Genオプションと-Compileオプションが同時に指定された場合,-Repository,Genオプションが有効になり,-Compileオプションが無効になります。
  • -Repository,Genオプションと-OleServerオプションが同時に指定された場合,-Repository,Genオプションが有効になり,-OleServerオプションが無効になります。

-Repository,Sup
リポジトリファイルを更新しません。
ただし,リポジトリファイルがない場合は,新規に作成します。
また,オブジェクトファイルは,生成されます。

-noRepository
-Repositoryオプションの指定を打ち消します。

(11) -RepositoryCheckオプション

(a) 形式
 
-RepositoryCheck
-noRepositoryCheck
(b) 機能

-RepositoryCheck
同じソースファイル中の翻訳単位の定義と外部リポジトリ中の情報に相違があるかどうかをチェックし,相違がある場合には警告メッセージを出力します。-RepositoryCheckオプションを指定した場合,リポジトリファイルは更新されません。
詳細は,「36.2.3 リポジトリファイルの生成方法」を参照してください。

-noRepositoryCheck
-RepositoryCheckオプションの指定を打ち消します。

(12) -Defineオプション

(a) 形式
 
-Define 翻訳変数名〔=値〕〔,翻訳変数名〔=値〕〕…
-noDefine
(b) 機能

-Define 翻訳変数名〔=値〕〔,翻訳変数名〔=値〕〕…
翻訳変数名(条件翻訳で,ソース行の取り込みや読み飛ばしを制御する変数の名称)を定義します。
詳細は,「35.3.3 条件翻訳の利用」を参照してください。

-noDefine
-Defineオプションの指定を打ち消します。
(c) 注意事項

(13) -Detailsオプション

(a) 形式
 
-Details
-noDetails
(b) 機能

-Details
コンパイラオプションの詳細情報を出力します。
また,環境変数CBLLINKER,環境変数CBLMANIFESTTOOL,および環境変数CBLRESOURCECOMPILERを指定した場合,環境変数に指定されたコマンドが起動するときに,コマンドのパス情報を出力します。
出力形式は,次のようになります。
形式
COBOL2002コマンドの絶対パス名: ccbl2002オプション群 COBOLソースファイル名群
ccbl2002オプション群
ccbl2002コマンドが認識するオプションがすべて出力されます。ほかのオプションを指定したために仮定されたオプションも出力されます。反対に,ほかのオプションを指定したために無視されたオプションは出力されません。オプションの引数を指定した場合は,オプションの引数も出力されます。
COBOLソースファイル名群
コンパイル対象のCOBOLソースファイル名がすべて出力されます。
(例)
入力
ccbl2002 -TDInf -SrcList,CopyAll -SimSub PROG1 -Details sample1.cbl
出力
COBOL2002インストールフォルダ\bin\ccbl2002: ccbl2002 -DebugInf -TDInf -SrcList,CopyAll -Details -Optimize,1 -Lib,GUI -SimSub PROG1 -Main,System sample1.cbl

-noDetails
-Detailsオプションの指定を打ち消します。

(14) -OldFormオプション

(a) 形式
 
-OldForm "旧オプションの並び"
(b) 機能

-OldForm "旧オプションの並び"
旧形式のオプション(COBOL85用のコンパイラオプション)を指定できるようにします。
(c) 注意事項

(15) -Helpオプション

(a) 形式
 
-Help|-?
(b) 機能

ccbl2002コマンドのヘルプを表示します。

(c) 注意事項

(16) -UniObjGenオプション

(a) 形式
 
-UniObjGen
-noUniObjGen
(b) 機能

-UniObjGen
シフトJISで記述されたCOBOLソースから英数字定数をUTF-8に,日本語文字定数をUTF-16LEまたはUTF-16BEに変換したオブジェクトファイルを生成します。

-noUniObjGen
-UniObjGenオプションの指定を打ち消します。
(c) 注意事項

(17) -UniEndianオプション

(a) 形式
 
-UniEndian,{Little|Big}
-noUniEndian
(b) 機能

-UniEndian,Little
日本語文字定数をUTF-16LEに変換したオブジェクトファイルを生成します。

-UniEndian,Big
日本語文字定数をUTF-16BEに変換したオブジェクトファイルを生成します。

-noUniEndian
-UniEndianオプションの指定を打ち消します。
(c) 注意事項

(18) -MaxDigits38オプション(64bit版PC(x64) COBOL2002で有効)

(a) 形式
 
-MaxDigits38
-noMaxDigits38
 
(b) 機能

-MaxDigits38
数字項目,数字編集項目,および数字定数に指定できる数字の最大けた数を18けたから38けたに拡張します。外部10進形式および内部10進形式の数字項目と数字編集項目と固定小数点数字定数で,けた数を拡張できます。詳細については,「31. 数字項目のけた拡張機能(64bit版PC(x64) COBOL2002で有効)」およびマニュアル「COBOL2002 言語 拡張仕様編 21. 数字項目のけた拡張機能」を参照してください。

-noMaxDigits38
-MaxDigits38オプションの指定を打ち消します。
(c) 注意事項

(19) -IntResult,DecFloat40オプション(64bit版PC(x64) COBOL2002で有効)

(a) 形式
 
-IntResult,DecFloat40
-noIntResult
 
(b) 機能

-IntResult,DecFloat40
算術演算の中間結果の表現形式を40けた10進浮動小数点形式にします。詳細については,「31.3 数字項目のけた拡張機能での演算の中間結果」を参照してください。

-noIntResult
-IntResultオプションの指定を打ち消します。
(c) 注意事項

(20) -LiteralExtendオプション

(a) 形式
 
-LiteralExtend,Alnum
-noLiteralExtend
 
(b) 機能

-LiteralExtend,Alnum
英数字定数の最大長を拡張します。拡張する項目と制限値および限界値を次に示します。

表35-5 最大長を拡張する項目と制限値および限界値

最大長を拡張する項目 制限値および限界値
-LiteralExtend,Alnumなし
-noLiteralExtendあり
-LiteralExtend,Alnumあり
英数字定数の長さ 1〜160文字(バイト) 1〜8,191文字(バイト)
STOP文の定数に指定した英数字定数の長さ 1〜160文字(バイト) 1〜8,191文字(バイト)
定数指定する場合のプログラム名,メソッド名の長さ 1〜160文字(バイト) 1〜1,024文字(バイト)

ただし,次に示す項目では英数字定数の最大長は拡張されません。

表35-6 最大長を拡張しない項目

最大長を拡張しない項目 制限値および限界値(-LiteralExtendの有無に関係なく同じ)
連結式で連結した英数字定数の長さ 2〜1,024文字(バイト)
指定できる文字位置のけた数が個別に規定されている構文 各構文の規定に従う
COPY文,REPLACE文の構文中に指定する原文語の長さ 1〜322文字(バイト)
翻訳指令行で使用する英数字定数の長さ 1〜160文字(バイト)
SQL文中で使用する英数字定数の長さ 1〜160文字(バイト)

-noLiteralExtend
-LiteralExtendオプションの指定を打ち消します。
(c) 注意事項

(21) -SpaceAsZeroオプション

(a) 形式
 
-SpaceAsZero
-noSpaceAsZero
 
(b) 機能

-SpaceAsZero
外部10進項目に空白文字(X'20')データがあるとき,ゼロ(X'30')とみなして比較,演算,転記を実行します。このオプションを指定すると,約1.5倍の実行性能劣化となります。このため,必要のないかぎり,このオプションは指定しないでください。

-noSpaceAsZero
-SpaceAsZeroオプションの指定を打ち消します。
(c) 注意事項