31.5.12 他システムとの移行の設定
(1) -CompatiV3オプション
(a) 形式
-CompatiV3
-noCompatiV3
(b) 機能
- -CompatiV3
- ホスト(VOS3 COBOL85)との互換を指定するオプションです。-CompatiV3オプションは,VOS3 COBOL85で開発したCOBOLプログラムをUNIX環境に移行することを目的として提供しているオプションで,日立拡張機能の中で使用頻度の高いものを対象としています。
- このオプションを指定した場合,指定しない場合と比べて次の点が異なります。
- ASSIGN句で指定した外部装置名に関連する環境変数名が,次のように変更されます。
- (書き方)
SYSnnn〔-装置クラス〕〔-装置名〕〔-編成〕
または,〔装置クラス-〕〔装置名-〕〔編成-〕ファイル定義名
- -CompatiV3オプション指定時の環境変数名
次のどちらかとなる。
CBL_SYSnnn
CBL_ファイル定義名
- -CompatiV3オプション未指定時の環境変数名
次のどちらかとなる。
CBL_SYSnnn〔_装置クラス〕〔_装置名〕〔_編成〕
CBL_〔装置クラス_〕〔装置名_〕〔編成_〕ファイル定義名
- OPEN I-Oで開かれた順ファイルに対してWRITE文が指定できます。このとき,次の条件をすべて満たすと,WRITE文はREWRITE文として扱われます。
- (条件)
- -CompatiV3オプションの指定がある。
- EXTERNAL句が指定されているか,またはOPEN I-Oで開かれている。
- WRITE文にADVANCING指定がない。
- LINAGE句の指定がない。
- -CompatiV3オプションを指定した場合,次のオプションが仮定されます。
- (仮定されるオプション)
- -V3Rec,Variable
可変長形式の原始プログラムのコンパイルを,ホストの日本語項目の扱いに合わせるオプションです。
なお,固定長形式でコンパイルする場合,-CompatiV3オプションと-V3Rec,Fixedオプションを指定する必要があります。
- -JPN,Alnum
日本語項目,日本語編集項目,および日本語文字定数を,それぞれ英数字項目,英数字編集項目,および英数字定数として扱うオプションです。
VOS3 COBOL85でXCOBOL=(N)を指定したときと同じ動作となります。
- VOS3 COBOL85上で使用できる報告書作成機能を記述したプログラムをコンパイルできます。
なお,-CompatiV3オプションを指定しない場合,UNIX COBOL85と同じ言語仕様の報告書作成機能を使用します。
- 通信節による画面機能で,複数プログラムで通信文が実行された場合,一つの仮想端末を複数のプログラム間で共用し,送受信します。
- DIVIDE文書き方4および書き方5の,除算の剰余を計算するのに使う商は,商を計算したときの中間結果と同じけた数,同じ小数点位置,同じ符号の有無を持ちます。
- (例)
DIVIDE A BY B GIVING C REMAINDER D.
- 上記の例のDIVIDE文は,下記のような連続した操作に変換されます(ただし,TMP1,TMP2,TMP3はコンパイラによって作成された中間結果の記憶場所を表します)。
A/B → TMP1
TMP1 → TMP2
A - (B * TMP2) → TMP3
TMP1 → C
TMP3 → D
- -CompatiV3オプションを指定したときは,TMP2はTMP1と同じけた数,同じ小数点位置,同じ符号になります。
- -CompatiV3オプション未指定のときは,TMP2は商(C)と同じけた数,同じ小数点位置,同じ符号になります。
- -CompatiV3オプションを指定した場合,英数字定数の分離符には,アポストロフィ(')だけが使用できます。
- -CompatiV3オプションと-EquivRuleオプションは,同時に指定できません。指定した場合,あとに指定したオプションが有効となります。
- -noCompatiV3
- -CompatiV3オプションの指定を打ち消します。
- -CompatiV3オプションを指定した場合,-V3Rec,Variableオプションおよび-JPN,Alnumオプションが仮定されますが,-noCompatiV3オプションを指定しても,仮定された-V3Rec,Variableオプションおよび-JPN,Alnumオプションは打ち消されません。
(c) 注意事項
- このオプションは,自由形式正書法で書かれたCOBOL原始プログラムをコンパイルする場合には指定できません。指定した場合,エラーとなってコンパイルが中止されます。
- このオプションを指定した場合,連結式を記述できません。
- Linux(x86),Linux(x64)の場合,コンパイラ環境変数CBLV3UNICODEにYESを指定し,かつ-UniObjGenを指定すると,このオプションを指定しても-JPN,Alnum は仮定されません。
- このオプションを指定した場合,特殊名段落の定数10が有効になります。ただし,Linux(x86),Linux(x64)の場合,コンパイラ環境変数CBLV3UNICODEにYESを指定すると,-UniObjGenオプションとこのオプションの同時指定が可能となるため,Unicodeで多バイトになる文字を指定した場合,コンパイルエラーとなります。
(2) -Compati85オプション
(a) 形式
-Compati85{,IoStatus|,Linage|,Call|,Power|,Syntax|,IDParag|,RsvWord|,NoPropagate|,All}+
-noCompati85
(b) 機能
- -Compati85,IoStatus
- 入出力状態1x,2xに対する処理をCOBOL85と同様にします。
- -Compati85,Linage
- LINAGE値が不正なときの処理をCOBOL85と同様にします。
- -Compati85,Call
- CALL文のON EXCEPTION,またはON OVERFLOW指定の無条件文を実行するエラーの条件をCOBOL85と同様にします。
- -Compati85,Power
- べき乗演算でのエラー時の処理をCOBOL85と同様にします。また,べき乗演算の精度を,同一システムのCOBOL85(製品が存在する場合だけ)と同様にします。べき乗演算と-Compati85,Powerオプションとの関係については,「21.3.3 例外チェックが無効な場合の動作」の「(1) 手続き文の実行中にエラーが発生し,例外を検出した場合」を参照してください。
- -Compati85,Syntax
- 次の機能について,コンパイル時の解釈をCOBOL85と同様にします。
- COPY文のREPLACING指定での置換位置
- 見出し部注記項(-Compati85,IDParagオプション指定時と同等の解釈をする)
- 部の見出し,節名,段落名,END PROGRAMなどの開始位置チェック
- 直前のピリオドが省略されたA領域に置かれた語の解釈
- COBOL語の最大長(30文字とする)
- 予約語(COBOL85では予約語で,COBOL2002では文脈依存語に変更されたものを予約語に戻す)
なお,COBOL85で予約語だったものがCOBOL2002で文脈依存語となっているのは,次の語です。
ONLY PREVIOUS RECURSIVE
- プログラム名の長さ(30バイトとする)
- 自由形式正書法の1行の長さ(80文字とする)
- -Compati85,IDParag
- 見出し部の構文チェックを緩和します。
- このオプションを指定すると,見出し部にAUTHOR段落,INSTALLATION段落,DATE-WRITTEN段落,DATE-COMPILED段落,SECURITY段落,およびREMARKS段落が記述できます。
- -Compati85,RsvWord
- 予約語のうちCOBOL2002で新たに追加されたものを除き,COBOL85の予約語と同じ範囲でコンパイルします。
- -Compati85,NoPropagate
- CALL文,INVOKE文,および利用者定義関数で伝播を抑止します。
- 次のプログラムを呼び出す場合,例外が伝播することはないため,このオプションを指定するとオブジェクトファイルサイズを縮小できます。
- PROPAGATE指令が指定されていないプログラム
- COBOL85で作成したプログラム
- Cプログラムなど,COBOL言語以外の言語を使用したプログラム
- COBOL2002で使用できるサービスルーチン
- OpenTP1,XMAP3(HP-UX(IPF),AIX(32),Solaris(SPARC)で有効)などの関連プログラムが提供している関数など
- ただし,条件によっては,自動的に呼び出し元プログラムへの伝播が抑止される場合があります。その場合は,このオプションを指定する必要はありません。詳細は,「21.5.3 例外を受け取れないプログラムに例外を伝播させた場合の動作」を参照してください。
- -Compati85,All
- -Compati85オプションのすべてのサブオプションを仮定します。
- -Compati85,Allを指定した場合,-Compati85オプションのすべてのサブオプションを指定したものとみなします。
- -noCompati85
- -Compati85オプションの指定を打ち消します。
(c) 注意事項
- -Compati85オプションは,単独で指定できません。必ずサブオプションを指定する必要があります。
- -Compati85,IDParagオプションを指定した場合,見出し部中にCOPY文,REPLACE文,およびINCLUDE文を記述できません。注記項中にCOPY文,REPLACE文,またはINCLUDE文を記述した場合,そのCOPY文,REPLACE文,またはINCLUDE文を注記とみなします。
- -Compati85,IDParagオプションを指定した場合,注記項中に継続行を表す標識(-)が現れたときは,コンパイルエラーとなります。
- -Compati85,IDParagオプションを指定した場合,見出し部には,COBOL85で指定できる段落見出し(PROGRAM-ID,AUTHOR,INSTALLATION,DATE-WRITTEN,DATE-COMPILED,SECURITY,およびREMARKS)以外を指定できません。
- -Compati85,Syntaxオプションを指定した場合に適用される予約語は,COBOL2002の予約語およびONLY,PREVIOUS,RECURSIVE の三つの語となります。
-Compati85,RsvWordオプションを指定した場合に適用される予約語は,COBOL85の予約語だけとなります。
- -Compati85,RsvWordオプションを指定した場合,COBOL2002で新しく追加された構文が利用できなくなります。このため,既存プログラムにCOBOL2002の新機能を加えて拡張することが困難になります。既存プログラムにCOBOL2002の新しい予約語が使われている場合,新しい予約語とは異なる語に置き換えることを推奨します。COBOL2002で追加された新しい予約語については,マニュアル「COBOL2002 言語 標準仕様編 4.8 予約語」を参照してください。
- -Compati85オプションのうち次のオプションを指定した場合,COBOLソース中にTURN指令を指定できません。指定した場合,コンパイルエラーとなります。
- -Compati85,IoStatus
- -Compati85,Linage
- -Compati85,Call
- -Compati85,Power
- -Compati85,NoPropagate
- -Compati85,NoPropagateオプションは,CALL文のほかにINVOKE文,および利用者定義関数の呼び出しの場合にも,伝播が抑止されます。なお,CALL文,INVOKE文,および利用者定義関数を使用していない場合,このオプションは意味を持ちません。
(3) -H8Switchオプション
(a) 形式
-H8Switch
-noH8Switch
(b) 機能
- -H8Switch
- HITAC8000シリーズの仕様でコンパイルするためのオプションです。
- 次の文で,送り出し側作用対象が数字項目(または固定小数点数字定数)で,受け取り側作用対象が英数字項目(または英数字編集項目)の場合,数字項目を英数字項目とみなして転記します。
- MOVE
- WRITE FROM
- REWRITE FROM
- RELEASE FROM
- ACCEPT FROM DAY
- ACCEPT FROM DATE
- ACCEPT FROM TIME
- ACCEPT FROM DAY-OF-WEEK
- また,比較条件で,両辺の組み合わせが数字項目(または固定小数点数字定数)と英数字項目(または英数字編集項目,英字項目,英数字定数)の場合,数字項目を英数字項目とみなして比較します。
- このオプションを指定しなかった場合,数字項目は数字項目として転記,比較されます。
- -noH8Switch
- -H8Switchオプションの指定を打ち消します。
(4) -Cblctrオプション
(a) 形式
-Cblctr
-noCblctr
(b) 機能
- -Cblctr
- 報告書作成機能を使用するときに指定します。このオプションを指定すると,CBL-CTR特殊レジスタが生成され,COBOLプログラムと報告書作成機能間で連絡ができるようになります。
- 詳細は,マニュアル「COBOL2002 言語 拡張仕様編 7. 報告書作成機能の拡張」を参照してください。
- -noCblctr
- -Cblctrオプションの指定を打ち消します。
(5) -DigitsTruncオプション
(a) 形式
-DigitsTrunc
-noDigitsTrunc
(b) 機能
- -DigitsTrunc
- 原始プログラム中の転記文で受け取り側作用対象が2進項目の場合,送り出し側作用対象のけたが受け取り側作用対象よりも大きいときに,上位のけたを切り捨てます。
- (例)次のプログラムの実行結果を示します。
77 A PIC S9(4) USAGE COMP VALUE +123.
77 B PIC S9(2) USAGE COMP.
:
MOVE A TO B.
- -DigitsTruncオプションを指定した場合 …… +23
- -DigitsTruncオプションを指定しない場合 … +123
- このオプションを指定しなかった場合,原始プログラム中の転記文で受け取り側作用対象が2進項目のとき,送り出し側作用対象の有効けた数が受け取り側作用対象よりも大きいと,入り切らない部分が切り捨てられます。
- -noDigitsTrunc
- -DigitsTruncオプションの指定を打ち消します。
(c) 注意事項
- -DigitsTruncオプションと-Comp5オプションを同時に指定した場合,あとに指定したオプションだけが有効となります。
(6) -IgnoreLCCオプション
(a) 形式
-IgnoreLCC
-noIgnoreLCC
(b) 機能
- -IgnoreLCC
- WRITE~ADVANCING/POSITIONING文で書き出すレコードの先頭1バイトを出力しないことを指定します。
- あらかじめ,レコード記述項で行送り制御文字用の1バイト分の領域を確保しておいたプログラムをコンパイルするときに指定します。ただし,次の場合には-IgnoreLCCオプションの指定があっても,レコードの先頭から出力されます。
- 順ファイル以外のファイルの場合
- 順ファイルのWRITE文に行送りの指定(ADVANCING,POSITIONING)がない場合
- 順ファイルのファイル記述項にLINAGE句の指定がある場合
- -noIgnoreLCC
- -IgnoreLCCオプションの指定を打ち消します。
(7) -CmAsterオプション
(a) 形式
-CmAster
-noCmAster
(b) 機能
- -CmAster
- 固定形式正書法のとき,行の先頭文字(1カラム目の文字)が標準コードの星印(*)である行を注記行とします。
- ただし,このオプションは固定形式正書法で記述されたCOBOLソースファイルをコンパイルするときだけ有効となります。
- -noCmAster
- -CmAsterオプションの指定を打ち消します。
(8) -CmDolオプション
(a) 形式
-CmDol
-noCmDol
(b) 機能
- -CmDol
- 固定形式正書法のとき,行の先頭から7カラム目の文字が「$」記号である行を注記行とします。
- ただし,このオプションは固定形式正書法で記述されたCOBOLソースファイルをコンパイルするときだけ有効となります。
- -noCmDol
- -CmDolオプションの指定を打ち消します。
(9) -Comp5オプション
(a) 形式
-Comp5
-noComp5
(b) 機能
- -Comp5
- COBOLプログラム中のUSAGE句のCOMP-5を使用できるようにするオプションです。
- このオプションを指定すると,COMP-5は,COMPを指定した場合と同様に処理されます。このオプションを指定しなかった場合,USAGE句にCOMP-5が指定されているとエラーになります。
- COMP-5は,-BigEndian,Binオプションの対象にはなりません。(Linuxで有効)
- COMP-5を指定できる場所は,COMPを指定できる場所と同じです。また,COMP-5は,COMPと同じ仕様となるため,PICTURE句のけた数,データのバイト数,および実際に格納できる数値は次のとおりです。
表31-2 COMP-5で実際に格納できる数値
PICTURE句のけた数 | データのバイト数 | 実際に格納できる数値 |
---|
符号あり | 符号なし |
---|
1~4けた | 2バイト | -215~215-1 | 0~215-1 |
5~9けた | 4バイト | -231~231-1 | 0~231-1 |
10~18けた | 8バイト | -263~263-1 | 0~263-1 |
- -noComp5
- -Comp5オプションの指定を打ち消します。
(c) 注意事項
- -Comp5オプションと-DigitsTruncオプションを同時に指定した場合,あとに指定したオプションだけが有効となります。
(10) -V3Specオプション
(a) 形式
-V3Spec〔,CopyEased〕
-noV3Spec
(b) 機能
- -V3Spec
- VOS3 COBOL85でサポートされていない,UNIX固有の言語仕様に対して構文チェックするためのオプションです。
- VOS3 COBOL85 09-00を対象として,ほぼ同等の言語仕様で構文チェックをし,VOS3 COBOL85ではサポートされていないUNIX固有の言語仕様に対して警告メッセージを出力します。
- 出力するオブジェクトファイルは,このオプションの影響を受けません。
- このオプションは,VOS3 COBOL85互換機能です。
- -V3Spec,CopyEased
- -V3Specオプションで指定された構文チェックの範囲を緩和し,COPY文,REPLACE文の一部のエラーチェックをしません。
- このオプションは,VOS3 COBOL85互換機能です。
- -noV3Spec
- -V3Specオプションの指定を打ち消します。
- -V3Specオプションを指定した場合,-V3Rec,Variableオプションが仮定されますが,-noV3Specオプションを指定しても,仮定された-V3Rec,Variableオプションは打ち消されません。
(c) 注意事項
- 日本語項目の部分参照については,VOS3 COBOL85のXCOBOL=(-N)オプションを指定した状態を対象とします。
- -V3Specオプションと-CompatiV3オプションを同時に指定した場合,一部のチェック項目が重複するため,-CompatiV3オプションのエラーメッセージが出力され,このオプションのエラーメッセージは出力されません。
- -V3Specオプションを指定すると,-V3Rec,Variableオプションが仮定されます。このため,固定長形式でコンパイルする場合は-V3Rec,Fixedオプションを同時に指定する必要があります。
- -V3Specオプションと次のオプションを同時に指定すると,-V3Specオプションが有効になり,次のオプションは無効になります。
-Comp5 -CmAster -BinExtend -CBLVALUE -Bin1Byte
-NumAccept -CmDol -MaxDigits38 -IntResult,DecFloat40
- 次の機能は,このオプションではチェックされません。
- データコミュニケーション機能
- 構造型データベース(XDM/SD)操作シミュレーション機能
- リレーショナルデータベース(XDM/RD)操作シミュレーション機能
(11) -V3ConvtNameオプション
(a) 形式
-V3ConvtName
-noV3ConvtName
(b) 機能
- -V3ConvtName
- 原文名定数の「¥」を「_」に,「@」を「!」に変換した名称で登録集原文を検索する場合,このオプションを指定します。このオプションは,COPY文およびINCLUDE文で有効になります。また,原文名定数の末尾の拡張子を省略した場合は,「.cbl」が仮定されます。なお,原文名指定の場合は,このオプションの対象となりません。
- (例1)原文名定数に¥,@が含まれる場合
- 原文名定数中に¥,@が含まれる場合は,-V3ConvtNameオプションを指定してコンパイルします。
- COPY '¥ABC'.
_ABC.cblを登録集原文として検索します。
- COPY '@ABC'.
!ABC.cblを登録集原文として検索します。
- (例2)原文名に¥,@が含まれる場合
- ¥,@,#は,COBOL2002では原文名に使用できない文字のため,コンパイルエラーとなります。この場合は,¥,@を含む原文名を定数指定に変更してから-V3ConvtNameオプションを指定してコンパイルします。※
- COPY ¥ABC. → COPY '¥ABC'.
_ABC.cblを登録集原文として検索します。
- COPY @ABC. → COPY '@ABC'.
!ABC.cblを登録集原文として検索します。
- -V3ConvtNameオプションを使用しない場合は,¥,@を¥,@,#以外の文字に変更してください。
- 注※
- #を含む原文名は,原文名定数に変更するだけで使用できます。
-
- COPY文での登録集原文の利用については,「31.3.1 原始文操作機能」を参照してください。
- このオプションは,VOS3 COBOL85互換機能です。
- -noV3ConvtName
- -V3ConvtNameオプションの指定を打ち消します。
(12) -Switchオプション(HP-UX(IPF),HP-UX(IPF64),AIX(32),AIX(64),Linux(IPF64),Solaris(SPARC)で有効)
(a) 形式
-Switch,{EBCDIC|EBCDIK}
-noSwitch
(b) 機能
字類条件をEBCDICコードまたはEBCDIKコードに切り替えるためのオプションです。このオプションを指定しないときの字類条件はASCIIコードとなります。
- -Switch,EBCDIC
- 字類条件をEBCDICコードに切り換えます。
- -Switch,EBCDIK
- 字類条件をEBCDIKコードに切り換えます。
- -noSwitch
- -Switchオプションの指定を打ち消します。
(c) 注意事項
- 字類条件の判断基準と文字の大小関係
- プログラムに記述した字類条件に対するコードの判断基準と文字の大小関係を,次に示します。
表31-3 字類条件の判断基準と文字の大小関係
条件 | ASCII | EBCDIC | EBCDIK |
---|
字類の判断基準 | ALPHABETIC | a~z,A~Z | A~Z,a~z | A~Z |
ALPHABETIC-UPPER | A~Z | A~Z | A~Z |
ALPHABETIC-LOWER | a~z | a~z | - |
文字の大小関係 | a~z>A~Z | a~z<A~Z | a~z<A~Z |
組み込み関数の結果 | UPPER-CASE | a~z→A~Z | a~z→A~Z | a~z→A~Z |
LOWER-CASE | A~Z→a~z | A~Z→a~z | A~Z→a~z |
- (凡例)
- -:字類条件が真になる事はない
- >:大きい(a>b aはbより大きい)
- <:小さい(a<b aはbより小さい)
- →:置換(a→b aをbに置換する)
-
- なお,PROGRAM COLLATING SEQUENCE句との背反があった場合,コンパイル時にエラーとなります。
- -Switchオプションの対象
- -Switchオプションの対象は,英数字項目です。
- 比較のときに使用する照合順序として,1バイトの印字可能文字は対応する文字位置に割り当てられ,その他の印字できないコードはすべてX'FF'に割り当てられます。
- -Switchオプションを指定したプログラムでの比較結果
- -Switchオプションを指定したプログラムでは,比較結果で注意が必要です。
- 次のように,日本語データや集団項目を比較条件に指定している場合は,等しいと解釈されたり,大小関係が逆転することがあります。
- データ種別
- 日本語データ
- 集団項目中に,用途(USAGE句)がDISPLAY以外の数字項目(内部,または2進形式)の基本項目がある(集団項目は英数字項目とみなして比較されます)。
- 比較結果
- 日本語データや数字データで,1バイトの印字できないコードでは,等しいと解釈されることがあります。
- 日本語データや数字データで,1バイトの印字可能文字では,字類条件がEBCDICコードまたはEBCDIKコードに切り替わり,大小関係が逆転することがあります。
(13) -V3Recオプション
(a) 形式
-V3Rec,{Fixed|Variable}
-noV3Rec
(b) 機能
ホスト(VOS3 COBOL85)の固定長または可変長レコード形式のプログラムを,VOS3 COBOL85の日本語文字の扱いに合わせてコンパイルするためのオプションです。
- -V3Rec,Fixed
- VOS3 COBOL85の固定長レコード形式のCOBOL原始プログラムを,VOS3 COBOL85の日本語文字の扱いに合わせてコンパイルします。
- -V3Rec,Variable
- VOS3 COBOL85の可変長レコード形式のCOBOL原始プログラムを,VOS3 COBOL85の日本語文字の扱いに合わせてコンパイルします。
- -V3Rec,Variableオプションは,-CompatiV3オプションと同時に指定できます。また,-CompatiV3オプションを指定すると,-V3Rec,Variableオプションが仮定されます。
- -noV3Rec
- -V3Recオプションの指定を打ち消します。
(c) 注意事項
- -V3Recオプションと-EquivRuleオプションを重複指定した場合,あとに指定したオプションを優先します。
- このオプションを指定した場合,このシステムの標準コードと拡張コードの等価規則は適用されません。また,日本語文字定数に標準コードの空白を書いてもエラーとはなりません。ただし,日本語文字定数に空白以外の標準コード文字を書けますが,警告レベルのエラーとなります。なお,日本語文字定数の標準コード文字数は偶数としてください。日本語文字定数の標準コード文字数が奇数の場合,警告レベルのエラーとし,日本語文字定数に標準コードの空白を追加します。
- VOS3 COBOL85の固定長レコード形式の原始プログラムと可変長レコード形式の原始プログラムは,このオプションを指定したときだけコンパイルできます。
したがって,COPY文で複写した原始プログラムを含め,固定長レコード形式の原始プログラムと可変長レコード形式の原始プログラムは同時にコンパイルできません。
- このオプションを指定した場合,72カラムより前に改行文字があるCOBOL原始プログラムは,改行文字から72カラムまで空白に置き換えてコンパイルされます。
- このオプションは,自由形式正書法で書かれたCOBOL原始プログラムをコンパイルする場合には指定できません。指定した場合,エラーとなってコンパイルが中止されます。
- このオプションを指定した場合,英数字定数の分離符には,アポストロフィ(')だけが使用できます。
(14) -DoubleQuoteオプション
(a) 形式
-DoubleQuote
-noDoubleQuote
(b) 機能
- -DoubleQuote
- VOS3 COBOL85互換に関連するオプションである-V3Rec,-CompatiV3のどちらかを指定したときに,英数字定数の分離符として引用符( " )を用いることを指定するオプションです。このオプションを指定しないときは,アポストロフィ( ' )を分離符として用います。
- -V3Recオプション,-CompatiV3オプションのどちらも指定していない場合は,-DoubleQuoteオプションを指定しても無効となります。この場合は,引用符( " ),アポストロフィ( ' )のどちらも分離符として使用できます。
- ただし,SQL文中の定数の分離符は,-DoubleQuoteオプションの指定に関係なく,常にアポストロフィ( ' )を使用します。
- また,QUOTE表意定数は,-V3Recオプション,-CompatiV3オプションの指定に関係なく,-DoubleQuoteオプション指定時は引用符( " )を意味し,-DoubleQuoteオプション指定なしのときはアポストロフィ( ' )を意味します。
- なお,このオプションは,翻訳指令に対しても有効となります。
- -noDoubleQuote
- -DoubleQuoteオプションの指定を打ち消します。
(15) -BigEndianオプション(Linuxで有効)
(a) 形式
-BigEndian{,Bin|,Float}+
-noBigEndian
(b) 機能
用途(USAGE句)が2進または浮動小数点のデータ項目の形式を,ビッグエンディアン形式にするためのオプションです。
- -BigEndian,Bin
- 用途が2進(BINARY,COMP,COMP-4)のデータ項目の形式を,ビッグエンディアン形式にします。
- このオプションを指定した場合,2進項目を演算などで参照すると,実行性能が劣化します。このため,必要のないかぎりこのオプションは指定しないでください。
- -BigEndian,Float
- 用途が浮動小数点(COMP-1,COMP-2)のデータ項目の形式を,ビッグエンディアン形式にします。
- このオプションを指定した場合,浮動小数点を演算などで参照すると,実行性能が劣化します。このため,必要のないかぎりこのオプションは指定しないでください。
- -noBigEndian
- -BigEndianオプションの指定を打ち消します。
(c) 注意事項
- ビッグエンディアン形式とリトルエンディアン形式との違い
- コンピュータで扱うバイナリ形式のデータ(2進データ,内部浮動小数点数字データ)には,ビッグエンディアン形式とリトルエンディアン形式の2種類があります。
- これは,マイクロプロセッサのアーキテクチャの違いによるもので,システムによって採用されるエンディアン形式が異なります。システムごとのエンディアン形式を次に示します。
システム | エンディアン形式 |
---|
Windows Linux | リトルエンディアン |
HP-UX(IPF) HP-UX(IPF64) AIX(32) AIX(64) Solaris(SPARC) | ビッグエンディアン |
- ビッグエンディアン形式とリトルエンディアン形式では,バイナリデータがメモリ上に配置されるときの順序が次の例のように逆になります。
- (例)
- 10(=H'0000000A')が4バイトのメモリに配置された場合の違い
![[図データ]](figure/zu020300.gif)
- ビッグエンディアン形式では左側から右側へ1バイトずつ配置されるのに対して,リトルエンディアン形式では右側から左側へ1バイトずつ配置されます。このため,ビッグエンディアン形式のシステムとリトルエンディアン形式のシステムで同じデータを扱う場合でも,参照のしかたによっては違った結果になることがあります。-BigEndianオプションは,このような場合にデータを正しく処理できるようにするために使用します。
- -BigEndianオプションの使い方
- リトルエンディアン形式のシステムで2進データをそのまま参照したり,リトルエンディアン形式のシステムで作成したファイルを参照したりする場合は,このオプションを指定する必要はありません。しかし,REDEFINES句などで英数字データを2進データとして参照したり,ビッグエンディアン形式のシステムで作られたファイル(可変長ファイルは対象外)を参照したりする場合は,ビッグエンディアン形式のシステムとリトルエンディアン形式のシステムで2進データ,内部浮動小数点数字データの表現形式が異なるため,このオプションを指定する必要があります。このオプションは次のような場合に指定してください。
- ビッグエンディアン形式のシステム上で開発した2進データや内部浮動小数点数字データのメモリ上での配置を意識しているようなプログラムをリトルエンディアン形式のシステム上に移植する場合
- ビッグエンディアン形式のシステム上で作成した2進データや内部浮動小数点数字データを含むファイルをそのままリトルエンディアン形式のシステム上へ移行し,リトルエンディアン形式のシステム上のプログラムで参照する場合
- ビッグエンディアン形式のシステム上で開発したREDEFINES句でほかの形式のデータ項目を2進データとして参照するようなプログラムをリトルエンディアン形式のシステム上に移植する場合
- 使用上の注意
- -BigEndianオプションの使用上の注意を次に示します。
- C言語と連携している場合,-BigEndian,Binオプション指定時には,Cプログラムとインタフェースを取る2進データはCOMP-5で定義してください。
- コマンド行に指定した引数を受け取る場合(16.2.2 引数の受け取り方法(C言語インタフェースに従った形式の場合)または16.2.3 引数の受け取り方法(VOS3インタフェースに従った形式の場合)を参照)-BigEndian,Bin指定時には,連絡節の2進データは,COMP-5で定義してください。
- 2進項目を引数とするサービスルーチンは,受け取る項目をCOMP-5で定義してください。
- CALL文でLENGTH OF 一意名を指定した場合,呼び出し先プログラムは,受け取る項目をCOMP-5で定義してください。
- HP-UX(IPF),AIX(32),またはSolaris(SPARC)でXMAP3を使用する場合は,XMAP3のオプションと合わせる必要があります。
- 索引ファイル,および整列併合機能で使用するキーデータ項目の2進データ項目は,リトルエンディアン形式でキーを大小比較します。このため,このオプションを指定したビッグエンディアン形式では,正常に動作できません。
キーデータ項目の2進データ項目はCOMP-5で定義するか,またはリトルエンディアン形式データとしてください。
(16) -Internationalオプション
(a) 形式
-International
-noInternational
(b) 機能
- -International
- インターナショナリゼーション機能を使用するときに指定します。インターナショナリゼーション機能の適用範囲は,ロケールが日本語または英語に対応するときだけです。インターナショナリゼーション機能を使用すれば,通貨記号を自動的に変換できます。
- -noInternational
- -Internationalオプションの指定を打ち消します。
(17) -EucPositionオプション(HP-UX(IPF),HP-UX(IPF64),AIX(32),AIX(64),Linux(IPF64),Solaris(SPARC)で有効)
(a) 形式
-EucPosition
-noEucPosition
(b) 機能
- -EucPosition
- EUCコード使用時,見かけ上の文字位置で固定形式正書法の境界を決定するときに指定します。このオプションを指定した場合の半角かたかな文字の扱いは,正書法の境界を決定するときには見かけ上の1バイトとして扱われますが,文字定数中の半角かたかな文字は2バイトとして扱われます。
- -noEucPosition
- -EucPositionオプションの指定を打ち消します。
(c) 注意事項
- -EucPositionオプションは,EUCコード使用時,固定形式正書法のCOBOLソースファイルに対してだけ有効です。
- -EucPositionオプションを指定した場合,次の項目中に3バイトコード文字は使用できません。
- COBOLソースファイル,および登録集原文中
- COBOLソースファイルのファイル名
- カレントディレクトリ,およびCOBOLソースファイルがあるディレクトリのパス名
- 登録集名の環境変数,および環境変数CBLLIBに指定したディレクトリのパス名
- 環境変数CBLFIX,および環境変数CBLFREEに指定したサフィックス名