この章では、コンパイラの制御に使用できる指令を一覧表示し、それぞれの詳細を説明します。 最初の項では、指令名をカテゴリ別に分類し、それそれの指令の目的を簡単に示します。これを利用して目的に合った指令を探してください。2 番目の項では、各指令の詳細をアルファベット順に説明します。
指令の設定に関しては、『コンパイラの使用』 の章の『指令の設定』の項を参照してください。
次に、コンパイラ指令のカテゴリを示します。 カテゴリを選択すると、選択したカテゴリ内の指令が一覧表示されます。次に、該当する指令を選択すると、パラメータ、およびその他の詳細を確認できます。
言語機能の有効化
実行時の動作
マルチスレッド
コンパイラ制御
デバッグと分析のためのコンパイル
データファイルの形式
オブジェクトのコード、サイズ、および最適化
予約済み指令
指令名の後にアスタリスクが示されている場合は、その指令を使用するのに、アドオン製品が必要であることを示します。適切なアドオン製品を用意しないで、これらの指令を使用した場合は、コンパイラからエラーメッセージが出力されませんが、その指令の目的は果たされません。
これらの指令を使用すると、コンパイラで受け取られる言語機能を変更できます。
CICS | * CICS の有効化 |
CICS-CPY | * COPY "CICS-CPY" の挿入 |
CONSTANT | 定数定義 |
DB2 | EXEC SQL コード、DB2 Universal Database API 呼び出しによる置換 |
FCDREG | ファイルのレジスタ |
PREPROCESS | プリプロセッサからソースを受け取る。 |
REWRITE-LS | 行順ファイルへの再書き込み |
SEQCHK | 行番号チェック |
SOURCEFORMAT | 自由形式のコードを使用可能にする。 |
SQL | EXEC SQL コードの、ODBC または OCI ランタイム呼び出しによる置換 |
ACTUAL-PARAMS | 実際のパラメータを指定する。指定されたパラメータは、パラメータで指定されたクラスで正式なパラメータに置き換えられる。 |
ANS85 | ANSI'85 |
COBOL370 | IBM COBOL/370 |
COMS85 | ANSI'85 通信 |
DBCHECK | DBCS のチェック |
DBCS | DBCS のサポート |
DG | Data General |
DIALECT | チェック時、および実行時の動作を、指定した方言の動作と一致させる。 |
DOSVS | IBM DOS/VS COBOL |
FLAG | 方言にフラグを付ける。 |
FLAGCD | 矛盾する指令にフラグを付ける。 |
FLAGSTD | ANSI'85 レベルの機能にフラグを付ける。 |
IBM-MS | IBM / Microsoft COBOL V1.0 |
ISO2000 | ISO2000 |
JAPANESE | 2 バイト拡張 |
MF | Micro Focus COBOL のレベル |
MS | Microsoft COBOL V1 または V2 |
NCHAR | 2 バイト拡張機能 |
OOCTRL | OO プログラム言語の要素 |
OSVS | IBM OS/VS COBOL |
PC1 | IBM / Microsoft COBOL V1.0 |
RM | Ryan-McFarland |
SAA | SAA (システムアプリケーションアーキテクチャ) |
VSC2 | IBM VS COBOL II |
XOPEN | X/Open |
AREACHECK | A 領域のチェック |
CMPR2 | メインフレームとの互換性 |
DIALECT | チェック時、および実行時の動作を、指定した方言の動作と一致させる。 |
DBCSSOSI | シフトイン、シフトアウトの指定 |
LIBRARIAN | -INC の許可 |
MAPNAME | IBM のプログラム名 |
PANVALET | ++INCLUDE の許可 |
PROGID-COMMENT | PROGRAM-ID 内のコメント |
RDW | 可変長レコード |
TRUNCCOPY | コピーファイル名 |
ADDRSV | 予約語の追加 |
ADDSYN | 同義語の追加 |
MAKESYN | 同義語の作成 |
OVERRIDE | 意味の変更 |
REMOVE | 予約解除 |
QUAL | 修飾の許可 |
QUALPROC | 修飾の許可 |
SEG | 区分化の許可 |
TRICKLE | PERFORM の制限 |
これらの指令を使用すると、言語機能の定義が変更されるため、ユーザプログラムのロジックも変更されます。
方言の下に示す指令の動作にも影響があります。
ACCEPTREFRESH | ACCEPT 文 |
ARITHMETIC | 式の評価 |
ASSIGN | EXTERNAL または DYNAMIC の指定 |
ASSIGN-PRINTER | プリンタ出力の指定 |
BWZSTAR | PIC を指定した BWZ * |
CHARSET | ASCII または EBCDIC |
CHECKDIV | 0 による割り算を許可 |
CHECKNUM | 数字フィールドのチェック |
COBFSTATCONV | EXTFH 状態コード |
CONVERTRET | RETURNING 項目のタイプ |
CURRENCY-SIGN | 通貨記号 |
CURRENT-DATE | DDMMYY または MMDDYY |
DEFAULTBYTE | データ部の初期化 |
DEFAULTCALLS | 呼び出し規約 |
DETECT-LOCK | レコードロックの検知 |
EARLY-RELEASE | 古いユーザ構文 |
FOLD-CALL-NAME | 呼び出し名を大文字、または小文字のどちらかにする。 |
FOLD-COPY-NAME | コピーファイル名を大文字、または小文字のどちらかにする。 |
HOST-NUMCOMPARE | 数値比較 |
INDD | ACCEPT 文を READ 文に変換する。 |
INITCALL | モジュールの実行 |
IXNLSKEY | ローカルの文字の照合順序に従って、索引ファイルキーを整列させる。 |
IXNUMKEY | 索引キーを数値順に整列する。 |
LOCKTYPE | ロックされたレコードの読み取り |
NATIVE | 文字の照合順序 |
NLS | NLS の実装 |
OUTDD | DISPLAY 文を WRITE 文に変換する。 |
PRINT-EXT | 拡張子の追加 |
PROTECT-LINKAGE | リンク保護 |
REPORT-LINE | 報告書の 1 行の長さ |
SPZERO | 空白文字を数字の 0 として扱う。 |
STICKY-LINKAGE | パラメータのリンク状態を保つ。 |
TERMPAGE | レポートのページを埋める。 |
TRACE | READY TRACE を有効にする。 |
ZEROLENGTHFALSE | 長さ 0 のテスト |
ZWB | 数字の比較 |
CASE | プログラム名の大文字、小文字を区別する。 |
ALPHASTART | ALPHABET 句での番号付け |
COMP-6 | COMP-6 項目の形式 |
DBSPACE | DBCS 空白文字 |
DIALECT | チェック時、および実行時の動作を、指定した方言の動作と一致させる。 |
FDCLEAR | 書き込み後、レコードバッファをクリアする。 |
FP-ROUNDING | 浮動小数点の項目 |
HOSTFD | ファイルへのレコード領域の割り当ては、OPEN 文でのみ実行し、事前に割り当てを行わない。 |
IBMCOMP | ワード型記憶域モード |
INTDATE | date 本来の機能で使用される、整数形式の日付の起算日の選択 |
ODOSLIDE | 可変長テーブル |
OPTIONAL-FILE | すべてのファイルをオプションファイルとする。 |
PERFORM-TYPE | PERFORM 文からのリターン |
RETRYLOCK | ロックされたレコードへの再アクセス |
SIGN | 符号付き数値の符号の扱い |
SSRANGE | 添字、索引、および部分参照項目を実行時に確認する。 |
STICKY-PERFORM | PERFORM の動作 |
SWITCH-TYPE | ANSI 準拠のスイッチの動作 |
SYMBSTART | ALPHABET 句での番号付け |
TRUNC | 2 進数の切り捨て |
AUTOLOCK | デフォルトのロック |
COMP | 計算用サブセット |
COMP-5 | COMP-5 の動作 |
DE-EDIT | 数字編集動作 |
FILESHARE | デフォルトのロック |
IOCONV | READ-INTO/WRITE-FROM |
MF | Micro Focus COBOL のレベル |
OLDBLANKLINE | BLANK LINE 句 |
OLDINDEX | 索引を添字として扱う。 |
OLDNEXTSENTENCE | NEXT SENTENCE 文 |
OLDREADINTO | READ INTO 文 |
OLDSTRMIX | 同じ STRING、UNSTRING、または INSPECT 内で PIC X および PIC N フィールドの使用を許可する。 |
WRITELOCK | デフォルトのロック |
APOST | QUOTE を ' として扱わせる。 |
BYTE-MODE-MOVE | 重複した移動を制御する。 |
DIALECT | チェック時、および実行時の動作を、指定した方言の動作と一致させる。 |
DYNAM | CANCEL を無視する。 |
FP-ROUNDING | 浮動小数点の項目 |
HOSTNUMMOVE | IBM MOVE 文 |
IBMCOMP | Word-storage mode |
MAPNAME | IBM のプログラム名 |
ODOOSVS | OS/VS 形式の OCCURS DEPENDING ON |
OLDCOPY | ANSI'68 の COPY |
QUOTE | QUOTE = " |
REMAINDER | DIVIDE 文で使用される余りの計算方法の選択。 |
ALIAS | 添字を付ける。 |
ALIGN | データの配置 |
BOUND | 境界チェック |
BOUNDOPT | テーブルの最適化 |
CHECK | 生成コードのすべての実行時チェックを有効にする。 |
LINKCHECK | 連絡節項目のチェック |
PARAMCOUNTCHECK | パラメータの省略 |
PERFORMOPT | 空の段落を参照する PERFORM 文を最適化する。 |
REENTRANT | プログラムを再入可能にする。 |
SERIAL | プログラムを直列にする。 |
CANCELLBR | COPY 文の .lbr ファイルを閉じる。 |
CONVSPACE | ソースコードの空白文字 |
COPYLBR | Copy 文のライブラリを .lbr ファイルとして扱う。 |
INTLEVEL | 移植レベル |
KEEP-INT | .int ファイルを作成する。 |
KEYCHECK | ファイルが開かれたときにキーの数を確認する。 |
P64 | 64 ビットの実行環境で実行するプログラムのコンパイル。 |
PREPROCESS | ソースの前処理 |
PROTOTYPE | CALL プロトタイプをおおまかに、または厳密にチェックする。 |
COBOLDIR | cobol.dir の使用と無視 |
CONFIRM | 指令の表示 |
DIALECT | チェック時、および実行時の動作を、指定した方言の動作と一致させる。 |
DIRECTIVES | 指令ファイル |
DIRECTIVES-IN-COMMENTS | 注記行の指令の有効化 |
SETTING | 指令の出力 |
SHOW-DIR | 指令ファイルの出力 |
USE | 指令のファイルを使用する。 |
BRIEF | メッセージテキストを非表示にする。 |
CHANGE-MESSAGE | メッセージの重大度の変更 |
EDITOR | Editor 用のエラーファイル |
ERRLIST | メッセージのみ出力する。 |
ERRQ | エラーで停止させる。 |
FLAG | 指定した方言以外の機能にフラグを付ける。 |
FLAGAS | フラグをエラーとして表示する。 |
FLAGCD | 矛盾する指令にフラグを付ける。 |
FLAGMIG | OSVS および VSC2 の異なる動作 |
FLAGQ | フラグで停止させる。 |
FLAGSINEDIT | エラーファイルにフラグを表示する。 |
FLAGSTD | ANSI'85 より上のレベルの機能にフラグを付ける。 |
HIDE-MESSAGE | メッセージを非表示にする。 |
INFORETURN | 備考メッセージの戻り値を指定する。 |
MAX-ERROR | コンパイラエラーの上限を指定する。 |
MOVE-LEN-CHECK | 英数字の MOVE 操作で、ソース、およびターゲットの長さを確認する。 |
QUERY | コピーファイルが見つからない場合は停止する。 |
STDERR | STDERR にメッセージを書き込む。 |
WARNING | 出力するメッセージのレベル |
COPYEXT | コピーファイルの拡張子 |
COPYLIST | コピーファイルのリスト |
DATAMAP | データ項目のリスト |
DATE | リストの日付 |
ERRLIST | ソースとエラーメッセージのリスト |
FORM | ページ長を指定する。 |
LINE-COUNT | リストの最後に表示する情報の内容を制御する。 |
LIST | ソースリストファイルの出力先を指定する。 |
LISTPATH | リストファイルへのパスを指定する。 |
LISTWIDTH | ページ幅を指定する。 |
MFCOMMENT | 別形式のコメント |
PREPLIST | プリプロセッサのデバッグリスト |
ソースリストファイルの出力先を指定する。 | |
RAWLIST | 静的情報のリストを作成する。 |
REFNO | コンパイラのバージョン番号をリストに表示する。 |
RESEQ | 行番号を生成する。 |
SEQCHK | 行番号チェック |
SETTING | 指令の出力 |
SHOW-DIR | 指令ファイルの出力 |
TIME | リストに時刻を表示する。 |
VERBOSE | コンパイラメッセージ |
XREF | 相互参照リストを作成する。 |
ZEROSEQ | 行番号内に 0 を追加する。 |
BELL | 停止時の音 |
CONFIRM | 指令の表示 |
ECHO | エラーの表示 |
ECHOALL | 全リストの表示 |
SUPFF | ページヘッドを使用しない |
次の指令を指定すると、コンパイラで、そのプログラムの追加情報が含まれるファイルが作成されます。このファイルは、デバッグ時に使用するソフトウェアに入力する必要があるファイルです。
ANIM | アニメ―ト用 |
COBIDY | Animator ファイルのパス |
EDITOR | Editor 用のエラーファイル |
FLAGSINEDIT | エラーファイルのフラグ |
GNTANLZ | GNT Analyzer を使って分析可能な生成プログラムを作成する。 |
PROFILE | Profiler 用 |
これらの指令はデータファイルに保存するデータの形式を変更します。
CALLFH | 外部のファイルハンドラの呼び出し |
DATACOMPRESS | データ圧縮 |
FILETYPE | データファイルの形式 |
IDXFORMAT | 索引ファイルの構造 |
KEYCOMPRESS | キーの圧縮 |
RECMODE | 固定長、または可変長にする。 |
SEQUENTIAL | SEQUENTIAL 編成の種類を指定する。 |
これらの指令を使用すると、プログラムのロジックを変更することなく、生成されたオブジェクトコードを変更できます。
CALLADIS | 外部の ACCEPT/DISPLAY |
CALLFH | 外部のファイルハンドラ |
CALLMCS | 外部の MCS ハンドラ |
CALLSORT | 外部の整列ハンドラ |
WRITETHROUGH | 書き込み時にバッファを使用しない。 |
LITLINK | パブリックのリテラル |
LITVAL-SIZE | BY VALUE のサイズ |
RTNCODE-SIZE | RETURN-CODE のサイズ |
CICSOPTIMIZE | * BLL セルの最適化 |
HOSTSIGNS | 無効な記号片 |
LNKALIGN | リンクが割り当てられたことを前提とする |
OPT | 最適化レベル |
SEG | 区分化の許可 |
TARGET | マイクロプロセッサ固有の指示 |
この指令は、報告書作成制御モジュールの動作に影響を与えます。
RWHARDPAGE
これらの指令は、旧製品と互換性を持たせるために予約、または、保持されており、効果はありません。これらの指令は使用しないでください。
ADV | ファイルを印刷するための制御文字の追加 |
ENSUITE | |
FASTSORT | |
FCD3 | |
LOCALCOUNT | |
NESTLOCALSTORAGE | |
OLDFILEIO | |
WB2 | |
WB3 |
すべてのコンパイラ指令をアルファベット順に説明します。内容は、指令毎に次の形式で説明します。
指令名と、その簡単な機能説明
構文の表示形式
+--------------. v | >>-.---.-.-------DIRECTIVE-NAME--"parameter(s)"-.->< .-/-+ ..----.-DIRECTIVE-NAME-----------------+ .-NO-+
コンパイラ指令の構文は、railroad tracks(鉄道の線路)と呼ばれる図を使用して示します。これは、指令、およびそのパラメータを線で結び、記述順を示したものです。
これらの図は、左から右に読みます。図は >>
で始まり、><
で終わります。
代わりの方法がある場合は線が分岐し、その後再び結合されます。 線の長さに意味はありません。
上の例では、パラメータの上部にループがあります。これは、繰り返し可能であることを示します。
指令のパラメータは引用符 (" ") で囲んでいますが、他に特別な説明がない限り、引用符のかわりにかっこを使用することができます。 UNIX では、これ以外に等号 (=) を使用することもできます。 引用符を使用した場合は、パラメータに空白文字を含めることができますが、パラメータをかっこで囲んだ場合は、空白文字を使用できません。
引用符を使用する場合は、バックスラッシュ文字 (\) を使用してエスケープする必要があります。コマンド行で等号を含んだオプションを指定する場合は、等号を 2 つ指定する必要があります。
コマンド行でのコンパイラ指令の使用に関する詳細は、『COBOL システムインターフェイス (Cob)』 の章の 『オプションの構成』 の項を参照してください。
構文の図中のスラッシュ (/) は、DOS、Windows、および OS/2 の場合に使用されます。スラッシュは UNIX 環境では無視され、UNIX 特有の指令では表示されません。
その指令に有効なパラメータがあれば、それらを列挙し、内容を説明します。
デフォルト値 | その指令のデフォルトの設定を示します。 |
フェーズ | その指令を使って制御するフェーズを示します。 次のいずれかです。 構文チェック 生成 両方 |
$SET | その指令を原始プログラムの $SET 文で使用できるかどうかを示します。この部分に「最初の行」と記されている場合は、COBOL のコードの第 1 行目の前の $SET 文でのみ使用可能であることを示します。 ソースコード内の $SET 文で指定される指令は 72 列以内にする必要があります。 |
この指令の設定が他の指令の設定に与える影響、または他の指令によって、この指令の設定が受ける影響を示します。
ここには多くの異なる事例が示されますが、それらの事例は次のキーワードで大まかに分類できます。
すぐ | 指定された設定の変更は、その指令のプロセスの一部としてすぐに実行されます。この場合、1 番目に指定した指令で設定された値は、2 番目に指定した指令でリセットすることができます。ただし、この操作は、設定の意味を理解してから実行してください。 |
最後 | 指定された変更は、すべての指令が処理された後で反映されます。この場合、ユーザが新しい値を上書きすることはできません。 |
その指令に関する情報を、コメントで追加します。
メニューで、指令名の次にアスタリスク (*) がある場合は、その指令を使用するには、アドオン製品が必要であることを示します。 これらの指令を適切なアドオン製品を用意しないで使用した場合、コンパイラからエラーメッセージは表示されませんが、その指令の目的は果たされません。
ACCEPT 文の前に、スクリーン節のデータに関連するデータ領域を、対応する作業場所節の項目から更新するかどうかを指定します。
>>-.---.-.----.--ACCEPTREFRESH------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOACCEPTREFRESH |
フェーズ | 構文チェック |
$SET | 最初の行 |
MS、IBM-MS、または PC1 で、すぐに ACCEPTREFRESH に設定されます。
ACCEPTREFRESH を指定すると、スクリーン節のデータ項目を参照する ACCEPT 文の前に、受け取られた項目に従属するスクリーン節の項目に関連するデータ領域すべてが次のように修正されます。
NOACCEPTREFRESH が指定された場合は、スクリーン節のデータ領域は、最後の ACCEPT または DISPLAY 命令の実行結果が残っている状態となります。
パラメータ化されたクラスで形式的なパラメータと置き換えられる実際のパラメータを指定します。
>>-.---.-.----.-ACTUAL-PARAMS--"parameters"------------------------>< .-/-+ .-NO-+
parameters |
1 〜 32 の、空白で区切られたパラメータ |
デフォルト値 | NOACTUAL-PARAMS |
フェーズ | 構文チェック |
$SET | 最初の行 |
ユーザプログラムで予約語として認識されるように、特定の予約語を予約語リストに追加します。 指定した予約語は、どんな方言の指令が有効になっている場合でも追加されます。
+----------. v | >>--.---.--ADDRSV--"rsv-word"-------------->< .-/-+
rsv-word |
いくつかの COBOL の方言では予約語として扱われるが、今回のコンパイルで指定される方言には存在しない可能性がある語を指定します。 |
デフォルト値 | 予約語は追加されません。 |
Phase | 構文チェック |
$SET | 最初の行 |
どんな方言の指令が有効になっている場合でも、指定した予約語は追加されます。
この指令は SETTING 指令を指定して作成されたリストには表示されません。
ユーザ定義の予約語を、既存の予約語の同義語として定義します。
>>--ADDSYN-"rsv-word" = "user-word"-----><
rsv-word |
既存の予約語を指定します。 |
user-word |
既存の予約語とは異なる COBOL 語を指定します。 |
デフォルト値 | 予約語の同義語は作成されません。 |
フェーズ | 構文チェック |
$SET | 最初の行 |
等号 (=) の前後に空白文字を入れる必要があります。読みやすくするために、指令とそのオプションの間にも空白文字を入れることができます。この指令を Cob のコマンド行で -C オプションに指定した場合は、すべての文字列を UNIX のシェルに対して正しくエスケープする必要があります。詳細は、『COBOL システムインターフェイス (Cob)』 の章の 『オプションの構成』 の項を参照してください。たとえば、ADDSYN をコマンド行で指定する場合は次のようにします。
cob -C 'addsyn "low" == "lowlight"' a.cbl
この指令は、SETTING 指令で作成されるリストには表示されません。
制御文字を印刷ファイルの各行の先頭に挿入します。これは、メインフレームの操作と互換性を持たせるための指令です。
>>-.---.-.----.--ADV----------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOADV |
フェーズ | 構文チェック |
$SET | 任意の行 |
ADV は、FILETYPE"11" を設定すると有効になります。
データ項目の別名を使用できるようにします。
>>-.---.-.----.-ALIGN----------------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOALIAS |
フェーズ | 生成 |
$SET | 最初の行 |
SET ADDRESS OF 文を使用すると、2 つの方法で同じデータにアクセスすることができます。つまり、作業場所節で、および連絡節内の 1 項目としてアクセスできます。この方法は「エーリアシング」として知られています。別名を使用するプログラムは、ALIAS を指定してコンパイルする必要があります。
レベル 01 または レベル 77 のデータ項目を割り当てるメモリ境界を指定します。
>>-.---.--ALIGN--"integer"----------------->< .-/-+
integer |
1 つ目のレベル 01 項目の開始位置から、次の項目の開始位置までの距離は、この値の倍数になります。 1 から 255 までの任意の値を指定できます。 |
デフォルト値 | ALIGN"8" |
フェーズ | 構文チェック |
$SET | 最初の行 |
IBMCOMP または NORM を指定するとすぐに ALIGN"8" に設定されます。
RM または RM"ANSI" を指定するとすぐに ALIGN"2" に設定されます。
指定された値の倍数にあたるバイト境界に合わせて、レベル 01 のデータ項目が割り当てられます。
これにより、効率の良い実行結果が得られますが、使用されるメモリは増加します。
integer を 4 の倍数以外に設定すると、生成されるコードの効率が悪くなる可能性があります。
ALPHABET 句をコンパイルする際に、コンパイラに、文字の照合順序内の何番目からカウントさせるかを設定します。
>>-.---.--ALPHASTART--"integer"------------>< .-/-+
integer |
何番目からカウントするかを指定します。 |
デフォルト値 | ALPHASTART"1" |
フェーズ | 構文チェック |
$SET | 最初の行 |
ANSI 準拠の場合は ALPHASTART"1" を使用します。
ALPHASTART"1" を指定した場合の例を示します。
alphabet myalpha is 66, 67
この COBOL 文は、A および B で構成されるアルファベットを宣言します。これは、ASCII 文字の照合順序内を 1 からカウントした場合は、66 番目、および 67 番目の文字が A、および B になるためです。ALPHASTART"0" を指定すると、MYALPHA は B および C で構成されます。
プログラムの中の ALTER 文 を有効にします。
>>-.---.-.----.--ALTER--------------------->< +-/-+ +-NO-+
なし
デフォルト値 | ALTER |
フェーズ | 両方 |
$SET | 最初の行 |
プログラムの中に ALTER 文がないことがわかっている場合、NOALTER を指定すれば、コンパイラが多少効率的なコードを生成できます。
この指令を指定すると、Animator を使用してプログラムをデバッグする際に必要となる追加情報が、コンパイラで生成されます。
>>-.---.-.----.--ANIM---------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOANIM |
フェーズ | 両方 |
$SET | 最初の行 |
WB を指定するとすぐに ANIM に設定されます。
BROWSE を指定すると、最後に ANIM に設定されます。
NOINT または RNIM を指定すると、最後に NOANIM に設定されます。
構文チェックフェーズでは、中間コードファイルが作成されます。
中間コードは、拡張子 .int のファイルに保存されます。このファイルはアニメートできます。また、拡張子 .idy のファイルも作成されます。このファイルには、プログラムをアニメ―トするのに必要な追加情報が記述されています。
.idy ファイルの保存場所は COBIDY 指令で制御します。
ANSI'85 COBOL 標準規格で予約されている語を予約語として扱い、特定の機能の動作を変更して、ANSI'85 COBOL 標準規格の機能と互換性を持たせます。
>>-.---.-.-------ANS85--"SYNTAX"--.-------->< .-/-+ ..----.-ANS85------------+ .-NO-+
SYNTAX | 指令が構文のみに作用し、動作には影響を与えないようにします。 |
デフォルト値 | ANS85 |
フェーズ | 構文チェック |
$SET | 最初の行 |
VSC2 または SAA で、最後に ANS85 に設定されます。
この指令を指定すると、次のように動作が変更されます。
コンパイラに、表意定数 QUOTE を、単一引用符 (') と解釈させます。
>>-------APOST-----------------------------><
なし
デフォルト値 | QUOTE |
フェーズ | 構文チェック |
$SET | 任意の行 |
この指令と反対の意味を持つのは QUOTE 指令です。QUOTE を指定すると、二重引用符文字 (") が使用されます。
前のトークンに関係なく、手続き部の A 領域で始まる字句が、コンパイラで、段落、または節ラベルとして扱われます。
>>-.---.-.----.--AREACHECK----------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOAREACHECK |
フェーズ | 構文チェック |
$SET | 任意の行 |
AREACHECK を指定すると、ピリオドの後の字句のみが有効なラベルとして扱われます。この指令を使用すると、ラベルの前のピリオドを省略した場合に発生するメッセージの重大度が低くなります。この点で、メインフレームのエラー処理と高い互換性を保てます。このようなソースコードの誤りは修正することをお奨めします。
算術式の値の求め方を指定します。
>>-.---.--ARITHMETIC--"arith-type"--------->< .-/-+
arith-type |
適用する動作を指定します。 |
デフォルト値 | ARITHMETIC"MF" |
フェーズ | 構文チェック |
$SET | 不可 |
arith-type には次の値を指定できます。
ENTCOBOL | Enterprise COBOL for z/OS and OS/390 の規則に従って値を切り捨てる。 |
MF | 計算途中の値は切り捨てない。 |
OS390 | COBOL for OS/390 の規則に従って値を切り捨てる。 |
OSVS | OS/VS COBOL の規則に従って値を切り捨てる。 |
VSC2 | VS COBOL II および COBOL/370 の規則に従って値を切り捨てる。 |
TRUNC20 | 算術式の評価の各ステップにおいて、 小数点以下20桁で値を切り捨てる。 これは旧版の Micro Focus COBOL製品と同じ結果を保証するための指定です。 TRUNC20 を指定する場合、INTLEVEL指令の設定をデフォルトの 2 以外にすることはできません。 したがって、18桁以上の数字項目のような新機能を使用することはできません。 |
ARITHMETIC"MF" を指定した場合は値が切り捨てられないため、式の計算は最も正確になります。
SELECT 文に EXTERNAL または DYNAMIC のどちらも指定されていない場合のファイル名の割り当て方法を指定します。
>>-.---.--ASSIGN--"assign-type"------------>< .-/-+
assign-type |
EXTERNAL または DYNAMIC を指定します。ここで割り当て方法を定義します。 |
デフォルト値 | ASSIGN"DYNAMIC" |
フェーズ | 構文チェック |
$SET | 任意の行 |
詳細は、『ファイル操作』マニュアルを参照してください。
索引ファイル、またはすべてのファイルに対して、CALLFH 指令を使用してプログラムをコンパイルした場合は、すべての構文定義、または ASSIGN 指令の設定が、ファイル名マッピングで上書きされます。
ASSIGN TO PRINTER 句でファイル名が指定されていない場合に、出力の割り当て方法を指定します。
>>-.---.-.-----ASSIGN-PRINTER.-"filename"-.-.-->< .-/-+ | .-()---------+ | .-NO--ASSIGN-PRINTER---------------+
filename |
ASSIGN TO PRINTER 句に関連付けるファイルを指定します。 |
デフォルト値 | NOASSIGN-PRINTER |
フェーズ | 構文チェック |
$SET | 任意の行 |
ASSIGN TO PRINTER 句内でファイル名が指定されている場合は、この指令は無効になります。
ASSIGN-PRINTER"filename" を指定すると、指定したファイル名に出力されます。filename にはパス名、基本名、および拡張子も含めた完全な名前を指定できます。
ASSIGN-PRINTER() を使用すると、次の COBOL 文を記述した場合と同じ動作になります。
select ファイル名-1 assign to printer ファイル名-1
つまり、作成した COBOL プログラムで使用されるファイル名が、出力用のファイル名としても使用されます。内部のファイル名が長すぎて、使用するオペレーティングシステムで処理できない場合は、ファイル名が、そのオペレーティングシステムで許可されている最大長まで切り捨てられます。
ASSIGN-PRINTER() を指定した場合は、デフォルトでは filename に拡張子は付きませんが、PRINT-EXT 指令を使用して、拡張子を指定することができます。
マルチユーザ環境で、I-O または EXTEND のために開かれたファイルに対して、デフォルトのロックを EXCLUSIVE ではなく、AUTOMATIC に設定します。
>>-.---.-.----.--AUTOLOCK------------------>< .-/-+ .-NO-+
なし
デフォルト値 | NOAUTOLOCK |
フェーズ | 構文チェック |
$SET | 最初の行 |
この指令は、状態が WRITELOCK と同じ場合は、SETTING のリストに表示されません。この場合、2 つの指令の状態は、FILESHARE 指令の状態から判断できます。
この指令は、古いファイル共有製品と互換性を持たせるために提供されています。新しいプログラムを記述する際はに、この指令ではなく、ロック構文を使用してください。
エラー発生、または、コンパイルの終了のどちらかで、コンパイルが停止した場合などにベルを鳴らします。
>>-.---.-.----.--BELL---------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOBELL |
フェーズ | 構文チェック |
$SET | 最初の行 |
添字、または索引値が、OCCURS 句で定義された制限内に納まるようにチェックします。
>>-.---.-.----.--BOUND--------------------->< .-/-+ .-NO-+
なし
デフォルト値 | BOUND |
フェーズ | 両方 |
$SET | 最初の行 |
BOUND を指定すると、最後に NOBOUNDOPT が設定されます。
CHECK で BOUND に設定されます。
多元的なテーブルの場合は、合成添字のみがチェックされます。個々の添字、または索引のうち、制限値を超えているものがあっても、テーブル内にその参照が残っている場合は、エラーになりません。
USAGE DISPLAY 添字用に生成されたコードを最適化します。
>>-.---.-.----.--BOUNDOPT------------------>< .-/-+ .-NO-+
なし
デフォルト値 | BOUNDOPT |
フェーズ | 生成 |
$SET | 任意の行 |
BOUND を指定すると、最後に NOBOUNDOPT に設定されます。
BOUNDOPT が使用されると、テーブルサイズ以上の USAGE DISPLAY 添字の桁は無視されます。
この指令は、NOBOUND が指定された場合のみ使用できます。プログラムでテーブルの末尾以降が参照される場合は、NOBOUNDOPT を指定する必要があります。
エントリが 50 あるテーブルの場合に、添字 PIC 9(3) は、PIC 9(2) として処理され、もっとも重要な桁が無視されます。
エラー番号のみがコンパイラで出力されるようにし、メッセージテキストが生成されないようにします。
>>-.---.-.----.--BRIEF--------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOBRIEF |
フェーズ | 構文チェック |
$SET | 任意の行 |
COBOL 方言 Siemens BS2000 で予約されている語をこの COBOL システムの予約語とし、特定の機能の動作を変更して、この COBOL 方言との互換性が保たれるようにします。
>>-.---.-.----.--BS2000------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOBS2000 |
フェーズ | 構文チェック |
$SET | 最初の行 |
ピクチャ記号、* を使ってフィールドが定義されている場合に、これらのフィールドに対するデータ部での BLANK WHEN ZERO 句の扱いを決定します。
>>-.---.-.----.--BWZSTAR------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOBWZSTAR |
フェーズ | 構文チェック |
$SET | 任意の行 |
BWZSTAR を指定すると、ピクチャ記号、* を使用して定義されたフィールドに対して BLANK WHEN ZERO 句が使用できます。BLANK WHEN ZERO は、そのフィールドが編集操作の対象で、結果が 0 の場合に有効です。NOBWZSTAR が指定されると、PIC * フィールドに関連する BLANK WHEN ZERO 句は無効になります。
データ項目の重複に関する動作を制御します。
>>-.---.-.----.--BYTE-MODE-MOVE------------>< .-/-+ .-NO-+
なし
デフォルト値 | NOBYTE-MODE-MOVE |
フェーズ | 構文チェック |
$SET | 最初の行 |
ハイフンを使わずに BYTEMODEMOVE と指定しても、コンパイラでは認識されます。
この指令は、前方重複移動、つまり、ターゲットデータ項目の開始位置が、ソースデータ項目の終了位置と重なる場合の処理に関して、IBM メインフレームコンパイラと互換性を持たせるために提供されています。
BYTE-MODE-MOVE が指定された場合は、データがソースからターゲットに、一度に 1 バイトずつ移動されます。
NOBYTE-MODE-MOVE が指定された場合は、データがソースからターゲットに、一度に 2 バイト、4 バイト、またはそれ以上のバイト数の (環境に依存) グラニュール単位で移動されます。そのため、重複部分がグラニュールのサイズよりも小さい場合は、グラニュールを移動するたびに、次に移動されるグラニュールの一部が上書きされます。
呼び出しの後で、制御が戻されるたびにプログラムが現在の呼び出し回復状況をチェックするようにします。制御の出口が有効な場合は、プログラムは GOBACK を実行します。つまり、次の文に進まずに、COBOLの呼び出しチェインに制御を戻します。
>>-.---.--------CALL-RECOVERY------->< +-/-+
この指令は、次の環境で実行できるようにプログラムをコンパイルする場合に必要です。
形式 1 の ACCEPT、DISPLAY、および EXHIBIT 文すべてを、指定したハンドラを使用してルーティングします。
>>-.---.-.-------CALLADIS--"handler-name"-.-->< .-/-+ ..----.-CALLADIS-----------------+ .-NO-+
handler-name |
ハンドラとして呼び出して実行する、プログラムのルート名を指定します。 |
デフォルト値 | NOCALLADIS |
フェーズ | 構文チェック |
$SET | 最初の行 |
handler-name が指定されていない場合は、EXTADIS が指定されたものとして動作します。
すべてのファイルの I/O 操作で、コンパイラが呼び出し可能なファイルハンドラインターフェイスを使用して直接呼び出しを実行するようにします。
>>-.---.--------CALLFH--"handler-name"-.-->< .-/-+
handler-name |
ファイルハンドラとして呼び出して実行する、プログラムのルート名を指定します。 |
デフォルト値 | CALLFH"EXTFH" |
フェーズ | 構文チェック |
$SET | 最初の行 |
handler-name には次のいずれかを指定できます。
EXTFH | この COBOL システムで提供されているファイルハンドラ |
FHREDIR | Fileshare Version 2 で使用する場合 |
ユーザ独自のファイルハンドラ |
CALLFH が指定された場合は、すべてのファイル I/O 文が、指令で指定されたファイルハンドラの呼び出しに変換されます。
handler-name が指定されない場合は、Extfh モジュールが指定されたものとして動作します。
この指令は、変換モジュールを通したすべてのファイル処理呼び出しで、非 COBOL のファイルハンドラが使用されるよう指示する場合にも使用します。
標準のファイルハンドラのかわりに、ユーザ独自のファイルハンドラを呼び出すプログラムでもこの指令を使用します。
この指令は、この COBOL システムの内部で使用するために予約されています。設定のリストに表示される可能性があるため、ここで説明しています。ユーザが使用する指令ではないので、この設定を変更しないでください。
メッセージ制御システムの操作すべてを、指定されたハンドラ経由でルーティングされるようにします。
>>-.---.-.-------CALLMCS--"mcs-name"-.----->< .-/-+ ..----.-CALLMCS-------------+ .-NO-+
mcs-name |
メッセージ制御システム (mcs) の操作を処理するために呼び出すプログラムのルート名です。 |
デフォルト値 | NOCALLMCS |
フェーズ | 構文チェック |
$SET | 最初の行 |
mcs-name が指定されない場合は、EXTMCS が指定されたものとして動作します。
すべての SORT 操作、および MERGE 操作の処理に呼び出すプログラムを定義します。
>>-.---.-------CALLSORT--"sort-name"-.--->< .-/-+
sort-name |
分類と併合を処理するために呼び出すプログラムのルート名を指定します。 |
デフォルト値 | CALLSORT"EXTSM" |
フェーズ | 構文チェック |
$SET | 最初の行 |
コピー操作の終了時に、COPY 文でライブラリとして使用された .lbr ファイルを閉じるよう、コンパイラに指定します。
>>-.---.-.----.--CANCELLBR----------------->< .-/-+ .-NO-+
なし
デフォルト値 | CANCELLBR |
フェーズ | 構文チェック |
$SET | 任意の行 |
NOCANCELLBR を指定すると、このような .lbr ファイルは、コンパイルが終了するまで開かれたままになります。次のライブラリを指定しない COPY 文が実行されると、カレントディレクトリよりも先に、開かれているすべての .lbr ライブラリで (最後に開かれたファイルが最初に検索されます)、コピーファイルの検索が行われます 。
この指令は、COPYLBR を指定した場合と同じ働きをします。
[NO]CANCELLBR は、すべての $SET 文で使用できます。.lbr ライブラリは、$SET 文が有効になった後の COPY 文でのみ参照されます。前の COPY 文から開かれたままになっている .lbr ファイルは、次に CANCELLBR 指令が指定された後の COPY 文で、もう一度指定された場合のみ閉じられます。
外部シンボル (プログラム ID やプログラムの名前など) が大文字に変換されないようにします。
>>-.---.-.----.--CASE---------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOCASE |
フェーズ | 生成 |
環境 | すべて |
$SET | 任意の行 |
名前の大文字、小文字を区別する必要がある、C で書かれたプログラムを呼び出す場合に役立ちます。
エラーメッセージの重大度を変更します。 メッセージを非表示にしたり、元の重大度に戻すこともできます。
+-------------. v | >>-.---.-.-----CHANGE-MESSAGE--"error svrty"-.->< .-/-+ .-NO--CHANGE-MESSAGE----------------+
error |
変更するメッセージの番号を指定します。すべてのメッセージを指定する場合は ALL と指定します。 | ||||||||||||
svrty |
変更後の重大度を指定します。
|
デフォルト値 | NOCHANGE-MESSAGE |
フェーズ | 構文チェック |
$SET | 任意の行 |
CHANGE-MESSAGE を使用すると、FLAGAS のような指令の一般的な設定が上書きされます。
CHANGE-MESSAGE には、必要な数のパラメータの組を指定することができます。 CHANGE-MESSAGE を複数回指定すると、結果は累積されます。
CHANGE-MESSAGE は HIDE-MESSAGE コンパイラ指令の機能を引き継ぎます。 ただし、CHANGE-MESSAGE とともに HIDE-MESSAGE を使用した場合も、結果は累積されます。
元々「重大」であるエラーの重大度を下げることはできません。CHANGE-MESSAGE 指令、または FLAGAS 指令や FLAGCD 指令などを使用して、重大度を (「エラー」以下の重大度から) 「重大」に変更したエラーのみ、「重大」なエラーの重大度を下げることができます。
CHANGE-MESSAGE"ALL R" CHANGE-MESSAGE"10 S 135 E 100 N"
FLAGAS コンパイラ指令
FLAGCD コンパイラ指令
HIDE-MESSAGE コンパイラ指令
環境の文字集合を定義します。
>>-.---.--CHARSET--"char-set"-------------->< .-/-+
char-set |
ASCII または EBCDIC を指定します。 |
デフォルト値 | CHARSET"ASCII" |
フェーズ | 構文チェック |
$SET | 最初の行 |
CHARSET"ASCII" を指定するとすぐに DEFAULTBYTE"32"、SIGN"ASCII" および NATIVE"ASCII" が設定されます。
CHARSET"EBCDIC" を指定するとすぐに DEFAULTBYTE"0" が設定され、最後に SIGN"EBCDIC" および NATIVE"EBCDIC" が設定されます。
すべてのリテラル定数、および文字の照合順序が指定された文字集合で処理されます。
現在の制限に関しては、『プログラマーズガイド − アプリケーション作成』を参照してください。
CHARSET"EBCDIC" を設定した場合は、COBOL システムライブラリルーチンのうち、パラメータで英数字のデータを受け取る、または返すルーチンが動作しません。英数字のデータは ASCII である必要があります。
生成コードのすべての実行時チェックを有効にします。
>>--.----.---CHECK------------------>< .-NO-+
なし
デフォルト値 | なし |
フェーズ | 生成 |
$SET | 最初の行 |
CHECK を指定するとすぐに BOUND、LINKCHECK、および PARAMCOUNTCHECK が設定されます。
NOCHECK を指定するとすぐに NOBOUND、NOLINKCHECK、および NOPARAMCOUNTCHECK が設定されます。
CHECK を指定すると、生成コードのすべての実行時チェックが実行されます。実行時チェックでは、次のことが確認されます。
NOCHECK を指定すると、生成コードの実行時チェックは行われません。
ON SIZE ERROR 句が使用されていない文で、プログラムが 0 で割る処理を実行しようとした場合のプログラムの動作を制御します。
>>-.---.-.-------CHECKDIV--"dialect"-.----->< .-/-+ ..----.-CHECKDIV------------+ .-NO-+
dialect |
ANSI、OSVS、VSC2、または COBOL370 のいずれかを指定します。 |
デフォルト値 | CHECKDIV"ANSI" |
フェーズ | 構文チェック |
$SET | 最初の行 |
CHECKDIV、または CHECKDIV"ANSI" を指定すると、プログラムで 0 で割る処理が実行された場合、プログラムは続行されますが、予期しない結果になります。NOCHECKDIV を設定した場合の動作は予期できません。NOCHECKDIV を設定すると、割り算用のオプションのコードの結果になります。
CHECKDIV"OSVS"、CHECKDIV"VSC2"、または CHECKDIV"COBOL370" を指定した場合は、すべて同じ結果になります。つまり、0 で割ろうとすると、実行時エラー 048 (ゼロで割ろうとしている) が発生します。-O ランタイムシステムスイッチを使用して、このエラーを発生させないことができます。
この指令は、ON SIZE ERROR 句が使用されている算術文には影響しません。
数字フィールドへの操作を実行する前に、有効なデータが入っていることを確認します。
>>-.---.-.----.--CHECKNUM------------------>< .-/-+ .-NO-+
なし
デフォルト値 | NOCHECKNUM |
フェーズ | 生成 |
$SET | 最初の行 |
この指令を指定すると、数字フィールドへの操作を実行する前に、有効なデータが入っていることを確認するための特別なコードが生成されます。CHECKNUM を設定した場合、数字以外のデータが入った数字フィールドがあると、実行時エラーメッセージ 163 ("数字項目に違法な文字がある") が表示されます。-F ランタイムシステムスイッチを使用すると、このエラーを非表示にすることができます。
CHECKNUM を指定すると、特別なコードが生成されるため、プログラムの効率が下がります。コードを早く、小さくする場合は、CHECKNUM を指定しないでください。
BLL セルを更新して、CICS を使用可能にします。
>>-.---.-.----.--CICS---------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOCICS |
フェーズ | 構文チェック |
$SET | 不可 |
この指令は、Micro Focus が提供する CICS 製品のアドオンで使用するために予約されています。 適切なアドオン製品を用意していない場合は、この設定を変更しないでください。 これは、CICS OS/2 で使用するものではありません。
CICS を設定した場合に CICS-CPY が設定されていると、コンパイラで、次の行が連絡節の最初に挿入されます。
COPY "CICS.CPY"
プログラムに連絡節がない場合は、次の行が挿入されます。
LINKAGE SECTION. COPY "CICS.CPY". 01 DFHCOMMAREA PIC X(n).
パラメータの内容は次の通りです。
CICS.CPY
|
CICS のバージョン 1、リリース 6 (またはそれ以前) と互換性のある CICS EXEC INTERFACE BLOCK、および DLI INTERFACE BLOCK の定義が入ります。 | ||||
n |
次のいずれかの値になります。
|
DFHCOMMAREA レコードの後の連絡節の項目には、BLL セルが含まれ、各セルは、名前付きで、PIC S9(8) COMP の詳細とともに格納されているものとして扱われます。BLL セルは CICS 規則に従って、対応する連絡節のレコードと結び付けられます。
コンパイラで DFHCOMMAREA レコードが挿入されると、アニメート中や、リストの印刷時に、レコードは表示されません。 ただし、アニメート中にレコードを照会することはできます。BLL セルを使用したプログラムをアニメートする場合は、この指令を設定してください。
CICS 指令が指定されている場合に、COPY "CICS.CPY" 文を挿入します。
>>-.---.-.----.--CICS-CPY------------------>< .-/-+ .-NO-+
なし
デフォルト値 | CICS-CPY |
フェーズ | 構文チェック |
$SET | 不可 |
この指令は、Micro Focus が提供する CICS 製品のアドオンで使用するために予約されています。 適切なアドオン製品を用意していない場合は、この設定を変更しないでください。 これは、CICS OS/2 で使用するものではありません。
CICS BLL セルの処理を最適化します。
>>-.---.-.----.-.-CICSOPT------.----------->< .-/-+ .-NO-+ .-CICSOPTIMISE-+ .-CICSOPTIMIZE-+
なし
デフォルト値 | NOCICSOPTIMIZE |
フェーズ | 構文チェック |
$SET | 不可 |
この指令は、当社が提供する CICS 製品のアドオンで使用するために予約されています。適切なアドオン製品を用意していない場合は、この設定を変更しないでください。これは、CICS OS/2 で使用するものではありません。
NOCICSOPTIMIZE が指定されると、コンパイラは、BLL セルが更新されるたびに、BLL セルの現在の値に対応する連絡節項目のアドレス可能度を確認する指示を挿入します。 CICSOPTIMIZE を指定すると、コンパイラによるこれらの指示は挿入されません。アドレス可能度が更新されたことを確認するには、SERVICE RELOAD 指示を指定する必要があります。
この指令を指定すると、メインフレームの同じ名前のコンパイラオプションと互換性を持たせることができます。この指令を指定すると、COBOL 370、VS COBOL II version 3 および VS COBOL II version 4 コンパイラの動作が、VS COBOL II version 2 コンパイラの動作に返されます。
>>-.---.-.----.--CMPR2--------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOCMPR2 |
フェーズ | 構文チェック |
$SET | 最初の行 |
VSC2"3"、VSC2"4" または COBOL370 にフラグが立てられるよう選択する必要があります。
必要なフラグ設定レベルのいずれかが選択されていない場合は、矛盾指令メッセージが出力されます (FLAGCD を指定した場合のみ)。
この指令を設定した場合の動作は、VSC2"2" を設定した場合の動作とは異なります。 この指令を指定すると、メインフレームの動作を綿密にエミュレートできますが、実行時に異なる動作を引き起こす原因にもなります。メインフレーム上で指定されたコンパイラを使用して、CMPR2 指令を設定する場合は、VSC2"2" ではなく、この指令を使用してください。
LAGMIG 指令を指定すると、異なる実行時の動作を引き起こす項目にフラグが付けられます。
ファイル上で I/O エラーが発生した場合に、ファイルの状態を示すコードを変換するため、呼び出し可能なファイルハンドラ ExtFH で、COBFSTATCONV 環境変数に指定したユーザ作成モジュールが使われるようにします。
>>-.---.-.----.--COBFSTATCONV-------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOCOBFSTATCONV |
フェーズ | 構文チェック |
$SET | 最初の行 |
Animator の情報ファイル (.idy ファイル) および COBOL Source Information ファイル (.csi) の書き込み先パスを指定します。
>>-.---.-.-------COBIDY--"pathname"-.----->< .-/-+ ..----.-COBIDY--------------+ .-NO-+
pathname |
パスを指定します。 |
デフォルト値 | NOCOBIDY |
フェーズ | 構文チェック |
$SET | 不可 |
pathname を指定しないと、COBIDY 環境変数内のパス名が使用されます。環境変数に複数のパス名が設定されている場合は、最初に示されているパスが使用されます。NOCOBIDY を指定すると、.idy ファイルは、オブジェクトプログラムと同じパスに書き込まれます。
IBM COBOL/370 で予約されている語を予約語として扱い、部分的な機能が指定したレベルの IBM COBOL/370 製品と互換性を持つようにします。
>>-.---.-.-------COBOL370--"integer"-.----->< .-/-+ ..----.-COBOL370------------+ .-NO-+
integer |
1 または 2 を設定して、互換性を持たせる IBM COBOL/370 のレベルを指定します。 |
デフォルト値 | NOCOBOL370 |
フェーズ | 構文チェック |
$SET | 最初の行 |
COBOL370 を指定すると、DBSPACE および DBCS"3" がすぐに設定されます。
integer には、次の値を設定します。
1 | IBM COBOL/370 の バージョン 1 リリース 1 と互換性を持たせる。 |
2 | IBM COBOL for MVS および VM の バージョン 1 リリース 2 と互換性を持たせる。 |
パラメータを指定しないで COBOL370 を指定した場合は、COBOL370"2" を指定した場合と同じ動作になります。
cobol.dir ファイル内の指令がコンパイラで処理されるようにします。
>>-.---.-.----.--COBOLDIR------------------>< .-/-+ .-NO-+
なし
デフォルト値 | COBOLDIR |
フェーズ | 構文チェック |
$SET | 不可 |
COMP 項目を COMP-X として扱うことで、COMP データ項目を含む文に対し、コンパイラで、簡潔で効率の良いコードが生成されるようにします。
>>-.---.-.----.--COMP---------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOCOMP |
フェーズ | 構文チェック |
$SET | 最初の行 |
コンパイラで生成されたこの COMP コードは、数字のオーバーフローの処理で、ANSI 標準規格とは異なる動作になります。 この指令は、コンパイルするプログラムで、数字のオーバーフローが起こらないことが解っている場合、または、オーバーフローの処理に(非標準であるが)定義された動作が使用される場合にのみ設定してください。
符号なしの COMP-5 データ項目に値が格納された場合の符号の扱いを指定します。
>>-.---.--COMP-5--"integer"---------------->< .-/-+
integer |
1 または 2 を指定します。 |
デフォルト値 | COMP-5"2" |
フェーズ | 構文チェック |
$SET | 最初の行 |
integer には次の値を指定できます。
1 | このコンパイラの古いバージョンと同じ動作になります。符号は削除されます。 |
2 | 符号は削除されません。負の数は、2 の補数の形で格納されるため、バイト機構 がマシンに依存する場合を除いて、符号なしの COMP-5 項目は、COMP-X のような動作になります。そのため、符号なしの COMP-5 項目の演算効率が良くなります。 |
COMP-6 データを 2 進数で保持するか、10 進形式にパックするかを指定します。
>>-.---.--COMP-6--"integer"---------------->< .-/-+
integer |
1 または 2 を指定します。 |
デフォルト値 | COMP-6"2" |
フェーズ | 構文チェック |
$SET | 最初の行 |
RM または MF を設定する必要があります。
RM および RM"ANSI" を指定すると、COMP-6"1" が設定されます。
NORM で COMP-6"2" が設定されます。
integer には次の値を指定できます。
1 | 『言語リファレンス - 追加トピック』の付録 『Ryan McFarland COBOL V2.0 構文支援機能』で説明しているように、COMP-6 のデータには 2 進形式が使用されます。 |
2 | 10 進にパックされた形式が使用されます。符号付きの項目の場合は、COMP-3 と同じ形式になります。符号なしの項目の場合は、符号フィールドが存在しません。 |
COMP-6 指令を指定した場合でも、RM または MF"10" で指定された方言に、予約語 COMP-6 が存在しない場合は認識されません。
COMP-6"2" を指定した場合
PIC 99 COMP-6 VALUE 87 は、x"87" として 1 バイトで格納されます。
PIC S99 COMP-6 VALUE 87 は、x"087C" として 2 バイトで格納されます。
ANSI'85 COBOL 標準規格の 通信モジュールで紹介されている構文を、プログラムで使用することができます。
>>-.---.-.----.--COMS85-------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOCOMS85 |
フェーズ | 構文チェック |
$SET | 最初の行 |
コンパイラに、この後に続くすべての指令を画面に表示させます。
>>-.---.-.----.--CONFIRM-------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOCONFIRM |
フェーズ | 両方 |
$SET | 不可 |
VERBOSE を指定するとただちに、CONFIRM に設定されます。
プログラムで使用する定数を宣言します。
>>-.---.-CONSTANT-const-name-.-(numeric-lit)--.->< .-/-+ .-"alphanum-lit"-+
const-name |
データ名。定数名を指定します。 |
numeric-lit |
数字のリテラル定数。定数の値を設定します。0 または、正の整数を指定します。 |
alphanum-lit |
英数字のリテラル定数。定数の値を指定します。 |
デフォルト値 | 設定されません。 |
フェーズ | 構文チェック |
$SET | 任意の行 |
この指令を使用すると、定数 const-name はプログラム内でレベル 78 に定義されているものとして扱われます。定数の値はかっこ、または引用符で囲んで指定します。かっこが使用された場合は、定数は数字カテゴリの値です。引用符が使用された場合は、英数字カテゴリの値です。
この機能を使って複数の表意定数を宣言する場合は、CONSTANT 指令を繰り返し指定します。
CALL ... RETURNING 句および EXIT PROGRAM ... RETURNING 句で指定された COMP および COMP-X 項目を COMP-5 に変換します。
>>-.---.-.----.--CONVERTRET---------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOCONVERTRET |
フェーズ | 構文チェック |
$SET | 最初の行 |
COBOL ソースファイル内の 2 バイトの空白文字を、入力時に 1 バイトの空白文字に変換します。
>>-.---.-.----.--CONVSPACE----------------->< .-/-+ .-NO-+
なし
デフォルト値 | CONVSPACE |
フェーズ | 構文チェック |
$SET | 最初の行 |
CONVSPACE は、DBSPACE コンパイラ指令が無効になっている場合にのみ有効です。
COPY 文で指定されたファイル名に拡張子が省略されている場合に、コンパイラが検索するコピーファイルのファイル名拡張子を指定します。
+-------------. v | >>-.---.--COPYEXT-"extension-.-------------.-"-->< .-/-+ .-,-extension-+
extension |
ファイル名拡張子 |
デフォルト値 | COPYEXT",cbl,cpy" |
フェーズ | 構文チェック |
$SET | 最初の行 |
拡張子は 8 つまで指定できます。各拡張子の長さは 10 文字までです。拡張子にヌルを指定した場合、拡張子が空白であることを示します。次に例を示します。
COPYEXT"src,,txt"
のように指定すると、拡張子 .src のファイルが最初に検索されます。次に、拡張子なしのファイルが検索され、最後に、拡張子 .txt のファイルが検索されます。
COPY 文で指定されたファイル名に拡張子がない、または、ピリオドが付いている場合、可能性のある拡張子のリストが順番に検索されます。検索は、該当するファイルが検出されるか、リストの終わりまで検索が終了するまで (エラーが報告される) 継続されます。
拡張子が指定されていない COPY 文が多数ある場合に COPYEXT を使用すると、プログラムのコンパイル速度が向上します。たとえば、すべてのコピーファイルのファイ名拡張子が .cpy の場合、COPYEXT"CPY.CBL" を指定すると、不要なファイルがアクセスされずに済みます。
COPY 文で指定されたファイブラリが、コンパイラで .lbr ファイルとして扱われるよう指定します。
>>-.---.-.----.--COPYLBR------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOCOPYLBR |
フェーズ | 構文チェック |
$SET | 不可 |
NOCOPYLBR を指定すると、ライブラリは、コンパイラでパス名として処理されます。
COPY 文で指定されたファイルの内容が、コンパイラで一覧表示されるよう指定します。
>>-.---.-.----.--COPYLIST-.-----------.---->< .-/-+ .-NO-+ .-"integer"-+
integer |
0、または 50 から 99 までの値を指定します。 |
デフォルト値 | COPYLIST |
フェーズ | 構文チェック |
$SET | 任意の行 |
integer は COBOL の区分番号を示します。0 または、50 から 99 の範囲で指定する必要があります。値を指定しない場合は、すべてのコピーファイルの内容が一覧表示されます。値を指定すると、最初の 3 つの部 (つまり、見出し部、環境部、データ部) のすべてのコピーファイルの内容、ルート区分、および、指定された区分が一覧表示されます。integer に 0 を指定すると、最初の 3 つの部、およびすべてのルート区分が示されます。
NOCOPYLIST を指定すると、コピーファイルの内容は一覧表示されません。NOCOPYLIST で区分番号を指定すると、指定された区分のコピーファイルのみが一覧表示されます。次に例を示します。
COPYLIST"53" | 最初の 3 つの部のすべてのコピーファイル、ルート区分、および 区分 53 が一覧表示されます。 |
NOCOPYLIST"53" | 区分 53 にあるコピーファイルのみが一覧表示されます。 |
この指令の状態に関係なく、ページヘッダーが出力される場合は、開かれたコピーファイルの名前がヘッダーに表示されます。
COPYLIST 指令が指定された場合に .lst ファイル内の COPY 文で使用する注記行のタイプを指定します。
◆---+-------+-+--------+--- COPYLISTCOMMENT ---+--------------+---◇ +--- "integer" ---+
integer |
注記行のタイプを指定します。使用できる値は、次のとおりです。 | ||||
|
デフォルト値 | COPYLISTCOMMENT(1) |
フェーズ | 構文チェック |
$SET | 任意 |
この指令は COPYLIST 指令とともに指定しない限り、効果がありません。
この指令は、.lst ファイルの再コンパイル時に MFCOMMENT 指令が必要かどうかを制御します。
PICTURE 句で通貨記号が認識されるようにします。
>>-.---.--CURRENCY-SIGN--"integer"--------->< .-/-+
integer |
指定する文字の ASCII コードを 10 進数で指定します。 |
デフォルト値 | CURRENCY-SIGN"92" ("\" を示します) |
フェーズ | 構文チェック |
$SET | 最初の行 |
有効な PICTURE 句の記号を指定することはできません。指定できない記号の一覧は、『言語リファレンス』 を参照してください。
CURRENT-DATE 特殊レジスタに格納するデータ形式を指定します。
>>-.---.--CURRENT-DATE--"date-format"------>< .-/-+
date-format |
DDMMYYYY または MMDDYYYY を指定します。 |
デフォルト値 | CURRENT-DATE"MMDDYYYY" |
フェーズ | 構文チェック |
$SET | 任意の行 |
DDMMYYYY を指定すると、CURRENT-DATE はヨーロッパ形式で格納されます。パラメータは、大文字で指定することも、小文字で指定することもできます。
CICS のリンクレベルの間でプログラムのデータ部の整合性を保ちます。
>>-.---.--------DATA-CONTEXT------->< +-/-+
この指令は、次の環境でプログラムを実行できるようにコンパイルする場合に必要です。
順ファイル、および索引ファイルで実行するデータ圧縮のタイプを指定します。
>>-.---.-.-----DATACOMPRESS--"integer"-.--->< .-/-+ .-NO--DATACOMPRESS------------+
integer |
次のいずれかを指定します。
|
デフォルト値 | NODATACOMPRESS |
フェーズ | 構文チェック |
$SET | 任意の行 |
ファイルハンドラに指定できる値は 1 と 3 のみです。128 から 255 までの値は、ユーザ定義のファイルハンドラ用のユーザ定義の圧縮ルーチンを示します。
データ圧縮は、ファイルの作成時にのみ指定する必要があります。指定されると、ファイルが開かれた際にデータ圧縮が認識されます。
データ圧縮を個々のファイルに対して実行するには、ユーザのソース内で $SET 文を使用します。ソース内で、該当するファイルの SELECT 文を含む部分にのみ、この指令が有効になります。
データ圧縮は、呼び出し可能なファイルハンドラでのみサポートされます。索引ファイルはすべて、呼び出し可能なファイルハンドラで処理されます。順ファイルに対してデータ圧縮を行う場合は、これらのファイルを参照しているすべてのプログラムを、CALLFH"EXTFH" 指令を指定してコンパイルする必要があります。
コンパイラにデータ項目に関する情報を出力させます。
>>-.---.-.----.--DATAMAP------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NODATAMAP |
フェーズ | 構文チェック |
$SET | 最初の行 |
なし。
この指令は、コンパイラのチェックフェーズでデータ項目に関する情報を出力 させます。該当するデータ項目は、ユーザが指定したものと、コンパイラによ り自動的に生成されるもの(RETURN-CODE 特殊レジスタ用データ領域など)の 両方です。
この情報は、リストファイルの末尾に出力されます。データ項目の情報は、プ ログラム中でコンパイラが検出する順序で出力されます。最初の行は、データ 項目が含まれるプログラムのプログラム ID です。このため、入れ子のプログ ラム用、または 00 クラスプログラム(クラス、オブジェクトメソッド、など) のさまざまな領域用の有効なデータ項目を見ることができます。各データ項目 ごとに、以下の情報の一覧が表示されます。
ss xxxx cccccccccc R E G
変数は、以下を表します。
ss | データ項目の場所。以下のいずれかです。 | |
IO | Input-Output セクション | |
FD | ファイル記述 | |
WS | Working-Storage セクション | |
TL | Thread-Local-Storage セクション | |
OS | Object-Storage セクション | |
LC | Local-Storage セクション | |
LS | Linkage セクション | |
RD | Report セクション | |
SS | Screen セクション | |
PG | コンパイラのチェックフェーズに より生成される特殊レジスタなどの変数 | |
PD | 一時変数。手続き部により生成される Search 文で使用されるものなど。 | |
xxxx | 以下のいずれかです。 | |
G | グループ項目 | |
GO | グループ occurs 項目 | |
GSO | グループ sub occurs 項目 | |
E | 初歩項目 | |
EO | 初歩 occurs 項目 | |
ESO | 初歩 sub occurs 項目 | |
ESOO | 初歩 sub occurs occurs 項目 | |
cccccccccc | データ型の説明。たとえば、 Display、Comp、Comp-3、Numeric E(Numeric Edited を表す) AlphNum J(AlphaNumeric Justified を表す)など。 | |
R | この項目は、他のいずれかの項目を再定義したものです。 | |
E | この項目は、外部のデータ項目です。 | |
G | この項目は、一般的なデータ項目です。 |
Date-Compiled 段落、およびリストの各ページの先頭に指定します。
>>-.---.-.-------DATE--"string"-.---------->< .-/-+ ..----.-DATE-----------+ .-NO-+
string |
英数字のリテラル定数を指定します。 |
デフォルト値 | DATE |
フェーズ | 構文チェック |
$SET | 不可 |
DATE を指定すると、オペレーティングシステムから取得できる日付、および時刻が自動的に挿入されますが、パラメータとして日付を入力することもできます。NODATE を指定すると、段落は変更されません。
DATE を指定すると、オペレーティングシステムの日付、またはユーザが入力した文字列がリストの各ページの先頭に表示されます。NODATE を指定すると、日付のかわりに空白文字が表示されます。
プログラム中の EXEC SQL 文が、DB2 Universal Database API 呼び出しに置き換えられるようにします。
>>-.---.-.----DB2-.----------------------.-.-->< .-/-+ | | +-----.---.-----. | | | | | .-,-+ | | | | | v | | | | .-(.-option=setting-.)-+ | | | | | | .-NO-option------+ | .-NO-DB2--------------------------+
option |
いずれかの DB2 オプション(以下を参照) |
setting |
オプション用の設定 |
デフォルト値 | NODB2 |
フェーズ | 構文チェック |
$SET | 最初の行 |
この指令を使用するには、DB2 UDB Software Development Kit(バージョン 6.1 以前)または DB2 UDB Application Development Client(バージョン 7.1 以降) がインストールされている必要があり、インストールされていない場合は、コン パイラエラーとなります。オプションやその設定など、DB2 指令の使用について 詳しくは、『データベースアクセス』 マニュアルの 『DB2』 の章 を参照してください。
すべての 2 バイトの文字集合 (DBCS) のリテラル定数がコンパイラで確認されるようにします。これらの定数は、有効な 16 ビットの DBCS 文字のみである必要があります。
>>-.---.-.----.--DBCHECK------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NODBCHECK |
フェーズ | 構文チェック |
$SET | 最初の行 |
DBCS データの確認をサポートする環境で DBCHECK を指定すると、無効な 16 ビットの DBCS 文字を含むリテラル定数があった場合に、構文エラー 1048 (DBCS literal includes invalid data) になります。
日本語、中国語、および韓国語などの表意文字言語で使用する場合に、コンパイラで 2 バイトの文字集合 (DBCS) の文字が認識されるようにします。
>>-.---.-.-------DBCS--"integer"-.--------->< .-/-+ ..----.-DBCS------------+ .-NO-+
integer |
1、2 または 3 を設定し、互換性を持たせる動作を指定します。 |
デフォルト値 | NODBCS |
フェーズ | 構文チェック |
$SET | 最初の行 |
SAA、VSC2"2"、VSC2"3"、または MF"7" を指定するとすぐに DBCS"2" に設定されます。
COBOL370、または MF"integer" (integer > 7 の場合)を指定するとすぐに DBCS"3" に設定されます。
integer には次の値を指定できます。
1 | このコンパイラの古いバージョンと同じ動作になります。 |
2 | システムアプリケーションアーキテクチャ (SAA) DBCS をすべてサポートします。この場合、DBSPACE が設定されます。 |
3 | IBM COBOL/370 と同じように、DBCS をサポートします。この場合、PIC N、PIC G、および delimiter N で指定される DBCS リテラルも使用できます。 |
DBCS リテラルで、シフトアウト区切り文字、およびシフトイン区切り文字として使用する 2 つの文字を定義します。
>>-.---.-.----DBCSSOSI-"integer-1"-"integer-2"-.-->< .-/-+ .-NO-DBCSSOSI-------------------------+
integer-1 |
シフトアウト文字の 10 進数の ASCII コードを指定します。 |
integer-2 |
シフトイン文字の 10 進数の ASCII コードを指定します。 |
デフォルト値 | NODBCSSOSI |
フェーズ | 構文チェック |
$SET | 任意の行 |
この指令を使ってシフトアウトおよびシフトイン文字を指定した場合は、各 DBCS リテラルの開始引用符の直後にシフトアウト文字を、閉じ引用符の直前にシフトイン文字を指定する必要があります。これらはリテラル定数への追加区切り文字として働き、値の一部にはなりません。NODBCSSOSI の場合は、シフトアウト文字、およびシフトイン文字を指定する必要はありません。設定しても認識されません。
表意定数 SPACE が DBCS 表意定数として使用された場合に、この定数を、システムが提供する 2 バイトの空白文字としてコンパイラに解釈させます。
>>-.---.-.----.--DBSPACE------------------->< .-/-+ .-NO-+
なし
デフォルト値 | MF"integer" の設定によって異なります。integer が 7 よりも大きい場合は、デフォルト値は DBSPACE になります。それ以外の場合のデフォルト値は NODBSPACE です。 |
フェーズ | 構文チェック |
$SET | 任意の行 |
DBSPACE は、COBOL370、NCHAR"2"、SAA、VSC2"2" または VSC2"3" を指定するとすぐに設定されます。
DBSPACE は、 MF"integer" が integer
> 7
の場合にすぐに設定されます。
DBSPACE を指定すると、コンパイラでは、システムに提供される 2 バイトの空白文字が使用されます。NODBSPACE を指定すると、このコンパイラの旧バージョンとの互換性が保たれ、2 バイトの空白文字は、2 字の ASCII の空白文字(x"2020")になります。
数字編集項目から、別の数字編集項目、または数字項目への編集解除転記の動作を指定します。
>>-.---.--DE-EDIT--"integer"--------------->< .-/-+
integer |
1、または 2 を設定し、互換性を持たせる動作を指定します。 |
デフォルト値 | DE-EDIT"2" |
フェーズ | 構文チェック |
$SET | 任意の行 |
integer には次の値を指定できます。
1 | このコンパイラの古いバージョンと同じ動作になります。送信フィールドの PICTURE 句は無視されます。 |
2 | 送信フィールドの PICTURE 句に従って編集を解除します。これは、ANSI'85 の動作と同じです。 |
01 a pic 909V99 value "30456". 01 b pic 9(5). ... move a to b
DE-EDIT"1" を指定した場合は、b に 30456 が入ります。DE-EDIT"2" を指定した場合は、b に 00034 が入ります。これは、3 の後の 0 は、ピクチャ文字列、a の、挿入文字、0 に相当するため失われ、B には小数点以下の桁がなく、.56 が失われるためです。
他で定義されていないデータ部のバイトを、指定した文字に初期化します。
>>-.---.--DEFAULTBYTE--"integer"----------->< .-/-+
integer |
指定する文字の ASCII コードを 10 進で指定します。 |
デフォルト値 | DEFAULTBYTE"32" |
フェーズ | 構文チェック |
$SET | 最初の行 |
CHARSET"ASCII" を指定するとすぐに DEFAULTBYTE"32" に設定されます。
CHARSET"EBCDIC"、MS、IBM-MS、または PC1 を指定するとすぐに DEFAULTBYTE"0" に設定されます。
integer は 10 進の値です。たとえば、EBCDIC の空白文字を指定する場合は、DEFAULTBYTE"64" を使用します。ASCII の空白文字を指定する場合は、DEFAULTBYTE"32" を使用します。
デフォルトの呼び出し規約を指定します。
>>-.---.-.-------DEFAULTCALLS--"integer"-.->< .-/-+ ..----.-DEFAULTCALLS------------+ .-NO-+
integer |
デフォルトの呼び出し規約を設定します。 |
デフォルト値 | NODEFAULTCALLS |
フェーズ | 構文チェック |
$SET | 任意の行 |
オプションのパラメータを指定しないで DEFAULTCALLS を設定すると、デフォルトの呼び出し規約には、手続き部の USING 文で指定されている呼び出し規約が指定されたものとして動作します。
DEFAULTCALLS"integer" と指定すると、"integer" で指定された呼び出し規約がデフォルトの呼び出し規約として指定されます。
NODEFAULTCALLS は DEFAULTCALLS"0" を指定した場合と同じです。
個々の CALL 文で、これらのデフォルト設定を上書きすることができます (『言語リファレンス』を参照してください)。利用可能な呼び出し規約の一覧は、『プログラマーズガイド − アプリケーション作成』の『COBOL インターフェイス環境』 の章で、『呼び出し規約』の項を参照してください。
レコードが別のプログラムでロックされているかどうかを、READ 文で検知します。
>>-.---.-.----.--DETECT-LOCK--------------->< .-/-+ .-NO-+
なし
デフォルト値 | DETECT-LOCK |
フェーズ | 構文チェック |
$SET | 最初の行 |
ハイフンを使わずに DETECTLOCK と指定しても、コンパイラでは認識されます。
DETECT-LOCK を指定すると、あるプログラムがロックしているレコードを、別の READ 文が読み取ろうとすると、I/O ステータス 9/068 が返されます。NODETECT-LOCK を指定すると、0/000 が返されます。どちらの場合も、レコードは正しく読み取られます。
READ 文でレコードをロックしようとする場合(つまり、LOCK MODE IS AUTOMATIC 文が指定されている場合、またはその READ 文で WITH LOCK 句が使用されている場合)に、そのレコードが他のプログラムでロックされていると、I/O ステータス 9/068 が返されます。NODETECT-LOCK を指定した場合に、READ 文がレコードをロックしようとしないと、I/O ステータス 0/000 が返されます。
特定の機能の動作を変更して、Data General Interactive COBOL rev 1.30 と互換性を持たせます。
>>-.---.-.----.--DG------------------------>< .-/-+ .-NO-+
なし
デフォルト値 | NODG |
フェーズ | 構文チェック |
$SET | 最初の行 |
Data General Interactive COBOL rev 1.30 の構文サポートに関する詳細は、『言語リファレンス - 追加トピック』を参照してください。
チェック時、および実行時に、指定した方言の動作を有効にします。
>>----------DIALECT"dialect"-------><
dialect |
方言を指定します。以下のコメントを参照してください。 |
設定された方言に従って、他の様々なコンパイラ指令がデフォルトで設定されます。下のコメントを参照してください。
デフォルト値 | DIALECT"ANS85" |
$SET | 最初の行 |
NODIALECT という設定はありません。DIALECT(方言) は、他の Micro Focus COBOL システムで使用する USE (WBdialect.dir) に相当します。
dialect には、次の方言が指定できます。
DIALECT を上記のいずれかの値に設定すると、他の様々なコンパイラ指令が設定されます。 設定されるコンパイラ指令を次に示します。
コンパイラがファイルから指令を読み取るようにします。
>>-.---.-.-DIRECTIVES-.-"filename"--------->< .-/-+ .-DIR--------+
filename |
完全な形式でファイルを指定します。 |
デフォルト値 | なし |
フェーズ | 構文チェック |
$SET | 任意の行 |
指令ファイルとは、指令が記述されたテキストファイルです。指令は、空白文字まで、または行末までが 1 つの指令と解釈されます。 1 つの指令を 2 行にわたって記述することはできません。
1 桁目にアンパサンド (&) を記述して、注記行を含めることができます。コメントの後には空白文字を入れます。空白文字を省略すると、コメントが指令として扱われ、そのファイルの構文チェックが失敗します。
指令は、ファイルの終わりまで、または別の DIRECTIVES 指令にぶつかるまで、ファイルから読み取られます。 1 行の最大長は 128 字です。
DIRECTIVES"filename" を複数指定すると、1 つのプログラムに複数の指令ファイルを指定することができます。 指令ファイル内で DIRECTIVES 指令を指定すると、コンパイラの読み取り先が新しい指令ファイルに切り替わり、新しいファイルの指令をすべて読み取ると、元の指令ファイルに戻り、DIRECTIVES 指令の後に指定されている指令の読み取りを続行します。 指令ファイルは何層にも入れ子にして使用することができます。
指令ファイルは、カレントディレクトリ、および COBOL システムディレクトリで検索されます。拡張子を指定しないと、拡張子は .dir と見なされます。拡張子のついたファイルが検出されない場合は、次に拡張子なしのファイルが検索されます。
注記行の $SET 文がコンパイラで処理されるようにします。
>>-.---.-.----.--DIRECTIVES-IN-COMMENTS---->< .-/-+ .-NO-+
なし
デフォルト値 | NODIRECTIVES-IN-COMMENTS |
フェーズ | 構文チェック |
$SET | 任意の行 |
この指令を使用すると、Server Express コンパイラでコンパイルした場合は、使用された指令がソースに反映されますが、他のコンパイラ、たとえば、メインフレームコンパイラなどを使用した場合は、これらの指令は (注記行として) 無視されます。
$SETは、通常はその行の記述の先頭であれば、どこにでも記述することができます。この指令を設定した場合は、その行が注記行 (7 桁目にアスタリスクがある場合) であっても $SET 文は処理されます。
IBM DOS/VS COBOL で予約されている語を予約語として扱います。
>>-.---.-.----.--DOSVS--------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NODOSVS |
フェーズ | 構文チェック |
$SET | 最初の行 |
OSVS を指定するとすぐに NODOSVS に設定されます。
CANCEL 文が無視されないよう指定します。
>>-.---.-.----.--DYNAM--------------------->< .-/-+ .-NO-+
なし
デフォルト値 | DYNAM |
フェーズ | 構文チェック |
$SET | 最初の行 |
NODYNAM を指定すると、プログラム内の CANCEL 文が無視されます。
古いユーザ構文をサポートします。
>>-.---.-.----.--EARLY-RELEASE------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOEARLY-RELEASE |
フェーズ | 構文チェック |
$SET | 最初の行 |
NOEARLY-RELEASE および MF が設定されている場合は、MF のデフォルト設定が MF"10" になります。
EARLY-RELEASE および MF が設定されている場合は、MF のデフォルト設定が MF"11" になります。
旧バージョンの指令を使用する場合は、この指令を指定する必要があります。
エラー行、およびエラーメッセージが、コンパイラから画面に表示されるようにします。
>>-.---.-.----.--ECHO---------------------->< .-/-+ .-NO-+
なし
デフォルト値 | ECHO |
フェーズ | 構文チェック |
$SET | 任意の行 |
ECHOALL を指定するとすぐに NOECHO に設定されます。
各エラーに対し、エラー番号、および詳細メッセージ(BRIEF が設定されていない場合)とともにソース行が表示されます。
プリンタ、または LIST 指令、または PRINT 指令で指定された他の装置に加えて、画面にも詳細リストを送信します。
>>-.---.-.----.--ECHOALL------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOECHOALL |
フェーズ | 構文チェック |
$SET | 不可 |
ECHOALL で NOECHO がすぐに設定されます。
エラーメッセージが、指定したエディタと互換性のある形式で、コンパイラからファイルに送信されるようにします。
>>-.---.-.-----EDITOR--"editor-id"-.------->< .-/-+ .-NO--EDITOR--------------+
editor-id |
MF、MF2、または MS のいずれかを指定します。 |
デフォルト値 | NOEDITOR |
フェーズ | 構文チェック |
$SET | 不可 |
EDITOR"MS" を設定すると、NOENSUITE がすぐに設定されます。
EDITOR"MF" を設定すると、ENSUITE"1" がすぐに設定されます。
editor-id には次の値を指定できます。
MF | Server Express の Editor |
MF2 | Animator |
MS | Microsoft Programmer's Workbench |
EDITOR 指令とともに NOECHO 指令、および NOQUERY 指令を使用することをお奨めします。
ECHO コンパイラ指令
FLAGSINEDIT コンパイラ指令
QUERY コンパイラ指令
IBM Enterprise COBOL for z/OS および OS/390 で予約されている語を予約語として扱います。
◆---+-------+-+--------+--- ENTCOBOL -----------------------------◇ +-- / --+ +-- NO --+
なし
デフォルト値 | NOENTCOBOL |
フェーズ | 構文チェック |
$SET | 初期 |
ENTCOBOL を指定するとすぐに DBSPACE と DBCS"3" が設定されます。
内部で使用するためにのみ予約されています。
エラーが発生した行、またはフラグが付けられた行以外のソース行がリストに含まれないよう指定します。
>>--.---.--.----.---ERRLIST---"option"-------->< .-/-+ .-NO-+
option | 生成されるリストのタイプを指定します。以下のコメントを参照してください。 |
デフォルト値 | ERRLIST"EMBED" |
フェーズ | 構文チェック |
$SET | 不可 |
FLAGQ または ERRQ が設定されている場合は、ERRLIST"END" が ERRLIST"VERBOSE" になります。
option には次の値を指定できます。
TERSE | エラーを含む行のみがリストファイルに表示されます。ソース行とエラーの両方が表示されます。 |
EMBED | リストファイルには、ソースとともにエラーメッセージが表示されます。エラーメッセージは、ソース内のエラーが発生した場所に組み込まれる形で表示されます。 |
END | リストファイルには、ソースが表示され、その後に、エラーメッセ―ジが別に表示されます。バッチコンパイルを実行した場合は、エラーメッセージは画面にエコーされません。画面にエコーする場合は、リストが画面に表示されるよう選択する必要があります。 |
VERBOSE | リストファイルには、ソースとともにエラーメッセージが表示されます。エラーメッセージは、ソース内のエラーが発生した場所に組み込まれる形で表示され、その後に、エラーメッセージのみが別に再表示されます。 |
コンパイラからエラーメッセ―ジが出力される度に、コンパイルの停止、または続行を確認するメッセージが出力されるようにします。
>>-.---.-.----.--ERRQ---------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOERRQ |
フェーズ | 構文チェック |
$SET | 任意の行 |
呼び出されたプログラムの動作を制御します。FASTCALL が指定されている場合、呼び出されたプログラムは、メインプログラムであるかどうか判断できる情報を設定しません。常にメインプログラムではないと想定し、EXIT PROGRAM が常に呼び出し側プログラムの出口となります
>>-.---.-.----.--FASTCALL------------------>< +-/-+ +-NO-+
None
デフォルト値 | NOFASTCALL |
フェーズ | 生成 |
$SET | 最初の行 |
FASTCALL でコンパイルされたプログラムは、後続のプログラムが自身がメインプログラムであるかどうかを判断する情報を設定しません。そのため、FASTCALL でコンパイルされたプログラムで呼び出すプログラムは、プログラムそのものをFASTCALLでコンパイルすることをお勧めします。
PERFORM文
EXIT文
コンパイル速度
PARAMCOUNTCHECK
STICKY-LINKAGE
この指令は、この COBOL システムで内部的に使用するために予約されています。設定のリストに表示される可能性があるため、ここで説明しています。 ユーザが使用する指令ではないので、この設定を変更しないでください。
>>-.---.-.----.--FASTSORT------------------>< .-/-+ .-NO-+
なし
デフォルト値 | FASTSORT |
フェーズ | 構文チェック |
$SET | 最初の行 |
FaultFinderで記録されるファイルの入出力を可能にします。
>>-.---.-.----.--FAULTFIND------------------>< +-/-+ +-NO-+
なし
デフォルト値 | NOFAULTFIND |
フェーズ | 構文チェック |
$SET | 任意の行 |
この指令は、この COBOL システムの内部で使用するために予約されています。 設定のリストに表示される可能性があるため、ここで説明しています。 ユーザが使用する指令ではないので、この設定を変更しないでください。
>>-.---.-.----.--FCD3---------------------->< .-/-+ .-NO-+
なし
デフォルト値 | 64 ビット開発システム上の FCD3 32 ビット開発システム上の NOFCD3 です。 |
フェーズ | 構文チェック |
$SET | 不可 |
P64 を指定するとすぐに FCD3 に設定されます。
コンパイラに、ファイル制御記述 (FCD) および、キー定義ブロックにアクセスするための特殊レジスタを定義させます。
>>-.---.-.----.--FCDREG-------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOFCDREG |
フェーズ | 構文チェック |
$SET | 最初の行 |
FCDREG を指定すると、プログラム中の各ファイル定義 (FD) に対して、FH--FCD 特殊レジスタが作成されます。このレジスタは、ファイルのファイル制御記述 (FCD) を指します。これにより、プログラムは FCD の情報を読み取ったり、変更することができます。
各索引ファイルに対して、特殊レジスタ FH--KEYDEF が追加で作成されます。このレジスタは、ファイルのキー定義ブロックを指します。
FCD および キー定義ブロックのレイアウトに関しては、『ファイル操作』 マニュアルで説明しています。
書き込み操作のたびに、ファイルのレコードバッファがクリアされるよう指定します。バッファは、DEFAULTBYTE 指令で指定される値までクリアされます。
>>-.---.-.----.--FDCLEAR------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOFDCLEAR |
フェーズ | 構文チェック |
$SET | 任意の行 |
FDCLEAR 指令は SELECT 句を処理する際に有効です。 この機能を選択したファイルに適応するには、各 SELECT 句の前、および後で $SET 文を使用します。 プログラム中の全ファイルに適用する場合は、SELECT 文を処理する前の 1 回のみ、$SET 文を使用します。
I-O 制御段落の SAME RECORD AREA 句のファイルの場合は、FDCLEAR 指令は無視されます。
次のコードでは、FDCLEAR は file-2 にのみ適用されます。
file-control. select file-1 ... $set fdclear select file-2 ... $set nofdclear select file-3 ...
マルチユーザ環境のファイルに対して、デフォルトのロックを EXCLUSIVE ではなく、AUTOMATIC にし、プログラムが複数のレコードをロックしている場合に、WRITE 文、または REWRITE 文で自動的にレコードをロックします。
この指令は Fileshare バージョン 2 とは全く関係がありません。
Fileshare バージョン 2 を使用する場合は、この指令を指定しないでください。
>>-.---.-.----.--FILESHARE----------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOFILESHARE |
フェーズ | 構文チェック |
$SET | 最初の行 |
この指令は古いファイル共有製品と互換性を持たせるために用意されています。新規にプログラムを作成する場合は、この指令ではなく、ロック構文を使用してください。
FILESHARE は、WRITELOCK と AUTOLOCK を同時に指定した場合と同じ動作になります。NOFILESHARE は、NOAUTOLOCK と NOWRITELOCK を同時に指定した場合と同じ動作になります。
ファイル作成時に適用するファイルの形式を選択します。
>>-.---.--FILETYPE--"integer"-------------->< .-/-+
integer |
使用するタイプを示す整数の値を指定します。 |
デフォルト値 | FILETYPE"0" |
フェーズ | 構文チェック |
$SET | 任意の行 |
FILETYPE"integer" を指定するとすぐに IDXFORMAT"integer" が設定されます。
integer には次の値を指定できます。
0 | システム固有のデフォルト設定。 1 を指定した場合と同じ形式です。 |
1 | C-ISAM 形式 |
2 | Micro Focus Level II 形式 |
3 | Micro Focus 索引ファイル形式 |
4 | 最適化された Micro Focus 索引ファイル形式。複製ファイルの処理速度が上がります。 |
5 | 予約済み |
6 | 予約済み |
7 | RLIO 形式の索引ファイル |
8 | 大容量索引ファイル |
9-10 | 予約済み |
11 | メインフレームの印刷ファイル形式 |
12-13 | 予約済み |
14 | 予約済み |
15-255 | 予約済み |
この指令は、呼び出し可能なファイルハンドラで処理されたファイルにのみ有効です。索引ファイル以外のファイルを処理する場合は CALLFH 指令を使用してください。
FILETYPE"11" を使用して、IBM メインフレーム形式の印刷ファイルを生成する場合は、次の操作が必要です。
select printfile assign "print" organization is Sequential.
(IBM メインフレーム形式の印刷ファイルには、1 桁目に印刷制御文字が記述されます。)
指定した COBOL 方言に含まれない構文があった場合、コンパイラで、言語レベルの認証フラグが生成されるようにします。
>>-.---.-.-----FLAG--"dialect"-.----------->< .-/-+ .-NO--FLAG------------+
dialect |
方言を示すリテラル定数を指定します。 |
デフォルト値 | NOFLAG |
フェーズ | 構文チェック |
$SET | 任意の行 |
dialect には次の値を指定できます。
MF | Micro Focus |
ANS74 | ANSI COBOL 標準規格 X3.23 1974年版 |
ANS85 | ANSI COBOL 標準規格 X3.23 1985年版 |
SAA | IBM の System Application Architecture で定義された COBOL の機能をすべて満たします。 |
VSC2 | IBM VS COBOL II |
OSVS | IBM OS/VS COBOL |
DOSVS | IBM DOS/VS COBOL |
COBOL370 | IBM COBOL/370 |
ISO2000 | 審議中の ISO2000 COBOL 標準規格 |
BS2000 | Siemens BS2000 COBOL |
DG、RM または MS を方言として使用することはできません。
ANSI'85 に完全準拠したプログラムを作成する場合は、次の方言を使用してください。
ANS85 FLAG"ANS85"
また、フラグメッセージが生成される機能はすべて修正してください。
VSC2 を指定した場合は、フラグが付けられる機能が、VSC2 指令で選択された VS COBOL II のバージョンに依存します。 SAA を指定した場合は、この機能が、SAA 指令で選択された SAA のレベルに、COBOL370 を指定した場合は COBOL370 指令で選択された COBOL/370 のレベルに依存します。
BS2000 コンパイラ指令
DIALECT コンパイラ指令
ISO2000 コンパイラ指令
この指令を指定すると、フラグメッセージは、エラーメッセージ、警告メッセージ、または備考メッセージとしてコンパイラから出力されます。
>>-.---.-.-----FLAGAS--"severity"-.-------->< .-/-+ .-NO--FLAGAS-------------+
severity |
フラグメッセージに割り当てる重大度を表すリテラル定数を指定します。 |
デフォルト値 | NOFLAGAS |
フェーズ | 構文チェック |
$SET | 任意の行 |
severity には次の値を指定できます。
S | 重大なエラー |
E | エラー |
W | 警告 |
I | 備考 |
FLAG 指令とともに指定すると、FLAGCD では、指定された COBOL の方言と矛盾するすべての設定指令すべてにフラグが付けられます。
>>-.---.-.--------FLAGCD--"severity"-.----->< .-/-+ ..----.--FLAGCD-------------+ .-NO-+
severity |
矛盾した指令によって生成されたフラグメッセージに割り当てる重大度を、リテラル定数で指定します。 |
デフォルト値 | NOFLAGCD |
フェーズ | 構文チェック |
$SET | 任意の行 |
severity には次の値を指定できます。
S | 重大なエラー |
E | エラー |
W | 警告 |
I | 備考 |
パラメータを設定しないで FLAGCD を指定した場合に、FLAGAS 指令が指定されていると、メッセージはこの指令で指定されている重大度に割り当てられます。FLAGAS が指定されていないと、メッセージはフラグメッセージとして生成されます。
CMPR2 の設定に従って、実行時に異なる動作になる構文すべてにコンパイラでフラグが付けられるようにします。
>>-.---.-.----.--FLAGMIG------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOFLAGMIG |
フェーズ | 構文チェック |
$SET | 任意の行 |
このような構文は W レベルのメッセージを受け取ります。この場合、メッセージ行に "MIGR" というテキストが含まれていますが、これは、FLAGMIG 指令を指定したために発生した警告であることを示します。
コンパイラからフラグメッセージメッセ―ジが出力される度に、コンパイルの停止、または続行を確認するメッセージが出力されるようにします。
>>-.---.-.----.--FLAGQ--------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOFLAGQ |
フェーズ | 構文チェック |
$SET | 任意の行 |
フラグメッセージをエラーファイルに含めるかどうかを指定します。
>>-.---.-.----.--FLAGSINEDIT--------------->< .-/-+ .-NO-+
なし
デフォルト値 | FLAGSINEDIT |
フェーズ | 両方 |
$SET | 不可 |
この指令は、NOEDITOR が指定されている場合は無効です。EDITOR および FLAGSINEDIT が指定されている場合は、生成されたエラーファイルには、コンパイラで生成されたすべてのフラグメッセージが含まれます。
指定したレベルの ANSI'85 標準規格に含まれない構文があった場合に、コンパイラ言語レベルの認証フラグが生成されるようにします。
>>-.---.-.-----FLAGSTD--"string"-.--------->< .-/-+ .-NO--FLAGSTD-----------+
string |
言語レベルを列挙します。 |
デフォルト値 | NOFLAGSTD |
フェーズ | 構文チェック |
$SET | 最初の行 |
string にはパラメータを列挙します。各パラメータで、ANSI 標準規格の言語レベル、またはオプションモジュールを定義します。指定されたレベル以下、または指定されたオプションモジュールの機能にはフラグが付けられません。 標準規格よりも高レベルな拡張機能、または指定されていないオプションモジュールの拡張機能にフラグが付けられます。さらに、ANSI 標準規格で旧式とされる要素にもフラグを付けることができます。
string には、次のパラメータを組み合わせて指定します。
M | ANSI'85 で定義された最小レベルの COBOL サブセット |
I | ANSI'85 定義の中間レベルの COBOL サブセット |
H | ANSI'85 定義の高レベルの COBOL サブセット |
C1 | 通信オプションモジュールレベル 1 |
C2 | 通信オプションモジュールレベル 2 |
D1 | デバッグオプションモジュールレベル 1 |
D2 | デバッグオプションモジュールレベル 2 |
S1 | 区分オプションモジュールレベル 1 |
S2 | 区分オプションモジュールレベル 2 |
R | 報告書作成オプションモジュール |
O | 古い言語要素 |
これらのパラメータは、任意の順序で指定できますが、各パラメータの間に、1 つ以上の空白文字を入れる必要があります。フラグの有効な組み合わせを次に示します。
FLAG および FLAGSTD の機能は同じであるため、使用できるのはどちらか一方のみです。
ANS85 指令を有効にする必要があります。
CALL 文、CANCEL 文、ENTRY 文、および CHAIN 文に関連する識別子やリテラル定数と、PROGRAM-ID 句のプログラム名を大文字のみ、または小文字のみにします。
>>-.---.-.-----FOLD-CALL-NAME--"case"-.---->< .-/-+ .-NO--FOLD-CALL-NAME---------+
case |
UPPER または LOWER を指定します。 |
デフォルト値 | NOFOLD-CALL-NAME |
フェーズ | 構文チェック |
$SET | 最初の行 |
ハイフンを使わずに FOLDCALLNAME と指定しても、コンパイラでは認識されます。
CALL 識別子 文で呼び出される名前は、この指令で指定された形式 (大文字か小文字のどちらか) になりますが、識別子 の内容自体は変更されません。
FOLD-CALL-NAME 指令を使用すると、たとえば、OS/2 から UNIX へ転送する場合のように、ファイル名に大文字と小文字が混在する環境から COBOL コードを転送する場合に役立ちます。
この指令を使用すると、コンパイラは ANSI'85 標準のプログラム間通信モジュールに従って CALL 文内のプログラム名の大文字と小文字を区別しません。
NOFOLD-CALL-NAME を指定すると、通常の COBOL 表記規則では、引用符で囲まない場合に、大文字のみのプログラム名が使用されます。これは、入れ子プログラムのルートプログラムにも当てはまります。引用符で囲んだ場合も含め、すべての副プログラム名は大文字のみになります。(プログラム名を引用符で囲む方法は、Micro Focus COBOL の拡張機能です。『言語リファレンス』マニュアルの『プログラム名段落』 の項を参照してください。)
プログラム名は、完全にリンクされている実行可能プログラムの入口点としてアクセスすることもできます。
コピーファイル名の大文字、または小文字への変換処理動作を決定します。
>>-.---.-.-----FOLD-COPY-NAME--"case"-.---->< .-/-+ .-NO--FOLD-COPY-NAME---------+
case |
"UPPER" または "LOWER". |
デフォルト値 | NOFOLD-COPY-NAME |
フェーズ | 構文チェック |
$SET | 任意の行 |
ハイフンを使わずに FOLDCOPYNAME と指定しても、コンパイラでは認識されます。
FOLD-COPY-NAME 指令は、テキスト、および登録集名に対して有効です。これらが利用者語として指定されている場合でも、リテラル定数として指定されている場合でも使用できます。
FOLD-COPY-NAME"UPPER" を指定すると、コピーファイル名が大文字に変換されます。(大文字に固定するとも言います)。
リストの 1 ページあたりの行数を指定します。
>>-.---.-.-----FORM--"integer"-.----------->< .-/-+ .-NO--FORM------------+
integer |
3 以上の値を指定します。 |
デフォルト値 | FORM"60" |
フェーズ | 構文チェック |
$SET | 任意の行 |
NOLIST を指定すると、最後に NOFORM に設定されます。
LIST を指定するとすぐに FORM"60" に設定されます。
FORM"integer" を指定すると、ファイルの先頭に、常に用紙送り文字が生成されます。NOFORM を指定すると、リスト内には用紙送り文字も、ページヘッダーも生成されません。
受信項目が浮動小数点の場合、他の項目、つまり非浮動小数点の受信項目の結果に影響を与えるかどうかを決定します。
>>-.---.-.-----FP-ROUNDING--"dialect"---.-->< .-/-+ .-NO--FP-ROUNDING--------------+
dialect |
VSC2 または OSVS のどちらかを指定します。 |
デフォルト値 | NOFP-ROUNDING |
フェーズ | 構文チェック |
$SET | 任意の行 |
OS/VS COBOL、および VS COBOL II では、演算文の送信データ項目中に浮動小数点の項目がある場合は、ROUNDED 句の有無や、受信フィールドが浮動小数点であるかに関わらず、すべての受信フィールドが四捨五入されます。
VS COBOL II では、浮動小数点として定義されている受信データ項目がある場合、ROUNDED 句の有無や、受信フィールドが浮動小数点であるか、および浮動小数点の送信項目があるかに関わらず、すべての受信データ項目が四捨五入されます。
NOFP-ROUNDING を設定すると、ソース内で ROUNDED 句を明示的に使用した場合を除き、浮動小数点演算を含んだ計算で、固定小数点のターゲットは四捨五入されません。
次のような 2 つのデータ項目が定義されているとします。
05 numeric-field pic 999. 05 floating-field comp-1.
この時、次の文が実行される場合を説明します。
compute numeric-field floating-field = 7.7 + 1
FP-ROUNDING"VSC2" を指定すると、numeric-field には 9 (四捨五入あり) が入ります。NOFP-ROUNDING または FP-ROUNDING"OSVS" を指定した場合は、numeric-field には 8 (右端切り捨て) が入ります。
2 つの同じデータ項目を使用した例を次に示します。
compute numeric-field = +7.6E0
この場合に、FP-ROUNDING"VSC2" または FP-ROUNDING"OSVS" を指定すると、numeric-field には 8 (四捨五入あり) が入ります。 NOFP-ROUNDING を指定した場合は numeric-field には 7 (右端切り捨て) が入ります。
GNT Analyzer を使用可能にします。これは、プログラムの実行プロファイルを作成するためのスタンドアロンのツールです。
>>-.---.-.-----GNTANLZ--"count-type"-----.---->< .-/-+ .-NO--GNTANLZ-------------------+
count-type |
必要なカウントタイプを指定します。 |
デフォルト値 | NOGNTANLZ |
フェーズ | 構文チェック |
$SET | 任意の行 |
count-type
には次の値を指定できます。
COUNT | 各ブロックの実行回数をカウントします。 |
TICK | 各ブロックのコードに対し、コードが実行され場合にカウントを 1 に設定します。こちらを設定すると、COUNT を設定した場合よりも、使用されるメモリが少なくなります。 |
『Utilities Handbook』 の『GNT Analyzer』 の章を参照してください。
この指令の機能は、CHANGE-MESSAGE 指令で引き継ぎます。この指令は互換性を持たせるためにのみ提供されているため、今後のリリースでは削除されます。
構文チェック時のエラーメッセージの番号を「非表示」に登録し、この番号のエラーが発生しても無視されるようにします。
>>-.---.-.-----HIDE-MESSAGE--"integer"-----.---->< .-/-+ | | .-NO--HIDE-MESSAGE--.-----------.-+ .-"integer"-+
integer |
非表示にする構文チェックエラーメッセージの番号を指定します。 |
デフォルト値 | NOHIDE-MESSAGE |
フェーズ | 構文チェック |
$SET | 任意の行 |
ハイフンを使わずに HIDEMESSAGE と指定しても、コンパイラでは認識されます。
HIDE-MESSAGE"integer" を指定すると、integer が、構文チェックエラーメッセージの番号リストに追加されます。この機能を使って複数の番号のエラーメッセージを非表示にするには、HIDE-MESSAGE 指令を複数回指定する必要があります。
プログラムの構文チェックの終了時のリストには、重大度が E、W、I のメッセージ、または上記リストに登録された番号のフラグを持つメッセージは表示されません。また、これらは、コンパイル終了時のエラー概要にも表示されません。
重大度が S のメッセージのうち、非表示にできるのは、CHANGE-MESSAGE 指令、FLAGAS 指令、または FLAGCD 指令を使用して、重大度を S に変更したメッセージのみです。通常の場合は、重大度 S のメッセージが、上記のエラーメッセージの番号リストに番号が登録されている場合でも表示されます。
NOHIDE-MESSAGE を指定すると、番号のリストがクリアされるため、非表示になるメッセージはありません。
NOHIDE-MESSAGE"integer" を指定すると、指定されたメッセージ番号のみがリストから削除されます。
CHANGE-MESSAGE コンパイラ指令
FLAGAS コンパイラ指令
FLAGCD コンパイラ指令
サイズエラーが発生した後、演算結果の十進桁数を切り捨てるかどうかを制御します。
>>-.---.-.----.--HOSTARITHMETIC---------------->< +-/-+ +-NO-+
None
デフォルト値 | NOHOSTARITHMETIC |
フェーズ | 構文チェック |
$SET | 可 |
HOSTARITHMETIC を指定すると次のような影響があります。
$SET 文にこの指令を指定すると、指定した場所に関わらず、プログラム全体の実行時の振る舞いに影響がでます。
ファイルに関連付けられたレコード領域は、OPEN 文の前ではなく、実行時にのみ割り当てられるように指定します。
>>-.---.-.----.--HOSTFD-------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOHOSTFD |
フェーズ | 構文チェック |
$SET | 最初の行 |
この指令を指定した場合は、ファイルに関連付けられたレコード領域への操作が、対象ファイルが開かれている間のみ実行できます。HOSTFD は、EXTERNAL ファイル、または SORT ファイルには影響を与えません。また、I-O CONTROL 段落の SAME RECORD AREA 句で定義されているファイルにも影響を与えません。
この指令は、メインフレームと互換性を持たせるために用意されています。
USAGE DISPLAY の整数型の数値データ項目と、英数字のリテラル定数、または表意定数を比較する操作を制御します。
>>--.---.--.------HOST-NUMCOMPARE----.-->< .-/-+ .-NO---HOST-NUMCOMPARE------+
なし
デフォルト値 | NOHOST-NUMCOMPARE |
フェーズ | 構文チェック |
$SET | 任意の行 |
この指令は、IBM メインフレームのコンパイラと高い互換性を保ちます。メインフレーム上で S0C7 が発生していたような場合は、ランタイムエラー 163 (「数字フィールドでは不正な文字」) が返されます。
HOST-NUMCOMPARE を指定した場合は、数字データ項目と、数字データ項目または数字定数を比較する IF 文のサブセットに対して IBM メインフレームのコンパイラと高い互換性を保ちます。
IBM メインフレームと 100% 互換性のある動作にはなりませんが、ほとんどの動作がエミュレートされます。
この指令を SPZERO, HOSTSIGNS, SIGN(EBCDIC) とあわせて使用しないでください。
数字の表示データ項目に対して MOVE 文が実行された場合に、実行時エラー 163 (数字項目に違法な文字がある) が発生しないようにします。
>>--.---.--.------HOST-NUMMOVE----.-->< .-/-+ .-NO---HOST-NUMMOVE-----+
なし
デフォルト値 | NOHOST-NUMMOVE |
フェーズ | 構文チェック |
$SET | 任意の行 |
この指令は、IBM メインフレームのコンパイラと高い互換性を保ちます。メインフレーム上で S0C7 が発生していたような場合は、ランタイムエラー 163 (「数字フィールドでは不正な文字」) が返されます。
HOST-NUMMOVE を指定した場合は、数字 / 英数字データ形式と、数字 / 数字データ形式を含む MOVE 文のサブセットに対して IBM メインフレームのコンパイラと高い互換性を保ちます。
IBM メインフレームと 100% 互換性のある動作にはなりませんが、ほとんどの動作がエミュレートされます。
この指令を SPZERO, HOSTSIGNS, SIGN(EBCDIC) とあわせて使用しないでください。
COMP-3 項目に無効な記号片 (項目の再定義などによって生成されたものなど) が含まれている場合に、これらの算術および転記で、期待する結果が得られるようにします。
>>-.---.-.----.---HOSTSIGNS---------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOHOSTSIGNS |
フェーズ | 生成 |
$SET | 最初の行 |
HOSTSIGNS を指定すると、COMP-3 の算術の実行経路は最適化されません。そのため、プログラムの効率は悪くなります。
コードを小さくし、実行速度を上げる場合は、HOSTSIGNS を指定しないでください。
IBM COBOL V1.00 で予約されている語を予約語として扱い、特定の機能の動作を変更して IBM COBOL V1.00 COBOL システムと互換性を持たせます。
>>-.---.-.----.--IBM-MS-------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOIBM-MS |
フェーズ | 構文チェック |
$SET | 最初の行 |
IBM-MS を指定するとすぐに DEFAULTBYTE"0" および ACCEPTREFRESH が設定されます。
この指令は PC1 指令 および MS"1" 指令と同じ働きを持ちます。
ワード型記憶域モードを有効にします。
>>-.---.-.----.--IBMCOMP------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOIBMCOMP |
フェーズ | 構文チェック |
$SET | 最初の行 |
IBMCOMP を指定するとすぐに ALIGN"8" が設定されます。
ワード型記憶域モードの場合は、USAGE COMP、または COMP-5 のすべてのデータ項目の大きさが、2 バイト、または 4 バイトの倍数になります。IBMCOMP を指定し、プログラム内で USAGE COMP、または COMP-5 として定義された項目に SYNCHRONIZED 句を使用している場合は、ALIGN"1" を指定しないでください。
Micro Focus COBOL システムルーチンを直接呼び出している場合に IBMCOMP を指定する場合は十分に注意してください。これらのルーチンに指定するパラメータの順序やサイズが正しくなくなり、ルーチンで誤った結果が出ることがあります。これは、CBL_ ライブラリルーチン、Adis 呼び出し、および、呼び出し可能なファイルハンドラの直接呼び出しに対するパラメータにも当てはまります。
索引ファイルの作成時に使用する形式を指定します。
>>-.---.--IDXFORMAT--"integer"------------->< .-/-+
integer |
使用するタイプを示す整数を指定します。 |
デフォルト値 | IDXFORMAT"0" |
フェーズ | 構文チェック |
$SET | 任意の行 |
FILETYPE"integer" を指定するとすぐに IDXFORMAT"integer" に設定されます。
integer には次の値を指定できます。
0 | システム固有のデフォルト設定。1 を指定した場合と同じ形式です。 |
1 | C-ISAM 形式 |
2 | Micro Focus Level II 形式 |
3 | Micro Focus 索引ファイル形式 |
4 | 最適化された Micro Focus 索引ファイル形式。複製ファイルの操作速度が上がります。 |
5 | 予約済み |
6 | 予約済み |
7 | RLIO 形式の索引ファイル |
8 | 大容量の索引編成 |
9-10 | 予約済み |
11 | メインフレームの印刷ファイル形式 |
12-13 | 予約済み |
14 | ヒープファイル |
15-255 | 予約済み |
形式が決まっている既存のファイルは、この指令を使用しなくても正しく処理されます。この指令はファイルの新規作成時に使用する形式を制御します。
3 を指定すると、ファイルは常に、この COBOL システムで使用される形式で作成されます。0 を指定して、別のシステムのファイルハンドラを使うプログラムを使用する場合は、ファイルが、使用するファイルハンドラのシステムのデフォルトの形式で作成されます。
4 を指定すると、IDXFORMAT"3" を指定した場合よりも、ファイルが大きくなる可能性があります。
Micro Focus Level II 形式のファイルは、Micro Focus Level II COBOL、Professional COBOL V1.2、および VS COBOL Workbench の V1.3 までのバージョンと互換性があります。(詳細は、『ファイル操作』マニュアルを参照してください。)
IDXFORMAT"2" を使用する場合は、ANS85 指令を使用して ANSI'85 の動作を有効にしないでください。ただし、ANS85"SYNTAX" を使用して、ANSI'85 の構文を有効にすることができます。
構文条件の中には有効範囲を自動的に終了させるものがあります。この場合、指定どおりの結果にならなくなります。NOIMPLICITSCOPE を指定すると、有効範囲が暗黙に終了された場合、構文チェッカーが警告メッセージを生成します。これは通常、範囲明示符 (END-VERB) が使用されていた場合に発生します。
>>-.---.--IMPLICITSCOPE------------>< +-/-+
なし
デフォルト値 | IMPLICITSCOPE |
フェーズ | 構文チェック |
$SET | 任意の行 |
なし
警告メッセージを表示するには WARNINGS(3) を設定する必要があります。
IF ITEM-1 > 10 MOVE 10 TO ITEM-2 PERFORM ITEM-3 TIMES ADD 1 TO ITEM-3 ELSE IF ITEM-1 > 20 MOVE 20 TO ITEM-2 ELSE MOVE 0 TO ITEM-2. MOVE 4 TO ITEM-3
ELSE は PERFORM 行内の有効範囲を終了し、ピリオドはすべての文の有効範囲を終了ます。この例では、2 つのIF文が該当します。
言語リファレンス の 明示範囲符と暗示範囲符
ACCEPT 文に、指定したファイルを読み取らせます。
>>-.---.-.-------INDD--"fname rsize rtype ctype"-.-->< .-/-+ .-------INDD--"fname rsize rtype"-------| .-------INDD--"fname rsize"-------------| .-------INDD--"fname"-------------------| ..----.-INDD----------------------------+ .-NO-+
fname |
指定された ACCEPT 文の読み取り先ファイル名を指定します。デフォルト値は SYSIN です。 |
rsize |
ファイル内のデータレコードのサイズを指定します。デフォルト値は 80 です。 |
rtype |
行順の場合は L 、レコード順の場合は r のいずれかを指定します。デフォルト値は L です。 |
ctype |
ASCII の場合は A を、EBCDIC の場合は E を指定します。 デフォルト値は A です。
E は、CHARSET"EBCDIC" 指令が使用されている場合にのみ有効です。 |
デフォルト値 | NOINDD |
フェーズ | 構文チェック |
$SET | 最初の行 |
INDD を指定すると、FROM オプションがない、または FROM SYSIN を指定している、形式 1 の ACCEPT 文すべて (または SYSIN に関連付けられた呼び名) が READ 文に変換されます。この READ 文では、指定された外部のファイル名を持つファイルが読み取られます。
ファイル名は、他の外部のファイル名を持つファイルと同じ方法で、物理ファイル名にマップすることができます。つまり、環境変数を使用する方法と、ご使用のシステムで外部ファイルマッパーが使用できる場合は、それを使用する方法があります。
ACCEPT 文
OUTDD コンパイラ指令
コンパイラで備考メッセージのみが生成された場合の、コンパイラにより返されるコード値を指定します。
>>-.---.--INFORETURN--"integer"------------>< .-/-+
integer |
0 から 4 までのいずれかの値を指定します。 |
デフォルト値 | INFORETURN"0" |
フェーズ | 構文チェック |
$SET | 任意の行 |
コンパイラが終了すると、値が返されます。この値をオペレーティングシステムのコマンドでテストし、コンパイルが成功したかどうかを判断することができます。終了時の値に関しては、『コンパイラの使用』の章の『コンパイラのエラーメッセージ』を参照してください。この指令を指定すると、コンパイラで備考メッセージのみが出力された場合に戻される値を設定することができます。
プログラムの最初の文を実行する直前に呼び出すモジュールを指定します。
>>-.---.--.-----INITCALL--"module"-.------------.-.-->< .-/-+ | .-"priority"-+ | .-NO--INITCALL--------------------------+
module |
呼び出すモジュールを指定します。 |
priority |
モジュールの実行に割り当てる優先度を指定します。 |
デフォルト値 | NOINITCALL |
フェーズ | 構文チェック |
$SET | 最初の行 |
priority には次の値を指定できます。
H | 優先度を高くする (priority が指定されていない場合のデフォルト値)。 |
L | 優先度を低くする。 |
INITCALL を指定すると、コンパイラで、指定したモジュールの呼び出しが挿入されます。実行時に手続き型コードが実行される前に、指定したモジュールが呼び出されます。呼び出したモジュールにパラメータを渡すことはできません。
この機能を使用して複数のモジュールを呼び出す場合は、INITCALL 指令を繰り返し指定する必要があります。NOINITCALL を指定すると、呼び出されるモジュールのリストがクリアされます。
優先度を高く設定した呼び出しは、優先度を低く設定したものや、コンパイラによる他の呼び出しのどれよりも先に呼び出されます。優先度を低く設定した呼び出しは、コンパイラによって呼び出される他の呼び出しの後に呼び出されます。優先度が同じである呼び出しは、指定された順番に実行されます。
date 本来の機能で使用される、整数形式の日付の起算日を選択します。
>>-.---.------INTDATE---"type"----->< .-/-+
type | 起算日のタイプを指定します。 |
デフォルト値 | ANSI |
フェーズ | 構文チェック |
$SET | 任意の行 |
この指令を使用して、date 本来の機能 (つまり、DATE-OF-INTEGER、DAY-OF-INTEGER、INTEGER-OF-DATE および INTEGER-OF-DAY) で使用される整数形式の日付の起算日を選択します。
type には、次の値を指定できます。
ANSI | コンパイラで ANSI COBOL 標準の起算日 (第 1 日を 1601 年 1 月 1 日とする) を使用するよう指示します。 |
LILIAN | コンパイラで Lilian の起算日 (第 1 日を 1582 年 10 月 15 日とする) を使用するよう指示します。 |
date 本来の機能に関する詳細については、『言語リファレンス』を参照してください。
コンパイラで中間コードが作成される際に、他の環境の Micro Focus COBOL システムの異なるバージョン用に作成されたコードを移植するレベルを、この指令で制御します。
>>-.---.-.-----INTLEVEL--"integer"-.------->< .-/-+ .-NO--INTLEVEL------------+
integer |
移植レベルを指定します。2、4、または 5 を設定できます。 |
デフォルト値 | INTLEVEL"2" |
フェーズ | 構文チェック |
$SET | 不可 |
P64 を指定するとすぐに INTLEVEL"5" に設定されます。
中間コードの移植性に関する全詳細は、該当する COBOL システムで説明されています。
NOINTLEVEL を指定すると、中間コードは、この環境で実行する場合にのみ適した形で作成されます。
INTLEVEL"integer" を指定すると、他の環境にある Micro Focus COBOL 製品のいくつかのバージョンで実行できる中間コードが作成されます。複数の環境間で移植する場合は、コンパイル時に使用される integer の値が、中間コードを実行する各環境上の Micro Focus COBOL システムでサポートされている必要があります。
INTLEVEL"integer" を指定すると、ユーザプログラムで使用できる構文が制限されることがあります。
コンパイルするプログラムで、審議中の ISO2002 標準規格で定義されている構文を使用している場合は、INTLEVEL"4" 以上を使用してください。DIALECT"ISO2002" を設定した場合は、INTLEVEL"4" がデフォルトで設定されます。これらの指令を設定した場合は、審議中の ISO2002 標準規格で定義されている OO 構文と、Server Express で使用されている OO 構文とが異なるため、Server Express を使用して作成された OO プログラムは失敗します。
DIALECT コンパイラ指令
ISO2002 コンパイラ指令
READ ... INTO 文、および WRITE ... FROM 文での集団の処理方法を選択します。
>>-.---.-.----.--IOCONV-------------------->< .-/-+ .-NO-+
なし
デフォルト値 | IOCONV |
フェーズ | 構文チェック |
$SET | 任意の行 |
NOIOCONV を指定すると、READ ... INTO、および WRITE ... FROM の操作で、集団はそのまま転記されます。この指令は下位互換をサポートするために用意されています。
IOCONV を設定すると、該当する操作で基本レコードの内容が変換されます。これは、通常の ANSI の動作で、デフォルトの設定です。
ISO2002 COBOL 標準規格で予約されている語を予約語として扱い、特定の機能の動作を変更して ISO2002 COBOL 標準規格の機能と互換性を持たせます。
>>-.---.-.----.---ISO2002-------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOISO2002 |
フェーズ | 構文チェック |
$SET | 最初の行 |
審議中の ISO2002 標準規格と完全に互換性を持たせるには、DIALECT"ISO2002" 指令も設定する必要があります。これらの指令を設定した場合は、ISO2002 標準規格に提案されている OO 構文と、Server Express で使用されている OO 構文が異なるため、Server Express を使用して作成された OO プログラムは失敗します。
DIALECT コンパイラ指令
INTLEVEL コンパイラ指令
ファイルハンドラが索引ファイルキーを整列する際に、ASCII の文字の照合順序ではなく、ローカルの文字の照合順序に従うよう指定します。
>>-.---.-.----.---IXNLSKEY-------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOIXNLSKEY |
フェーズ | 構文チェック |
$SET | 任意の行 |
索引ファイルを、ロケールの異なるシステムに移動すると、索引キーは検索できなくなります。
索引キーを、数値順に整列します。
>>-.---.-.----.---IXNUMKEY-------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOIXNUMKEY |
フェーズ | 構文チェック |
$SET | 任意の行 |
索引キーは、通常、数字のデータが含まれている場合でも、英数字として扱われます。このため、READ NEXT 操作が正しく動作しないことがあります。この指令は、数字を正しく並べる必要がある場合に使用します。この指令は、通常は符号付き数値として定義されているキーにのみ有効ですが、符号なしデータにも有効になる場合があります (たとえば COMP-5) 。
たとえば、pic s9(5) と定義されたキーの例を示します。キー値が 1、-2、3、-4 の 4 つのレコードがある場合は次のように格納されます。
00001+ 00002- 00003+ 00004-
これらのキーを英数字として扱うと、上記の順番で検索されますが、これらを数字として扱うと (つまり、IXNUMKEY を指定した場合)、次のような数字の順番で格納されます (READ NEXT を使用した場合の検索順も次のようになります)。
00004- 00002- 00001+ 00003+
Micro Focus 日本語拡張(PIC N、日本語のデータ名および日本語の手続き名)を使用できるようにします。
>>-.---.-.-------JAPANESE--"integer"-.----->< .-/-+ ..----.-JAPANESE------------+ .-NO-+
integer |
1 または 2 を設定し、必要なサポートレベルを指定します。 |
デフォルト値 | NOJAPANESE |
フェーズ | 構文チェック |
$SET | 最初の行 |
integer には次の値を指定できます。
1 | Nihongo Micro Focus 製品の旧バージョンと互換性を持たせます。 |
2 | 拡張 PIC N をサポートします。この値を設定すると、DBSPACE 指令が有効になります。 |
パラメータを指定しないで JAPANESE を指定すると、JAPANESE"2" を指定した場合と同様の動作になります。
この指令は互換性を保つ目的でのみ用意されています。この機能は、NCHAR 指令が引き継ぎます。 JAPANESE および NCHAR は同義語です。JAPANESE、および DBCS は、相互排他的な指令です。
DBCS コンパイラ指令
DBSPACE コンパイラ指令
NCHAR コンパイラ指令
コンパイルが失敗した場合、たとえば、コンパイル時に重大なエラーや回復不能なエラーが発生した場合に、コンパイラで中間コードを生成するかどうかを指定します。
>>-.---.-.----.--KEEP-INT------------------>< .-/-+ .-NO-+
なし
デフォルト値 | KEEP-INT |
フェーズ | 構文チェック |
$SET | 任意の行 |
ハイフンを使わずに KEEPINT と指定しても、コンパイラでは認識されます。
NOKEEP-INT を選択して 区分化されたプログラムをコンパイルすると、コンパイルに失敗した区分が 1 つでもあった場合に、中間コードがどの区分に対しても生成されません。
ファイルハンドラに、開いている索引ファイルに含まれるすべてのキーが、アプリケー ションで定義されていることを確認させるかどうかを指定します。
>>---.---.--.----.-----KEYCHECK---------->< .-/-+ .-NO-+
デフォルト値 | KEYCHECK |
フェーズ | 構文チェック |
$SET | 任意の行 |
KEYCHECK を指定すると、すべてのキーが指定され、一致しているかどうかがチェ ックされ、そうでない場合は、3/9 エラーが返されます。NOKEYCHECK を指定すると、 ファイルがファイルハンドラにより開かれるときに、キーの定義はまったくチェック されません。NOKEYCHECK が設定されている場合にファイルが開かれ、一致しないキー があると、そのキーを明示的に参照する入出力操作(KEY フェーズでの READ または START など)はいずれも、3/9 エラーとなります。
索引ファイルに対して実行する、キー圧縮のタイプを指定します。
>>-.---.-.-----KEYCOMPRESS--"integer"-.---->< .-/-+ .-NO--KEYCOMPRESS------------+
integer |
0 から 7 までのいずれかの値を指定します。 |
デフォルト値 | NOKEYCOMPRESS |
フェーズ | 構文チェック |
$SET | 任意の行 |
integer には次の値を組み合わせて指定します。
1 | 重複キーを反復させない。 |
2 | 前のキーと同じ先行文字を使用しない。 |
4 | 後続空白を入れない。 |
これらを組み合わせるには、組み合わせる値を加算した数を指定します。
KEYCOMPRESS"0" は NOKEYCOMPRESS を指定した場合と同じ動作になります。
キー圧縮は、ファイルの作成時にのみ指定する必要があります。指定すると、ファイルが開かれた際に、キー圧縮が認識されます。
個々のファイルに対してキー圧縮を行うには、作成したソースで $SET 文を使用し、この指令が対象ファイル内の SELECT 文にある該当するKEY句を含む、ソースの一部にのみ有効になるよう設定します。
作成したプログラムで -INC 文が使用できるようにします。
>>-.---.-.----.--LIBRARIAN----------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOLIBRARIAN |
フェーズ | 構文チェック |
$SET | 任意の行 |
-INC 文では、原始プログラムにインクルードするファイルを指定します。文字列 -INC は、1 桁目から記述し、間を空けずに大文字で指定します。その後ろに 1 つ以上の空白を空けて、COBOL ソースを含むファイルの名前を同じ行に指定します。指定したファイルは、-INC 文が記述されている位置でプログラムにインクルードされます。
ソースリストの最後に表示される詳細情報を制御します。
>>-.---.-.-------LINE-COUNT--"integer"-.---->< .-/-+ ..----.-LINE-COUNT------------+ .-NO-+
integer |
1 または 2 を指定します。 |
デフォルト値 | NOLINE-COUNT |
フェーズ | 構文チェック |
$SET | 最初の行 |
integer に次の値を指定し、表示内容を制御します。
1 | 空白行とコメントを除いた確認済みソースの行数がソースリストの最後に表示されます。 |
2 | 確認済みソースの行数に加え、その他の追加情報がソースリストの最後に表示されます。これらの情報には、プログラム内の呼び出し数、節数、および条件数などが含まれます。 |
integer を指定しないで LINE-COUNT を指定すると、LINE-COUNT"2" を指定した場合と同じ動作になります。
連絡節項目が参照される度に、その項目の存在を確認します。
>>-.---.-.----.--LINKCHECK----------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOLINKCHECK |
フェーズ | 生成 |
$SET | 最初の行 |
CHECK で LINKCHECK に設定されます。
LINKCHECK 指令を使用する場合は、PARAMCOUNTCHECK 指令も指定する必要があります。
この指令を設定した場合に、存在しない連絡節項目が参照されると、その度に実行時エラー 203 (CALL のパラメータが指定されていない) が生成されます。
CHECK コンパイラ指令
PARAMCOUNTCHECK コンパイラ指令
ソースリストファイルの出力先を指定します。
>>-.---.-.-------LIST-.-"destination"-.-.-->< .-/-+ | .-()------------+ | ..----.-LIST-------------------+ .-NO-+
destination |
ファイルの完全指定、または装置名を指定します。 |
デフォルト値 | NOLIST |
フェーズ | 構文チェック |
$SET | 任意の行 (LIST および NOLIST の場合) 不可 (LIST"filename" および LIST() の場合) |
NOLIST を指定すると、最後に NOFORM、NOREF、NOSETTING および NOXREF が設定されます。
LIST で FORM"60" がすぐに設定されます。
RNIM を指定すると、最後に NOLIST に設定されます。
既存のファイルを指定すると、ファイルは上書きされます。
NOLIST を指定すると、ソースリストは作成されません。destination を指定しないで LIST を設定すると、ソースリストは画面に送られます。destination または () のいずれかを指定した場合は、この指令を $SET 文で使用できません。
destination には適切な装置の名前を指定します。この時、システムスプーラの制御下にある装置を選択する必要があります。
パラメータを指定しない NOLIST および LIST は、プログラム内の $SET 文で使用して、プログラムの一部をリストすることができます。リストの出力先をこの方法で変更することはできません。
LIST() を指定すると、ソースリストは source-name.lst ファイルに出力されます。source-name はコンパイルされるプログラム名のルート部分です。
コンパイルの度にソースリストをファイルに出力する場合は、LIST() 指令を cobol.dir ファイルに記述します。これにより、デフォルトの設定値 NOLIST が上書きされます。
LIST 指令が cobol.dir ファイルに既に記述してあり、リストが画面に出力されるようになっている場合は、コマンド行で LIST() を使用すると、デフォルトの設定を上書きできます。
上書きするリストファイルがあるパスを指定します。ファイルリストの名前は source-name.lst です。
>>-.---.-.----.--LISTPATH--"list-path"----->< .-/-+ .-NO-+
list-path |
上書きするファイルリストへのパス、または、上書きするリストファイルへのパスを指定する環境変数を指定します。 |
デフォルト値 | NOLISTPATH |
フェーズ | 構文チェック |
$SET | 最初の行 |
リストの幅を設定します。
>>-.---.--.-LISTWIDTH-.-"width"------------>< .-/-+ .-LW--------+
width |
幅を文字で指定します。72 から 132 の間の値を指定します。 |
デフォルト値 | LISTWIDTH"80" |
フェーズ | 構文チェック |
$SET | 任意の行 |
LISTWIDTH"132" を指定すると、リストの各行に追加情報が表示されます。この追加情報には、ファイルの開始位置からの相対行番号と、現在のコピーファイル名の先頭 8 字 (メインファイル用の部分) が含まれます。
CALL literal 文のリテラル定数を、パブリックシンボルとしてコンパイラに宣言し、これらの値が、実行時ではなくリンク時に解決されるようにします。 (このようにして生成された呼び出し文を LITLINK 呼び出しと呼びます。)
>>-.---.-.-----LITLINK-.-----------.-.----->< .-/-+ | .-"integer"-+ | .-NO--LITLINK---------------+
integer |
1 または 2 を指定します。 |
デフォルト値 | NOLITLINK |
フェーズ | 生成 |
$SET | 最初の行 |
この指令は、オブジェクトコードファイルにのみ有効です。
LITLINK"2" を指定すると、CALL 定数 文の名前が、先頭にアンダスコアが 1 つ含まれる "_name" のような場合、エントリ名 _name の LITLINK 呼び出しが生成されます。名前の先頭にアンダスコアが 2 つ含まれる __name のような場合は、エントリ名、 name の LITLINK 呼び出しが生成されます。(つまり、エントリ名はパブリックシンボルとして宣言されます。)
LITLINK または LITLINK"1" を指定した場合は、定数部分の先頭にアンダスコアが含まれるかどうかにかかわらず、すべての CALL 定数 文で LITLINK 呼び出しが生成されます。
No CALL 定数 文では、定数部分の先頭にアンダスコアが含まれるかどうかに関係なく、LITLINK 呼び出しが生成されます。
LITLINK"2" は、16 ビットの COBOL システム用に書かれたコードとの下位互換を維持するためにのみ用意されています。新しくプログラムを作成する場合は、呼び出し規約 8 を使用してください。
SIZE 句が省略されていて、数字のリテラル定数を値で渡す場合に、渡す値のバイト数を指定します。
>>-.---.--LITVAL-SIZE--"integer"----------->< .-/-+
integer |
4 までの数字を設定して、渡すバイト数を指定します。 |
デフォルト値 | LITVAL-SIZE"4" |
フェーズ | 構文チェック |
$SET | 任意の行 |
USING 文に指定されている連係レコードは、すべて ALIGN 指令に従って割り当てられた 01 またはレベル 77 の項目であることを示します。
>>-.---.-.----.--LNKALIGN------------------>< .-/-+ .-NO-+
なし
デフォルト値 | NOLNKALIGN |
フェーズ | 生成 |
$SET | 不可 |
LNKALIGN を使用すると、実行時にリンク項目へのアクセスするに要する時間を短縮することができますが、この指令を使用する場合は注意が必要です。作成したプログラムをコンパイルする際に、ALIGN 指令を正しく設定する必要があります。項目が割り当てられているかどうかはチェックされません。
この指令を使用した結果は、マシンによって異なるため、この指令の影響がはっきりしない場合は、この指令を使用しないでください。割り当てられていないリンク項目を渡すと、予期しない結果になることがあります。
この指令は、この COBOL システムの内部で使用するために予約されています。 設定のリストに表示される可能性があるため、ここで説明しています。 ユーザが使用する指令ではないので、この設定を変更しないでください。
>>-.---.--LOCALCOUNT--"integer"------------>< .-/-+
integer |
0 から 65536 までのいずれかの値です。 |
デフォルト値 | LOCALCOUNT"0" |
フェーズ | 構文チェック |
$SET | 最初の行 |
レコードロックのタイプを指定します。
>>-.---.--LOCKTYPE--"integer"-------------->< .-/-+
integer |
ロックのタイプ。 |
デフォルト値 | LOCKTYPE"0" |
フェーズ | 構文チェック |
$SET | 最初の行 |
integer には次の値を指定できます。
0 | プログラムは、ロックされたレコードを読み取ることができますが、他の目的でアクセスすることはできません。この COBOL システムでは、これが標準の方法です。 |
1 | プログラムは、ロックされたレコードに全くアクセスできません。これは、COBOL 以外の言語の動作と同じです。 |
2 | 開かれているファイルと同じ基本名で、拡張子が .lck のファイルが新規に作成されます。レコードロックはこのファイルに記録されます。これにより、ファイルハンドラは、ファイルが共有されているか、ロックされているかにかかわらず、そのファイルに対して 4 ギガバイトまで読み書きを行うことができます。ストライプしたファイルには、この値を設定しないでください。 |
この指令は、CALLFH 指令が使用された場合のみ有効です。
予約語を別の予約語の同義語にします。
>>--MAKESYN-"rsv-word-1" = "rsv-word-2"---><
rsv-word-1 |
予約語を指定します。 |
rsv-word-2 |
意味を変更する予約語を指定します。 |
デフォルト値 | 予約語の同義語は作成されません。 |
フェーズ | 構文チェック |
$SET | 最初の行 |
等号 (=) の前後に空白文字を入れる必要があります。 読みやすくするために、指令とオプションの間にも空白文字を入れることができます。 この指令を Cob のコマンド行で -C オプションに指定した場合は、すべての文字列を UNIX のシェルに対して正しくエスケープする必要があります。 詳細は、『COBOL システムインターフェイス (Cob)』 の章の 『オプションの構成』 の項を参照してください。 たとえば、MAKESYN をコマンド行で指定する場合は次のようにします。
cob -C 'makesyn "low" == "lowlight"' a.cbl
この指令は、SETTING 指令を指定して作成されるリストには表示されません。
プログラム名、および入口点が、OS/VS COBOL、DOS/VS COBOL、VS COBOL II、および COBOL/370 と互換性を持つよう、コンパイラで変更されるようにします。
>>-.---.-.----.--MAPNAME------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOMAPNAME |
フェーズ | 構文チェック |
$SET | 最初の行 |
MAPNAME は、コンパイル時に定義されたり、次のようなプログラムから参照されるプログラム名、および入口点に影響があります。
矛盾する名前が検索された場合は、警告メッセージが出力され、オブジェクトプログラムでは、修正された名前が使用されます。適用される規則、および修正される内容は次の通りです。
0 → J 1 - 9 → A - I
発生したエラーが指定した数に達した場合に、コンパイラを停止します。
>>-.---.-.-----MAX-ERROR--"err-cnt-.-------.-"-.->< .-/-+ | .-svrty-+ | .-NO--MAX-ERROR-----------------------+
err-cnt |
エラーの最大数を指定します。 | ||||||||||
svrty |
カウントする最低重大度レベル。重大度が指定したレベル以上のメッセージのみ、カウントされます。次のいずれかを指定します。
何も指定しない場合は、F が指定されたことになります。 |
デフォルト値 | NOMAX-ERROR |
フェーズ | 構文チェック |
$SET | 任意の行 |
ハイフンを使わずに MAXERROR と指定しても、コンパイラでは認識されます。
指定されたレベル以上の重大度を示すメッセージの数が、指定された最大値に達した場合は、コンパイルが停止します。 メッセージは、作成されていれば、その重大度が変更された後にのみカウントされます。
次の指令を指定します。
MAX-ERROR"100 E"
この場合、重大度、 E または S のメッセージが 101 個生成されると、コンパイルは終了します。
CHANGE-MESSAGE コンパイラ指令
FLAG コンパイラ指令
FLAGAS コンパイラ指令
FLAGSTD コンパイラ指令
HIDE-MESSAGE コンパイラ指令
WARNING コンパイラ指令
Micro Focus COBOL システムとの上位互換をサポートする機能です。Micro Focus 固有の予約語を部分的に有効にし、特定の機能の動作を変更して、指定したバージョンと互換性を持たせます。
>>-.---.-.-------.-MF------.-"integer"-.--->< .-/-+ | .-MFLEVEL-+ | ..----.-.-MF------.-----------+ .-NO-+ .-MFLEVEL-+
integer |
互換性を持たせる Micro Focus COBOL のレベルを指定します。 |
デフォルト値 | MF"10" |
フェーズ | 構文チェック |
$SET | 最初の行 |
MF"7" を指定するとすぐに DBCS"2" が設定されます。
integer > 7 の場合は、DBCS"3" および DBSPACE がすぐに設定されます。
NOEARLY-RELEASE および MF が設定されている場合は、MF のデフォルト設定が MF"10" になります。
EARLY-RELEASE および MF が設定されている場合は、MF のデフォルト設定が MF"11" になります。
integer には次の値を指定できます。
1 | Professional COBOL V1.0、V1.1、および V1.2 Level II COBOL V2.5 および V2.6 Level II COBOL/ET V1.1 |
2 | VS COBOL Workbench V1.2 VS COBOL V1.2 |
3 | VS COBOL Workbench V1.3 VS COBOL Workbench V2.0 Professional COBOL V2.0 VS COBOL V1.5 |
4 | COBOL/2 V1.1 Professional COBOL/2 COBOL/2 Workbench V2.2 Microsoft COBOL V3.0 |
5 | COBOL/2 V1.2 COBOL/2 Workbench V2.3 |
6 | COBOL/2 V2.4 COBOL/2 Workbench V2.4 Microsoft COBOL V4.0 |
7 | COBOL/2 V2.5 COBOL/2 Workbench V2.5 Microsoft COBOL V4.5 |
8 | COBOL V3.0 COBOL Workbench V3.0 Microsoft COBOL V5.0 |
9 | COBOL V3.1 COBOL Workbench V3.1 |
10 | 古いリリースの構文が有効な COBOL V3.1 古いリリースの構文が有効な COBOL Workbench V3.1 COBOL V3.2 および V3.3 COBOL Workbench V3.2 および V3.3 Object COBOL V3.2 および V3.3 COBOL V4.0 (UNIX) |
11 | 古いリリースの構文が有効な COBOL V3 V4.0 (UNIX) |
この COBOL システムの旧バージョンでの空白行句の動作は、OLDBLANKLINE 指令を使用すると実装できます。この COBOL システムの旧バージョンでの NEXT SENTENCE 句の動作は、OLDNEXTSENTENCE 指令を使用すると実装できます。
MF"11" には、MF"10" のすべての予約語、および古いリリースの構文内の予約語の一部が含まれます。EARLY-RELEASE 指令がすでに設定されている場合に、パラメータを設定しないで MF を指定すると、MF"11" が設定されます。EARLY-RELEASE 指令が設定されていない場合は、MF"10" が設定されます。EARLY-RELEASE 指令を設定しない状態で MF"11" を設定することはできません。
EARLY-RELEASE コンパイラ指令
OLDBLANKLINE コンパイラ指令
OLDNEXTSENTENCE コンパイラ指令
1 桁目にアスタリスク (*) が記述されている行を注記行と同様に扱います。ただし、これらの行は、ソースリストには表示されません。
>>-.---.-.----.--MFCOMMENT----------------->< .-/-+ .-NO-+
なし
デフォルト値 | MFCOMMENT |
フェーズ | 構文チェック |
$SET | 任意の行 |
SOURCEFORMAT"FREE" を指定すると、最後に NOMFCOMMENT に設定されます。
MFCOMMENT を指定すると、1 桁目にアスタリスク (*) が記述されている行は、コンパイラに無視されます。これらの行はソースリストに表示されません (Animator では表示されます)。NOMFCOMMENT を指定すると、アスタリスクは一連番号の一部となり、特別な意味を持ちません。
英数字の MOVE 操作に関して、ソースの長さとターゲットの長さがコンパイラで確認されるようにします。
>>-.---.--.----.-----MOVE-LEN-CHECK------>< .-/-+ .-NO-+
デフォルト値 | NOMOVE-LEN-CHECK |
フェーズ | 構文チェック |
$SET | 任意の行 |
この指令を指定すると、英数字の MOVE 操作で、ソースの長さとターゲットの長さをがコンパイラで確認され、長さが異なる場合は警告メッセージ (166) が出力されます。
この指令を有効にした場合に生成される警告メッセージは、WARNINGS"2"、または WARNINGS"3" を選択した場合にのみ表示されます。
Microsoft 固有の予約語を部分的に有効にし、指定したバージョンと互換性を持つよう、特定の機能の動作を変更して、Microsoft COBOL システムとの上位互換を容易にします。
>>-.---.-.-------MS--"version"-.----------->< .-/-+ ..----.-MS------------+ .-NO-+
version |
1 または 2 を指定します。 |
デフォルト値 | NOMS |
フェーズ | 構文チェック |
$SET | 最初の行 |
MS を指定するとすぐに DEFAULTBYTE"0" および ACCEPTREFRESH が設定されます。
version には次の値を指定できます。
1 | Microsoft COBOL バージョン 1 |
2 | Microsoft COBOL バージョン 2 |
パラメータを指定しないで MS を指定すると、MS"2" を指定した場合と同様の動作になります。 MS"1" は、IBM-MS、および PC1 と同じです。
この指令は、Microsoft COBOL のバージョン 3.0 より古いバージョンと互換性を持たせるために用意されています。V3.0 以降と互換性を持たせるためには、次の指令を使用してください。
NOMS MF"integer"
integer にの値に関しては、MF 指令のページで説明しています。
IBM COBOL for MVS で予約されている語を予約語として扱います。
>>---+-------+-+--------+--- MVS -------------------->> +-- / --+ +-- NO --+パラメータ
なし
プロパティ
デフォルト値 | NOMVS |
フェーズ | 構文チェック |
$SET | 最初の行 |
MVS を指定するとすぐに DBSPACE と DBCS"3" が設定されます。
比較で使用するデフォルトの文字の照合順序を指定します。
>>-.---.--NATIVE--"coll-seq"--------------->< .-/-+
coll-seq |
"ASCII" または "EBCDIC" |
デフォルト値 | NATIVE"ASCII" |
フェーズ | 構文チェック |
$SET | 最初の行 |
CHARSET"ASCII" を指定するとすぐに NATIVE"ASCII" に設定されます。
CHARSET"EBCDIC" を指定すると、最後に NATIVE"EBCDIC" に設定されます。
詳細は、『言語リファレンス』で、PROGRAM COLLATING SEQUENCE の規則を参照してください。
索引ファイルの場合は、キーがつねに ASCII の文字の照合順序で並べられています。
プログラムの浮動小数点のデータ項目が IBM の16進数形式を使用するかどうかを判断します。
>>-.---.-.----.--NATIVE-FLOATING-POINT----->< .-/-+ .-NO-+
なし
デフォルト値 | NATIVE-FLOATING-POINT |
フェーズ | 構文チェック |
$SET | 最初の行 |
NATIVE-FLOATING-POINT を指定すると、すべての浮動小数点のデータ項目は IEEE を使用します。NONATIVE-FLOATING-POINT を指定すると、MAINFRAME_FLOATING_POINT 環境変数によって使用する形式を判断します。
Micro Focus 2 バイト言語拡張 (PIC N、日本語のデータ名および日本語の手続き名) を使用できるようにします。
>>-.---.-.-------NCHAR--"integer"-.-------->< .-/-+ ..----.-NCHAR------------+ .-NO-+
integer |
1 または 2 を設定し、必要なサポートレベル指定します。 |
デフォルト値 | NONCHAR |
フェーズ | 構文チェック |
$SET | 最初の行 |
integer には次の値を指定できます。
1 | 日本語版 Micro Focus 製品の旧バージョンと互換性を持たせます。 |
2 | 拡張 PIC N をサポートします。 この場合、 DBSPACE 指令が有効になります。 |
パラメータを指定しないで NCHAR を指定すると、NCHAR"2" を指定した場合と同様の動作になります。
この指令は JAPANESE 指令の同義語ですが、この指令を使用することをお奨めします。
NCHAR および DBCS は、相互排他的な指令です。
NCHAR"2" を指定して PIC X を PIC N に変更すると、空白文字 (x"20") は 2 バイトの空白文字に拡張されます。これに伴い、x"2020" は、2 バイトの空白文字 2 つに拡張されます。 NCHAR"1" を指定すると、x"2020" は、2 バイトの空白文字 1 つに拡張されます。
DBCS コンパイラ指令
DBSPACE コンパイラ指令
JAPANESE コンパイラ指令
この指令は、この COBOL システムの内部で使用するために予約されています。 設定のリストに表示される可能性があるため、ここで説明しています。 ユーザが使用する指令ではないので、この設定を変更しないでください。
作成したプログラムで入れ子プログラムが使用できるようにします。
>>-.---.-.----.--NESTCALL------------------>< .-/-+ .-NO-+
なし
デフォルト値 | NONESTCALL |
フェーズ | 構文チェック |
$SET | 最初の行 |
この指令は、この COBOL システムの内部で使用するために予約されています。 設定のリストに表示される可能性があるため、ここで説明しています。 ユーザが使用する指令ではないため、この設定を変更しないでください。
入れ子プログラムで局所記憶域節が使用できるようにします。
>>-.---.-.----.--NESTLOCALSTORAGE---------->< .-/-+ .-NO-+
なし
デフォルト値 | NONESTLOCALSTORAGE |
フェーズ | 構文チェック |
$SET | 最初の行 |
NLS サポート機能を有効にします。
>>-.---.-.----.--NLS----------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NONLS |
フェーズ | 構文チェック |
$SET | 不可 |
NLS を指定すると、プログラムは、実行時に自動的にユーザの国に適した文字集合、通貨記号、および編集記号に適応できます。
『プログラマーズガイド − アプリケーション作成』の『各国語対応』の章
PIC N 句に対する USAGE のデフォルト値を定義し、各国語の解釈を制御します。
>>-.---.--NSYMBOL--"nsymbol-type"--------->< +-/-+
nsymbol-type | N 記号の意味。次の値を設定できます。 | ||||||||
DBCS | USAGE 句が指定されていない PIC N 句では、USAGE 句は DISPLAY-1、つまりDBCS 文字となります。 | ||||||||
リテラルの先頭のN 記号がDBCS 文字を表します。 | |||||||||
NATIONAL | USAGE 句が指定されていない PIC N 句では、USAGE 句は NATIONAL つまりユニコード文字となります。 | ||||||||
リテラルの先頭のN 記号がユニコード文字を表します。 |
デフォルト値 | NSYMBOL"DBCS" | ||||||||
フェーズ | 構文チェック | ||||||||
$SET | 可 |
デフォルト値 | NOODOOSVS |
フェーズ | 構文チェック |
$SET | 最初の行 |
ODOOSVS を指定すると、最後に ODOSLIDE が設定されます。
ODOOSVS を指定すると、可変長集団の長さと、可変長テーブルの後ろの項目のアドレスは、OCCURS DEPENDING ON 項目が変更された際に評価されます。可変長集団、または移動データ項目が参照された場合には評価されません。
可変長テーブルの長さが変更された場合に、そのテーブルと同じレコードで、そのテーブルの後にあるデータ項目を移動します。
>>-.---.-.----.--ODOSLIDE------------------>< .-/-+ .-NO-+
なし
デフォルト値 | NOODOSLIDE |
フェーズ | 構文チェック |
$SET | 最初の行 |
ODOOSVS を指定すると、最後に ODOSLIDE に設定されます。
この指令は、可変長テーブルと同じレコードで、テーブルの後ろにあるデータ項目に作用します。つまり、OCCURS DEPENDING 句のある項目の後ろで、その項目に属さないデータ項目に有効です。
ODOSLIDE を指定すると、これらの項目はサイズに関係なく、常にテーブルのすぐ後ろに配置されます。つまり、これらの項目のアドレスは、テーブルのサイズが変わると変更されます。NOODOSLIDE を指定すると、これらの項目は固定アドレスを持ちます。このアドレスは、テーブルの最後に配置された空白の後から始まります。
スクリーン節の空白行句の動作を変更します。
>>-.---.-.----.--OLDBLANKLINE-------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOOLDBLANKLINE |
フェーズ | 構文チェック |
$SET | 任意の行 |
OLDBLANKLINE を指定すると、BLANK LINE 句は、ERASE EOL と全く同じ動作をします。つまり、カーソルの右側にあるすべての文字が削除されます。
NOOLDBLANKLINE を指定すると、BLANK LINE 句は行全体を削除します。
COPY 文の動作を ANSI'68 標準規則に準拠させます。
>>-.---.-.----.--OLDCOPY------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOOLDCOPY |
フェーズ | 構文チェック |
$SET | 任意の行 |
この指令は、この COBOL システムの内部で使用するために予約されています。 設定のリストに表示される可能性があるため、ここで説明しています。 ユーザが使用する指令ではないため、この設定を変更しないでください。
>>-.---.-.----.--OLDFILEIO----------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOOLDFILEIO |
フェーズ | 構文チェック |
$SET | 最初の行 |
索引を添字としてコンパイルします。
>>-.---.-.----.--OLDINDEX------------------>< .-/-+ .-NO-+
なし
デフォルト値 | NOOLDINDEX |
フェーズ | 構文チェック |
$SET | 最初の行 |
NORM を指定するとすぐに NOOLDINDEX に設定されます。
RM および RM"ANSI" を指定するとすぐに OLDINDEX に設定されます。
この指令は、旧製品と互換性を持たせるために提供されています。
NEXT SENTENCE 文の動作を変更します。
>>-.---.-.----.--OLDNEXTSENTENCE----------->< .-/-+ .-NO-+
なし
デフォルト値 | NOOLDNEXTSENTENCE |
フェーズ | 構文チェック |
$SET | 任意の行 |
OLDNEXTSENTENCE を指定すると、NEXT SENTENCE 文は CONTINUE 文と同じ動作になります。
CONTINUE および NEXT SENTENCE の詳細は、『言語リファレンス』を参照してください。
CONTINUE 文
READ ... INTO 文の動作を変更します。
>>-.---.-.----.--OLDREADINTO--------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOOLDREADINTO |
フェーズ | 構文チェック |
$SET | 任意の行 |
OLDREADINTO を指定すると、READ に失敗した場合でも、ファイルのレコード領域から、INTO 句で指定されたデータ項目への暗黙的な移動が実行されます。NOOLDREADINTO を指定した場合は、READ が成功した場合にのみ MOVE が実行されます。
PIC X および PIC N フィールドを、同じ STRING 文、UNSTRING 文、または INSPECT 文で指定できるようにします。
>>-.---.-.----.--OLDSTRMIX--------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOOLDSTRMIX |
フェーズ | 構文チェック |
$SET | 任意の行 |
この指令は、上位互換をサポートするために提供されています。
この指令を使用すると、予期しない結果や 2 バイトデータの破損などを引き起こす可能性があるため、使用しないことをお奨めします。
この指令を指定すると、OO COBOL クラスをコンパイルする際の言語オプションを変更できます。
+---------------. | | >>----.---.---OOCTRL---.-switch-option-.------>< .-/-+
switch | option を有効、または無効にします。 |
option | OO プログラムの構文の処理方法を指定します。 |
デフォルト値 | OOCTRL"-W" (すべての方言) |
フェーズ | 構文チェック |
$SET | 任意の行 |
switch には次の値を指定できます。
+ | option を有効にする。 |
- | option を無効にする。 |
option には次の値を設定できます。
G | インスタンスに対してクラスデータをグローバルにします。 このオプションは、使用しないことをお奨めします。これは、古いリリースと互換性を持たせるためのオプションです。 |
P | パラメータタイプの情報を、実行時のシステムで利用できるようにします。この情報は、OLE および SOM に送信するメッセージで必要です。 |
Q | 次の機能を無効にします。
|
W | 次の作業記憶域を使用します。
作業記憶域がローカルの記憶域を意味する場合は、ローカル記憶域節を指定しないでください。作業記憶域がオブジェクト記憶域を意味する場合は、オブジェクト記憶域節を指定しないでください。 これにより、開発中の ISO2002 COBOL 標準規格と互換性を持たせることができます。 |
開発中の ISO COBOL 標準規格に示されるのと同じ方法で作業記憶域を使用する場合は +W を設定します。
Intel x86 CPUのシステムでのオブジェクトコードファイルで生成されるコードの最適化レベルを指定します。Solaris Intel、UnixWare などのシステムがこれに相当します。
>>----.---.---OPT---integer------>< .-/-+
integer | 最適化のレベルを指定します。 |
デフォルト値 | 何も指定しないとき OPT"2"、単に OPT とだけ指定したとき OPT"3" |
フェーズ | 生成 |
$SET | 任意の行 |
ANIM を指定するとすぐに NOOPT に設定されます。
integer には次の値を指定できます。
1 | 最低限の最適化 |
2 | デフォルトの最適化 |
3 | 追加の最適化。特に STRING、UNSTRING、および INSPECT を最適化します。このオプションを指定すると、デフォルトの最適化に比べ、プログラムの生成に要する時間が短くなります。 |
4 | 3 と同じように最適化されますが、さらに、Intel プラットフォーム上ではコードのスケジューリングも行われます。この値を指定すると、3 に比べて、プログラムの生成に要する時間が長くなります。 |
Intel x86 以外のCPUのシステムでのオブジェクトコードファイルで生成されるコードの最適化レベルを指定します。AIX、Solaris Sparc、HP-UX、IA64 などのシステムがこれに相当します。
>>----.---.---OPT------->< .-/-+
なし |
デフォルト値 | OPT |
フェーズ | 生成 |
$SET | 任意の行 |
OPT は、全体として最適化 (global optimisation)を行います。つまり、最適化においては、小さなプログラムの連続としてではなく、プログラム全体を1つのプログラムとして調べます。
OPTを指定すると、OPTを指定しない場合に比べて、コンパイルの時間がかなり長くなります。
大きなプログラムの最適化を要求すると、メモリ不足によりコンパイルが失敗する可能性があります。失敗した場合は、NOOPTを指定してコンパイルを繰り返し行います。
I-O または EXTEND のために開かれたファイルはすべて、コンパイラで省略可能なファイルとして扱われるようにします。
>>-.---.-.----.--OPTIONAL-FILE------------->< .-/-+ .-NO-+
なし
デフォルト値 | OPTIONAL-FILE |
フェーズ | 構文チェック |
$SET | 最初の行 |
NORM を指定するとすぐに OPTIONAL-FILE に設定されます。
RM または RM"ANSI" を指定するとすぐに NOOPTIONAL-FILE に設定されます。
ANSI'85 標準規格の COBOL では、ファイル内の SELECT 文に OPTIONAL 句がある場合のみ、ファイルはオプションファイルとして扱われます。ANSI'85 標準規格と互換性を持たせるには、NOOPTIONAL-FILE 指令を指定する必要があります。
IBM COBOL for OS/390 R2V2 で予約されている語を予約語として扱います。
>>---+-------+-+--------+--- OS390 ---------------------->< +-- / --+ +-- NO --
なし
デフォルト値 | NOOS390 |
フェーズ | 構文チェック |
$SET | 最初の行 |
OS390 を指定するとすぐに DBSPACE と DBCS"3" が設定されます。
IBM OS/VS COBOL で予約されている語を予約語として扱います。
>>-.---.-.----.--OSVS---------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOOSVS |
フェーズ | 構文チェック |
$SET | 最初の行 |
OSVS を指定するとすぐに NODOSVS が設定されます。
DISPLAY および EXHIBIT 文の出力が、指定した出力ファイルに書き込まれるようにします。
>>-.---.-.--------OUTDD--"fname rsize rtype ctype"-.'" .-/-+ .--------OUTDD--"fname rsize rtype"-------| .--------OUTDD--"fname rsize"-------------| .--------OUTDD--"fname"-------------------| .-.----.-OUTDD----------------------------+ .-NO-+
fname |
指定された DISPLAY 文、および EXHIBIT 文の出力の書き込み先ファイル名を指定します。デフォルト値は SYSOUT です。 |
rsize |
ファイル内のデータレコードのサイズを指定します。デフォルト値は 132 です。 |
rtype |
行順編成の場合は L、レコード順の場合は R を指定します。デフォルト値は L です。 |
ctype |
ASCII の場合は A、EBCDIC の場合は E を指定します。デフォルト値は A です。
E は、CHARSET(EBCDIC) 指令が使用されている場合にのみ有効です。 |
デフォルト値 | NOOUTDD |
フェーズ | 構文チェック |
$SET | 最初の行 |
OUTDD を指定すると、UPON オプションがない、または UPON SYSOUT を指定している、形式 1 の すべての DISPLAY 文およびすべての EXHIBIT 文 が WRITE 文に変換されます。この WRITE 文では、指定された外部のファイル名を持つファイルに書き込まれます。
ファイル名は、他の外部のファイル名を持つファイルと同じ方法で、物理ファイル名にマップすることができます。つまり、環境変数を使用してマップすることも、外部ファイルマッパー MFExtmap を使用してマップすることもできます。
DISPLAY 文
EXHIBIT 文
INDD コンパイラ指令
予約語を、新しく作成した語に置き換えます。
+---------------------------. v | >>-OVERRIDE--"rsv-word" = "user-word"-----><
rsv-word |
既存の予約語を指定します。 |
user-word |
既存の予約語と異なる COBOL 語を指定します。 |
デフォルト値 | 予約語の変更は行われません。 |
フェーズ | 構文チェック |
$SET | 最初の行 |
この指令を指定すると、既存の予約語が、指定した利用者語として扱われます。そのため、プログラムでは、user-word は予約語として扱われ、rsv-word を利用者語として使用することができます。
等号 (=) の前後に空白文字を入れる必要があります。指令とオプションの間にも空白文字を入れて、見やすくすることができます。この指令を Cob のコマンド行で -C オプションに指定した場合は、すべての文字列を UNIX のシェルに対して正しくエスケープする必要があります。詳細は、『COBOL システムインターフェイス (Cob)』の章の 『オプションの構成』 の項を参照してください。OVERRIDE をコマンド行で指定する例を次に示します。
cob -C 'override "global" == "glob"' a.cbl
この指令は SETTING 指令を指定して作成されたリストには表示されません。
64 ビットの実行時環境で実行するプログラムをコンパイルします。
>>-.---.-.----.--P64------------------>< .-/-+ .-NO-+
なし
デフォルト値 | 32 ビットシステムの場合は NOP64 です。cob64 コマンドを実行してコンパイルした場合、または作業モードが 64 に設定されている場合は P64 です。 |
フェーズ | 構文チェック |
$SET | 任意の行 |
P64 を指定するとすぐに次の指令が設定されます。
RTNCODE-SIZE"8"
INTLEVEL"5"
FCD3
P64 指令を設定すると、プログラムは、64 ビットの開発環境での実行用にコンパイルされ、64 ビットのポインタが処理されます。
FCD コンパイラ指令
INTLEVEL コンパイラ指令
RTNCODE-SIZE コンパイラ指令
32 ビットの作業モード および 64 ビットの作業モードに関する詳細は、『32 ビットモードおよび 64 ビットモードでの作業』の章を参照してください。
プログラムで ++INCLUDE 文を使用できるようにします。
>>-.---.-.----.--PANVALET------------------>< .-/-+ .-NO-+
なし
デフォルト値 | NOPANVALET |
フェーズ | 構文チェック |
$SET | 任意の行 |
++INCLUDE 文は、原始プログラムにインクルードするファイルを指定します。文字列 ++INCLUDE は、領域 A または領域 B から記述し、間を空けずに大文字で指定します。その後に 1 つ以上の空白を入れて、COBOL のソースを含むファイルの名前を同じ行に指定します。指定したファイルは、++INCLUDE 文が記述されている位置でプログラムにインクルードされます。
PANVALET および LIBRARIAN をともに指定すると、コンパイルしたプログラムはメインフレームと互換性がないという警告メッセージが出力されます。
入口点の USING 句に指定する場合よりも少ないパラメータで、同じプログラムが呼び出せるようにします。
>>-.---.-.----.--PARAMCOUNTCHECK----------->< .-/-+ .-NO-+
なし
デフォルト値 | PARAMCOUNTCHECK |
フェーズ | 生成 |
$SET | 最初の行 |
CHECK で PARAMCOUNTCHECK に設定されます。
次のいずれかに当てはまる場合は、この指令を使用する必要があります。
これ以外の場合は、NOPARAMCOUNTCHECK を指定してコンパイルコンパイルした方が効率が良くなります。COBOL 以外の言語から呼び出されるプログラムは、NOPARAMCOUNTCHECK を指定してコンパイルしなければなりません。
CHECK コンパイラ指令
LINKCHECK コンパイラ指令
STICKY-LINKAGE コンパイラ指令
IBM COBOL V1.00 で予約されている語を予約語として扱い、特定の機能の動作を変更して IBM COBOL V1.00 COBOL システムと互換性を持たせます。
>>-.---.-.----.--PC1----------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOPC1 |
フェーズ | 構文チェック |
$SET | 最初の行 |
PC1 を指定するとすぐに DEFAULTBYTE"0" および ACCEPTREFRESH が設定されます。
この指令は、IBM-MS 指令および MS"1" 指令と同じ意味を持ちます。
入れ子になった PERFORM 文からのリターンジャンプの動作を指定します。
>>-.---.--PERFORM-TYPE--"dialect"---------->< .-/-+
dialect |
MF、OSVS、または RM を指定します。 |
デフォルト値 | PERFORM-TYPE"MF" |
フェーズ | 構文チェック |
$SET | 最初の行 |
PERFORM-TYPE"OSVS" を指定すると、最後に TRICKLE が設定されます。
dialect には次の値を指定できます。
MF | 現在実行されている PERFORM 文の最も内側の出口点のみが認識され、そのリターンジャンプが実行されます。 |
OSVS | 現在実行されている PERFORM 文の出口点のうち、到達された出口点が認識されます。最初に到達された出口点のリターンジャンプが実行されます。出口点が同じ PERFORM 文は、2 つまで (内側と外側) 入れ子にすることができます。 それ以上の階層の入れ子にすると、正しくリターンされません。節の終わりは、その節の最後の段落の終わりと同じ場所として認識されます。
PERFORM-TYPE"OSVS" を指定すると、 OS/VS COBOL、DOS/VS COBOL、VS COBOL II、および COBOL/370 のメインフレームの動作と互換性を持たせることができます。 |
RM | 現在実行されている PERFORM 文の出口点のうち、到達された出口点が認識されます。最初に到達された出口点のリターンジャンプが実行されます。 出口点が同じ PERFORM 文を入れ子にすることはできません。入れ子にした場合は、正しくリターンされません。 節の終わりは、その節の最後の段落の終わりとは異なる場所として認識されます。 |
空の段落を参照する PERFORM 文に対して、コンパイラでコードが生成されないようにします。
>>-.---.-.----.-PERFORMOPT--------------------->< .-/-+ .-NO-+
なし
デフォルト値 | PERFORMOPT |
フェーズ | 生成 |
$SET | 最初の行 |
効率を上げるため、通常の場合は、空の段落を参照する PERFORM 文に対しては、コンパイラでコードが生成されません。たとえば、記録のためなどでコードを残す必要がある場合は、NOPERFORMOPT を指定します。
コンパイル時に作成されるリストファイルに、プロプロセッサからコンパイラに渡されるすべてのデータのみでなく、オリジナルのソースと、プリプロセッサで作成された変更済みソースも表示されるようにします。
>>-.---.-.----.--PREPLIST------------------>< .-/-+ .-NO-+
なし
デフォルト値 | NOPREPLIST |
フェーズ | 構文チェック |
$SET | 不可 |
この指令は、プリプロセッサライタのデバッグ用に用意されています。
この指令は、リストファイルが作成される場合に、その内容にのみ影響します。リストファイルの作成の有無や、リストファイルの名前を決定するものではありません。
コンパイラが、ソースファイルからではなく、プリプロセッサから原始プログラムを受け取るように指定します。
>>-.---..----.-PREPROCESS-.-"name".------..------.-.-->< .-/-+| .-P----------+ .-dirs-+.-ENDP-+ | .-NO-.-PREPROCESS-.------------------------+ .-P----------+
name |
使用するプリプロセッサを指定します。 |
dirs |
プリプロセッサに直接渡す指令を指定します。 |
デフォルト値 | NOPREPROCESS |
フェーズ | 構文チェック |
$SET | ソースの最初の行でのみ 不可 (NOPREPROCESS を指定した状態で) |
この指令は、統合されたプリプロセッサを使用することをコンパイラに伝えます。
この指令の使用方法に関する詳細は、『プログラマーズガイド − アプリケーション作成』の 『統合プリプロセッサインターフェイス』の章を参照してください。
$SET 文はコンパイラとプリプロセッサの両方で前処理されます。また、$SET 文で PREPROCESS 指令が設定されている場合、この指令は $SET 文全体が処理されてから有効になります。$SET 文に他の指令が含まれていた場合、プリプロセッサで、そのソースが 2 度解析されると、矛盾が発生する場合があります。特に、SOURCEFORMAT 指令は、プリプロセッサで自由形式と解釈されたソースを、コンパイラでは固定形式と解釈される、またはその逆の現象が発生する原因となります。そのため、PREPROCESS コンパイラ指令を $SET 文で指定する場合は、$SET 文には PREPROCESS 指令のみが含まれるようにしてください。他の指令を設定する場合は、PREPROCESS 指令を指定した $SET 文以降の行に、別の $SET 文を使って指定してください。
プリプロセッサに渡す指令は、ENDP COBOL 指令を使用して終了させてください。ENDP の後に指定された指令は、COBOL コンパイラに渡されます。ENDP 指令を指定しないと、コンパイラ指令が、COBOL コンパイラにではなく、プリプロセッサに渡され続けます。
指令を COBSQL プリプロセッサに送る場合は END-C を使用して、COBSQL に渡す指令と、プリコンパイラに渡す指令を区別します。たとえば、次のコマンド行では、END-C の前に指定した指令は COBSQL に渡され、END-C と ENDP の間に指定した指令は COBSQL 経由でプリコンパイラに渡されます。
preprocess(cobsql) csqltype=oracle end-c comp5=yes endp;
COBSQL に関する詳細は、『データベースアクセス』 マニュアルを参照してください。
ソースリストのファイルの出力先を指定します。
>>-.---.-.-------PRINT-.-"destination"-.-.-->< .-/-+ | .-()------------+ | ..----.-PRINT-------------------+ .-NO-+
destination |
ファイルの完全指定、または装置名を指定します。 |
デフォルト値 | NOPRINT |
フェーズ | 構文チェック |
$SET | 任意の行 |
PRINT は LIST と同じ意味を持ちます。LIST に適用される規則はすべて PRINT にも適用されます。
ASSIGN TO PRINTER 句に関連付けられたファイル名に、指定した拡張子を追加します。
>>-.---.--PRINT-EXT--"extension"----------->< .-/-+
extension |
追加する拡張子を指定します。 |
デフォルト値 | 拡張子は追加されません。 |
フェーズ | 構文チェック |
$SET | 任意の行 |
この指令は、ファイル名を指定しない ASSIGN-PRINTER() が指定された場合のみ有効です。
プログラムを実行する度に、詳細なパフォーマンス情報を生成するコードをプログラムにインクルードします。
>>-.---.-.----.--PROFILE------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOPROFILE |
フェーズ | 構文チェック |
$SET | 不可 |
プログラム ID 段落で、プログラム ID の後にコメントを記述できるようにします。
>>-.---.-.----.--PROGID-COMMENT------------>< .-/-+ .-NO-+
なし
デフォルト値 | NOPROGID-COMMENT |
フェーズ | 構文チェック |
$SET | 最初の行 |
この指令は、この COBOL システムの旧バージョンと互換性を持たせるために用意されています。
標準の COBOL 語を拡張し、呼び出し側プログラムと呼び出されるプログラムで、パラメータの長さが異なっていても正常に動作するようにします。
通常は、制約を無視すると予期しない結果となり、保護違反、またはメモリアクセス障害などの重大エラーになることもあります。
>>-.---.-.----.--PROTECT-LINKAGE----------->< .-/-+ .-NO-+
なし
デフォルト値 | NOPROTECT-LINKAGE |
フェーズ | 構文チェック |
$SET | 最初の行 |
ANSI COBOL 標準の規格では、CALL 文で渡されるパラメータに関する一般規則として、「呼び出されたプログラムのデータ項目の内容には、呼び出し側プログラムの対応するデータ項目の内容に記述されているのと同じ文字位置数を記述しなければならない。」としています。この COBOL システムを使用する場合も、PROTECT-LINKAGE 指令を指定しないでプログラムをコンパイルする場合には、この制約を守る必要があります。
PROTECT-LINKAGE 指令が設定されると、この制約は解除されます。呼び出されたプログラムでは、適合しないパラメータは文中の送信項目としてのみ使用され、受信項目としては使用されません。
呼び出されたプログラムと呼び出し側プログラム間で、対応がとれないパラメータ中の文字位置が一致しない文字です。この一致しない文字の内容は、呼び出されたプログラムで送信項目として使用されるパラメータに定義されません。
この指令は、ユーザアプリケーションのパフォーマンスに影響を与えます。
呼び出し側プログラム
... 03 x1 pic x. 03 x2 pic x(100). procedure division. ... call subprog using x1 ...
副プログラム
$set protect-linkage working-storage section. 01 y1 pic x(1000). linkage section. 01 z1 pic x(1000). procedure division using z1. move z1 to y1 * この操作は正しく動作して、x1 の内容が転送されます。 * この操作では、呼び出し側プログラムの x1 に続くデータも転送されます。 * データは、1000 バイトに達するか、割り当てられたメモリの * 最後に達するまで転送されます。転送されたデータが 1000 * バイトより小さい場合は、y1 の残りの部分に空白文字が入れられます。 move y1 to z1. * この操作は保護されず、失敗します。 * 呼び出し側プログラムの x1 の先のデータを破壊したり、 * 割り当てられたメモリを超えて書き込みを行おうとして、 * 保護違反となり、失敗します。
COMP、BINARY、COMP-4、COMP-5、および COMP-X データ項目の CALL プロトタイプが、CALL 文の BY VALUE 句、または RETURNING 句で使用された場合に、これらを大まかに、または厳密にチェックします。これは同時に、プロトタイプからパラメータタイプを暗黙的にコピーするかどうかを指定することにもなります。
>>----.---.-----PROTOTYPE----"level"--------------------->< .-/-+
level |
STRICT、RELAXED、または NORMAL を指定します。 |
デフォルト値 | PROTOTYPE"RELAXED" |
フェーズ | 構文チェック |
$SET | 任意の行 |
PROTOTYPE 指令を指定すると、CALL プロトタイプの呼び出し処理を制御できます。次のオプションがあります。
RELAXED | データ項目、およびパラメータの属性がプロトタイプとおおまかに照合されます。 |
NORMAL | データ項目がプロトタイプと厳密に照合され、パラメータの属性はおおまかに照合されます。 |
STRICT | データ項目、およびパラメータの属性がプロトタイプと厳密に照合されます。 |
PROTOTYPE"RELAXED" は、32 ビットシステムで記述されたプログラムのうち、64 ビットシステムで記述された CALL プロトタイプを使用するプログラムをコンパイルする場合に特に役立ちます。
デフォルトでは、BY VALUE バイナリデータ項目は、おおまかにタイプチェックされます。(つまり、PROTOTYPE"RELAXED" が設定されています)。 たとえば、CALL 文の USING リストで PIC X(2) COMP データ項目を使用できます。この項目を、CALL プロトタイプの PIC X(n) COMP データ項目と対応させることができます。n には、32 ビットシステムでは 1 から 4 までの値が入り、64 ビットシステムでは、1 から 8 までの値が指定できます。渡された値が受信データ項目に指定された値よりも大きい場合は切り捨てられます。この大まかなタイプチェックで切り捨てが実行されないようにするには、プログラムをコンパイルする際に PROTOTYPE"NORMAL"、または PROTOTYPE"STRICT" を設定します。
PROTOYPE"NORMAL"、または PROTOTYPE"RELAXED" を設定すると、呼び出し時のパラメータの属性は、プロトタイプからコピーされます。PROTOYPE"STRICT" を設定すると、このコピーは実行されません。次のプログラムを例として説明します。
program-id. prog1 is external. entry call-conv "my_api" by value x1 by reference x2 end program prog1. program-id. prog2. call "my_api" by x1 x2
PROTOYPE"NORMAL" を設定すると、my_api
の呼び出しは、コンパイラで次のように変換されます。
call call-conv "my_api" by value x1 by reference x2
PROTOTYPE"STRICT" を設定すると、my_api
の呼び出しは、通常の規則に従った場合と同様にパラメータが処理されます。そのため、この呼び出しは次のように変換されます。
call "my_api" by reference x1 by reference x2
この時、コンパイラから適切なエラーメッセージが出力されます。また、呼び出し規約がプロトタイプに指定されているものと一致しない場合や、CALL 文に規則が指定されていない場合は、同じように、エラーメッセージが出力されます。
CALL プロトタイプの概要は、『プログラマーズガイド − アプリケーション作成』マニュアルの『プログラムの呼び出し』の章で、『CALL プロトタイプ』 の項を参照してください。
CALL プロトタイプの使用例に関しては、『言語リファレンス - 追加トピック』の『Examples』の章で、『呼出しプロトタイプ』の項を参照してください。
CALL プロトタイプで使用する構文に関しては、『言語リファレンス』を参照してください。
プログラムで修飾されたデータ名および手続き名を使用できるようにします。
>>-.---.-.----.--QUAL---------------------->< .-/-+ .-NO-+
なし
デフォルト値 | QUAL |
フェーズ | 構文チェック |
$SET | 任意の行 |
作成したソースコードで、修飾されたデータ名または手続き名を使用していない場合は、NOQUAL を指定することができます。これにより、コンパイル速度が上がります。
修飾された手続き名を、プログラムで使用できるようにします。
>>-.---.-.----.--QUALPROC------------------>< .-/-+ .-NO-+
なし
デフォルト値 | QUALPROC |
フェーズ | 構文チェック |
$SET | 任意の行 |
作成したソースコードに、修飾された手続き名を使用していない場合は、NOQUALPROC を指定することができます。 これにより、コンパイル速度が上がります。 作成したソースコードで、修飾されたデータ名を使用していても、修飾された手続き名は使用していない場合は、QUAL および NOQUALPROC を指定します。
コンパイラでコピーファイルが検出されない場合に、その都度次の動作が確認されるようにします。
>>-.---.-.----.--QUERY--------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOQUERY |
フェーズ | 構文チェック |
$SET | 任意の行 |
QUERY を指定すると、コンパイラでコピーファイルが検出できない場合に、コンパイルを停止するか、再検索するか、エラーメッセージを作成して続行するか、または別のパスを指定してもう一度検索するかの確認を求められます。
NOQUERY を指定すると、コンパイラはを作成して続行します。
表意定数 QUOTE を、二重引用符 (") としてコンパイラに解釈させます。
>>-.---.--QUOTE---------------------------->< .-/-+
なし
デフォルト値 | QUOTE |
フェーズ | 構文チェック |
$SET | 任意の行 |
この指令の反対を意味を持つのは APOST 指令です。この指令を指定すると、単一引用符が使用されます。
ページヘッダー、日付、時刻、コンパイラのリリースレベルなどの可変情報を、生成されるリストファイルに含めないようにします。
>>-.---.-.----.--RAWLIST------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NORAWLIST |
フェーズ | 構文チェック |
$SET | 任意の行 |
この指令は、リストファイルの作成の有無や、リストファイルの名前には影響を与えません。
リポジトリファイルの場所を指定します。
>>-.---.--.----RDFPATH-"path"---.-------->< +-/-+ +-NO-RDFPATH----------+
path |
リポジトリファイルを格納するパス名(pathname) |
デフォルト値 | NORDFPATH |
フェーズ | 構文チェック |
$SET | 最初の行 |
リポジトリファイルは次の順で検索されます。
NORDFPATH を指定すると、リポジトリファイルはソースフォルダに格納されます。
可変長順ファイルから読みこまれたレコードの長さを検出できます。
>>-.---.-.----.--RDW----------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NORDW |
フェーズ | 構文チェック |
$SET | 任意の行 |
RDW 指令を指定すると、4 バイトのレコード長フィールドが、そのファイルのレコード領域の前にすぐに割り当てられます。READ の後、読み込まれたばかりのレコード長 (バイナリの) は、このレコード領域の先頭 2 バイトに格納されます。返される長さには、レコード長フィールドそのものも含まれるため、実際のレコード長よりも 4 バイト長くなります。
レコード領域をテーブルとして定義し、マイナスの添字、または 0 の添字を使用すると、このフィールドにアクセスできます。
RDW 指令はメインフレームと互換性を持たせるためにのみ用意されています。新しくプログラムを作成する場合は、FD 文の RECORD IS VARYING DEPENDING ON 句を使用してください。
fd file-1. 01 rec-1 pic x(100). 01 rec-2. 03 rdw-table pic x(4) occurs 25. Working-storage section. 01 rdw-area. 03 rec-length pic 9(4) comp. 03 filler pic 9(4) comp. procedure division. ... read file-1 move rdw-table (0) to rdw-area ...
FD 文
ファイルのデフォルトの形式を指定します。
>>-.---.--RECMODE--"format"---------------->< .-/-+
format |
F、V、または OSVS を指定します。 |
デフォルト値 | RECMODE"F" |
フェーズ | 構文チェック |
$SET | 最初の行 |
format には次の値を指定できます。
F | 固定長レコード形式 |
V | 可変長レコード形式 |
OSVS | ファイルのレコード定義によって、固定長、または可変長になります。ファイルのすべてのレコード定義が同じ長さで固定長の場合、そのファイルは固定長レコード形式です。それ以外の場合は可変長レコード形式です。
これを設定すると、OS/VS COBOL、および DOS/VS COBOL と互換性が持てます。CMPR2 指令を指定してコンパイルすると、VS COBOL II、および COBOL/370 の両方に RECMODE"OSVS" との互換性を持たせることができます。 |
VSC23 | ファイルのレコード定義に従って、固定長、または可変長になります。 ファイルのすべてのレコード定義が同じ長さで、固定長の場合、または FD エントリに RECORD CONTAINS x CHARACTERS 句がある場合は、そのファイルは固定長レコード形式です。それ以外の場合は可変長レコード形式です。 これを設定し、NOCMPR2 を指定してコンパイルすると、VS COBOL II、および COBOL/370 と互換性が持てます。 |
FD に RECORD IS VARYING 句 (可変形式を指定する句)、または RECORDING MODE 句が含まれている場合は、個々のファイルに対してこの指令が上書きされます。
生成されたコードの再帰チェック(checking for recursion)をオンにします。
>>-.---.-.----.--RECURSECHECK------------------>< +-/-+ +-NO-+
なし
デフォルト値 | NORECURSECHECK |
フェーズ | 生成 |
$SET | 最初の行 |
マルチスレッドプログラムの再入性を制御します。マルチスレッドアプリケーシ ョンで再入性のあるプログラムはいずれも、この指令とともにコンパイルする必要が あります。REENTRANT が指定されている場合は、多くのプログラム領域が動的に割り 当てられ、同じプログラムを複数、同時に問題なく実行することができます。
>>-.---.-.-----REENTRANT--"n"----->< .-/-+ .-NO--REENTRANT------------+
n |
1 または 2 |
デフォルト値 | NOREENTRANT |
フェーズ | 構文チェック |
$SET | 最初の行 |
n は、次のいずれかです。
1 | コンパイラにより生成される一時的な作業領域は すべて、スレッドごとに割り当てられます。環境部およびデータ部に割り当てら れるユーザデータおよび FD ファイル領域はすべて、全スレッドにより共有されま す。プログラマは、CBL_ 同期呼び出しを使用して、プログラムのデータの連続性 を保たなければなりません。 |
2 | 環境部およびデータ部に割り当てられるユーザ データおよび FD ファイル領域はすべて、スレッドごとに割り当てられます。 EXTERNAL データおよびファイルはつねに、すべてのスレッドにより共有されます。 |
再入性を持たせるプログラムにはいずれも、可能な限り、REENTRANT"1" を使用してください。REENTRANT"2" は、既存のプログラムに再入性に持たせ る最初の手順としてのみ、使用してください。
リストの下方にだけでなく、コンパイルの開始時にもコンパイラの内部参照番号が表示されるようにします。
>>-.---.-.----.--REFNO--------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOREFNO |
フェーズ | 構文チェック |
$SET | 不可 |
DIVIDE 文での剰余の計算方法を選択できます。
>>----------REMAINDER---"integer"----><
integer | 1 または 2 を指定します。 |
デフォルト値 | REMAINDER"2" |
フェーズ | 構文チェック |
$SET | 最初の行 |
integer には次の値を設定します。
1 | ANSI 85 のアルゴリズムがコンパイラで使用されます。 |
2 | 補助商を採用するアルゴリズムがコンパイラで使用されます。この補足商は符号付で、どんな値でも有効に保持できるだけの十分なサイズがあります。現在、すべての IBM メインフレームのコンパイラで、この非標準のアルゴリズムが使用されています。 |
予約語リストから語を削除し、利用者語として使用できるようにします。
+----------. v | >>-.---.--REMOVE--"rsv-word"--------------->< .-/-+
rsv-word |
予約語を指定します。 |
デフォルト値 | 予約語は削除されません。 |
フェーズ | 構文チェック |
$SET | 最初の行 |
この指令は SETTING 指令を指定して作成されたリストには表示されません。
報告書の 1 行の最大長を指定します。
>>-.---.-.-----REPORT-LINE--"integer"-.---->< .-/-+ .-NO--REPORT-LINE------------+
integer |
最大長を文字数で指定します。 |
デフォルト値 | REPORT-LINE"256" |
フェーズ | 構文チェック |
$SET | 最初の行 |
リポジトリファイルを作成、つまりコンパイルされるプログラムは、リポジトリファイルに対するチェックを行うことを要求します。
>>-.---.-------REPOSITORY--"option"------>< +-/-+
option 次のいずれかを指定します。
|
デフォルト値 | REPOSITORY "UPDATE OFF CHECKING OFF" |
フェーズ | 構文チェック |
$SET | 最初の行 |
リポジトリファイルは、RDFPATH 指令で指定されたディレクトリに作成されます。
コンパイラで行番号が表示されるようにします。
>>-.---.-.----.--RESEQ--------------------->< .-/-+ .-NO-+
なし
デフォルト値 | RESEQ |
フェーズ | 構文チェック |
$SET | 最初の行 |
XREF を指定するとすぐに RESEQ に設定されます。
SEQCHK を指定するとすぐに NORESEQ に設定されます。
SOURCEFORMAT"FREE" の最後に NORESEQ に設定されます。
これらは COBOL 行の一連番号で、1 から始まり、1 ずつ増えます。
READ 文でレコードがロックされていることが確認された場合に、対象レコードを読み取れるまで、その読み取り操作が繰り返し呼び出されるようにします。
>>-.---.-.----.--RETRYLOCK----------------->< .-/-+ .-NO-+
なし
デフォルト値 | NORETRYLOCK |
フェーズ | 構文チェック |
$SET | 任意の行 |
NORM を指定するとすぐに NORETRYLOCK に設定されます。
RM、または RM"ANSI" を指定するとすぐに RETRYLOCK に設定されます。
この指令は、ファイルに FILE STATUS 項目があり、そのファイルに対する定義が特に指定されていない場合にのみ有効です。
行順ファイルで REWRITE 文を使用できるようにします。
>>-.---.-.----.--REWRITE-LS---------------->< .-/-+ .-NO-+
なし
デフォルト値 | REWRITE-LS |
フェーズ | 構文チェック |
$SET | 不可 |
書き込むレコードと、置換するレコードは、同じサイズにしてください。
Ryan-McFarland COBOL V2.0 で予約されている語を予約語として扱い、特定の機能の動作を変更して、Ryan-McFarland COBOL V2.0 COBOL システムと互換性を持たせます。
>>-.---.-.-------RM--"ANSI"-.-------------->< .-/-+ ..----.-RM---------+ .-NO-+
ANSI |
コメントを参照してください。 |
デフォルト値 | NORM |
フェーズ | 構文チェック |
$SET | 最初の行 |
RM を指定するとすぐに SEQUENTIAL"LINE"、NOTRUNC、OLDINDEX、NOOPTIONAL-FILE、RETRYLOCK、COMP-6"1" および ALIGN"2" が設定されます。
RM"ANSI" を指定するとすぐに SEQUENTIAL"RECORD"、NOTRUNC、OLDINDEX、NOOPTIONAL-FILE、 RETRYLOCK、COMP-6"1" および ALIGN"2" が設定されます。
NORM を指定した場合はすぐに SEQUENTIAL"RECORD"、TRUNC"ANSI"、NOOLDINDEX、OPTIONAL-FILE、NORETRYLOCK、COMP-6"2" および ALIGN"8" が設定されます。
ANSI パラメータを設定した場合は、これらの機能が Ryan-McFarland COBOL V2.0 COBOL システムに ANSI スイッチを設定してプログラムをコンパイルした場合と同様に動作します。Ryan-McFarland COBOL V2.0 に関する詳細は、『言語リファレンス - 追加トピック』を参照してください。
RETURN-CODE 特殊レジスタのサイズとメモリ上の配置を指定します。
>>-.---.--RTNCODE-SIZE--"integer"---------->< .-/-+
integer |
2、4、または 8 を指定します。 |
デフォルト値 | RTNCODE-SIZE"4" |
フェーズ | 構文チェック |
$SET | 最初の行 |
XOPEN を指定するとすぐに RTNCODE-SIZE"4" に設定されます。
P64 を指定するとすぐに RTNCODE-SIZE"8" に設定されます。
integer には次の値を指定できます。
2 | PIC S9(4) COMP: サイズは 2 バイトで、2 バイト間隔に割り当てられます。 |
4 | PIC S9(9) COMP: サイズは 4 バイトで、4 バイト間隔に割り当てられます。 |
8 | PIC S9(16) COMP: サイズは 8 バイトで、8 バイト間隔に割り当てられます。 |
呼び出されるプログラムの RETURN-CODE セットが、呼び出し側プログラムの RETURN-CODE セットよりも小さい場合は、呼び出されたプログラムから戻された値が、呼び出し側プログラムの RETURN-CODE の下側のバイトに設定され、その他のバイトは定義されません。たとえば、RETURN-CODE が 4 バイトのプログラムから RETURN-CODE が 2 バイトのプログラムを呼び出した場合は、8 バイトの RETURN-CODE のうち、下側 2 バイトが設定されます。残りのバイトの内容は定義されません。
呼び出されるプログラムの RETURN-CODE セットが、呼び出し側プログラムの RETURN-CODE セットよりも大きい場合に、呼び出されたプログラムからコードが戻されると、戻された値の下側のバイトが、呼び出し側の RETURN-CODE に設定さ、上側のバイトは失われます。たとえば、4 バイトRETURN-CODEを持つプログラムから 8 バイト RETURN-CODEを持つプログラムを呼び出した場合は、8バイトの RETURN-CODE のうち、下側 4 バイトが設定されます。その他のバイトの内容は失われます。
最後の項目がページ上に印刷された後、レポートライター制御モジュールに、 通常の複数の空白行の代わりにフォームフィードを実行させます。これにより、 用紙の位置が、次のページの印刷に備えて整えられます。
>>-.---.-.----.--RWHARDPAGE---------------->< .-/-+ .-NO-+
なし。
デフォルト値 | NORWHARDPAGE |
フェーズ | 構文チェック |
$SET | 最初の行 |
この指令とともに CODE IS 句を使用すると、2 バイトコードがページの末尾 まで展開されません。
SAA (システムアプリケーションアーキテクチャ) の COBOL 定義で予約されている語を予約語として扱います。
>>-.---.-.-------SAA--"level"-.------------>< .-/-+ ..----.-SAA----------+ .-NO-+
level |
整数値を設定して、サポートする SAA のレベルを指定します。 |
デフォルト値 | NOSAA |
フェーズ | 構文チェック |
$SET | 最初の行 |
SAA を指定すると、DBSPACE および DBCS"2" がすぐに設定されます。
SAA"2" を指定すると、最後に ANS85 が設定されます。
level には次の値を指定できます。
1 | SAA レベル 1 がサポートされます。 |
2 | SAA レベル 2 がサポートされます。 |
パラメータを指定しないで SAA を指定すると、SAA"2" を指定した場合と同様の動作になります。
COBOL の区分を有効にします。
>>-.---.-.----.--SEG----------------------->< .-/-+ .-NO-+
なし
デフォルト値 | SEG |
フェーズ | 構文チェック |
$SET | 最初の行 |
NOSEG を指定すると、コード内のすべての節番号が、コンパイラで 0 として扱われます。つまり、区分はコンパイラで無視され、オーバーレイのない 1 つのプログラムが作成されます。
1 桁目から 6 桁目までの一連番号をコンパイラでチェックし、順番通りになっていないソース行を確認します。
>>-.---.-.----.--SEQCHK-------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOSEQCHK |
フェーズ | 構文チェック |
$SET | 任意の行 |
SEQCHK を指定するとすぐに NORESEQ が設定されます。
SOURCEFORMAT"FREE" の最後に NOSEQCHK に設定されます。
ORGANIZATION SEQUENTIAL として (暗黙的、または明示的に) 定義されるファイルのデフォルトのファイルタイプを指定します。
>>-.---.--SEQUENTIAL--"type"--------------->< .-/-+
type |
ADVANCING、ANSI、LINE、または RECORD を指定します。 |
デフォルト値 | SEQUENTIAL"RECORD" |
フェーズ | 構文チェック |
$SET | 最初の行 |
NORM または RM"ANSI" を指定するとすぐに SEQUENTIAL"RECORD" に設定されます。
RM を指定するとすぐに SEQUENTIAL"LINE" に設定されます。
type には次の値を指定できます。
ADVANCING | LINE ADVANCING のレコード順 |
ANSI | ANSI 準拠のレコード順 |
LINE | 行順 |
RECORD | レコード順 (標準の順ファイル) |
プログラムがマルチスレッド環境で実行されることを指定します。
>>---.----.----SERIAL--------->< .-NO-+
なし
デフォルト値 | NOSERIAL |
フェーズ | 生成 |
$SET | 最初の行 |
この指令を指定すると、スレッドをチェックするコードが作成されます。これにより、ランタイムシステムはプログラムのエントリを検知することができます。2 つ目以降の COBOL プログラムがアクティブになった場合は、ランタイムシステムが、前のプログラムが終了するまで、プログラムのエントリを拒否します。これにより、マルチスレッド環境で COBOL プログラムを安全に終了することができます。 この指令は、指定したスレッド上で最初に実行する COBOL プログラムに使用する必要があります。
スレッドチェックのコードは実行時間が長いことと、プログラムがエントリされるたびに呼び出されることに注意してください。マルチスレッド環境で実行する予定のプログラムは、この指令を設定してコンパイルする必要があります。
設定されている指令が、コンパイラからソースリストに一覧表示されるようにします。
>>-.---.-.-------.-SETTING--.-.----------.-.->< .-/-+ | .-SETTINGS-+ .-"format"-+ | ..----.-.-SETTING--.--------------+ .-NO-+ .-SETTINGS-+
format |
リストのレイアウトを指定します。構文チェックフェーズで生成されるリストにのみ有効です。 |
デフォルト値 | NOSETTING |
フェーズ | 構文チェック |
$SET | 任意の行 |
NOLIST の最後に NOSETTING に設定されます。
チェックフェーズで使用する場合は、format には次のいずれかの値を指定できます。
LINE | 1 行に複数の指令が表示され、各指令は空白文字で区切られます。 |
COL | 1 行につき 1 つの指令が表示されます。 |
COL3 | 1 行につき 3 つの指令が表示されます。 |
format を指定しないと、LINE が指定されたものとして動作します。
他の COBOL システムと互換性を持たせるためにのみ用意されている指令 (たとえば、COMMIT など) は表示されません。また、コードの生成を制御する指令、予約語リストに特定の変更を加える指令、または他の指令と同じ意味を持つ指令も表示されません。
この指令を $SET 文以外で指定すると、指令のリストはプログラムのソースがプリプロセッサで処理される前に生成されます。$SET 文でこの指令を指定すると、その文のすべての指令が処理された後にリストが作成されます。どちらの場合も、リストにはリストが作成された時点での各指令の状態が表示されます。
指令ファイルの内容が、コンパイラからソースリストに表示されるようにします。
>>-.---.-.----.--SHOW-DIR------------------>< .-/-+ .-NO-+
なし
デフォルト値 | NOSHOW-DIR |
フェーズ | 構文チェック |
$SET | 任意の行 |
指令ファイルとは、 cobol.dir ファイル、または DIRECTIVES 指令や USE 指令で指定されるファイルです。 cobol.dir はどの指令よりも先に処理されるため、このファイルの内容をソースリストに表示する場合は、cobol.dir の先頭に SHOW-DIR を指定する必要があります。
SHOW-DIR および NOSHOW-DIR を部分的に使用すると、指令ファイルの一部のみをリストに表示することができます。
符号付きの数字の DISPLAY 項目の符号を、ASCII または EBCDIC のどちらの表記規則に従って解釈するかを指定します。
>>-.---.--SIGN--"convention"--------------->< .-/-+
convention |
ASCII または EBCDIC を指定します。 |
デフォルト値 | SIGN"ASCII" |
フェーズ | 構文チェック |
$SET | 最初の行 |
CHARSET"ASCII" を指定するとすぐに SIGN"ASCII" に設定されます。
CHARSET"EBCDIC" を指定すると、最後に SIGN"EBCDIC" に設定されます。
MOVE と COMPARE 文で、メインフレームのコンパイラオプション NUMPROC(NOPFD) および NUMPROC(PFD) のエミュレーションが制限されます。
>>---+-------+-+--------+--- SIGN-FIXUP --------->< +-- / --+ +-- NO --+
なし
デフォルト値 | NOSIGN-FIXUP |
フェーズ | 構文チェック |
$SET | 最初の行 |
この指令を指定すると、次のような影響があります。
COBOL ソースの形式を選択します。自由形式または固定形式を指定します。
>>-.---.--SOURCEFORMAT--"format-type"------>< .-/-+
format-type |
FIXED または FREE を設定し、COBOL ソースの形式を指定します。 |
デフォルト値 | SOURCEFORMAT"FIXED" |
フェーズ | 構文チェック |
$SET | 任意の行 |
SOURCEFORMAT"FREE" を指定すると、最後に NOMFCOMMENT、NORESEQ、および NOSEQCHK が設定されます。
自由形式および固定形式のコードに関する詳細は、『言語リファレンス』 を参照してください。
USAGE DISPLAY の数字データ項目がすべて空白文字である場合に、その空白文字が 0 として扱われるようにします。
>>-.---.-.----.--SPZERO-------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOSPZERO |
フェーズ | 両方 |
$SET | 任意の行 |
NOSPZERO を指定した場合に数字のデータ項目内に空白文字があると、予期しない結果となります。
指定したオプションに応じて、プログラム中の EXEC SQL 文が、ODBC または OCI ランタイム呼び出しで置換されるようにします。
>>-.---.-.----SQL-.----------------------.-.-->< .-/-+ | | +-----.---.-----. | | | | | .-,-+ | | | | | v | | | | .-(.-option=setting-.)-+ | | | | | | .-NO-option------+ | .-NO-SQL--------------------------+
option |
SQL オプションの 1 つを指定します (次を参照)。 |
setting |
オプションの設定を指定します。 |
デフォルト値 | NOSQL |
フェーズ | 構文チェック |
$SET | 最初の行 |
オプションとその設定など、SQL 指令の使用について詳しくは、『データベースアクセス』マニュアルの 『Open ESQL』 の章を参照してください。
EXEC SQL 文が 標準の EXEC syntax 構文として処理される(詳しくは 『言語リファレンス』 を参照)ようにするには、 指令、NOSQL を明示的に指定する必要があります。
実行時に次のことを指定します。
>>-.---.-.-SSRANGE-----"integer"--.--><
.-/-+ .-NOSSRANGE--------------+
integer | 必要な SSRANGE のサポートレベルを指定します。 |
デフォルト値 | NOSSRANGE |
フェーズ | 構文チェック |
$SET | 最初の行 |
すぐに BOUND が設定されます。
integer には次の値を指定できます。
1 | 長さが負の数、または 0 の部分参照式を使用しようとすると、実行時エラー 153 が発生します。 |
エラーメッセージをコンソール (STDOUT) にではなく、STDERR にエコーします。
>>-.---.-.----.--STDERR-------------------->< .-/-+ .-NO-+
なし
デフォルト値 | STDERR |
フェーズ | 構文チェック |
$SET | 任意の行 |
プログラムが次に呼び出されるまで、そのプログラムへのパラメータのリンクが解除されないようにします。
>>-.---.-.------STICKY-LINKAGE--"integer"-.->< .-/-+ .-NO---STICKY-LINKAGE------------+
integer |
1 または 2 のいずれかを指定します。 |
デフォルト値 | NOSTICKY-LINKAGE |
フェーズ | 構文チェック |
$SET | 最初の行 |
COBOL の連絡節の目的は、連絡節 (リンク項目) で宣言されたレベル 01 またはレベル 77 のデータ項目 1 つと、動的に指定された複数のデータ項目をリンクし、これらが同じ記憶領域を共有しているように見せることです。 リンクは次の 3 つのいずれかの方法で確立されます。プログラム名を参照する CALL 文、 エントリ名を参照する CALL 文、または SET 文のいずれかです。最初の機構 (プログラム名を参照する CALL 文) は ANSI で指定された標準の機能です。他の 2 つは、この COBOL システムでサポートされている COBOL 言語の拡張機能です。
ANSI COBOL では、呼び出されたプログラムは、CALL 文で渡されたパラメータに、連絡節でアクセスできます。CALL 文の USING 句のパラメータ数は、手続き部の見出しの USING 句にあるパラメータの数と同じでなければなりません。連絡節のレベル 01 または レベル 77 のデータ項目のうち、手続き部の見出しの USING 句に存在しない項目は参照できません。
ENTRY 文は COBOL 言語の拡張機能で、プログラムに代替入口点を設定します。 ENTRY 文では、手続き部の見出しと同じように USING 句を使用します。また、リンク項目に関しても同様で、リンク項目のうち、プログラムを呼び出したエントリ名に関連する USING 句に存在しない項目は参照できません。
SET 文を使用すると、POINTER 値を使用して、リンク項目をリンクすることができます。POINTER の値は、記憶域の場所を識別する値です。このようなリンク項目は、記憶域の決まった場所に格納されているデータを参照する場合に使用できます。
リンク項目がリンクされる場合、およびリンクが解除される場合の詳細を、概念的な言葉を使って次で説明します。
この COBOL システムでは、実行時にリンク項目が参照されると、その項目がデータ項目にリンクされていることが確認されます。リンク項目がリンクされている記憶領域がない場合は、実行時エラーが発生します。容易に確認できるようにするために、プログラムの最初の文が実行される直前の呼び出しで、すべてのリンク項目のリンクが一旦解除され、その後、呼び出し側プログラムから渡されるパラメータを持つリンク項目が再度リンクされます。つまり、呼び出されたプログラムのリンク項目のうち、SET 文を使ってデータ項目にリンクされるものは、そのプログラムが次に呼び出されたときにはリンクが解除されています。このため、プログラムが呼び出されるたびに SET 文を実行する必要があります。
他の多くの COBOL の動作は、ANSI 規則にそれほど厳密に従っていません。STICKY-LINKAGE 指令でも、パラメータで 2 つの異なる方式を指定しますが、これらもこの規則に厳密に従った方式ではありません。
STICKY-LINKAGE"1" を指定すると、呼び出されたプログラムの USING 句にあるリンク項目のみ、リンクが解除されます。他のリンク項目については前のリンクが維持されます。プログラム名を使ってプログラムが呼び出された場合にリンクが解除されるのは、手続き部の見出しの USING 句の項目です。それ以外の場合は、プログラムが呼び出された入口点に関連する USING 句の項目のリンクが解除されます。
この方式では、USING 句のリンク項目が参照される際に、呼び出し側プログラムから渡されるパラメータが不充分で、CALL 文の USING 句に対応するパラメータが存在しない場合は実行時エラーになります。
STICKY-LINKAGE"2" を指定すると、プログラムが呼び出された時、すべてのリンク項目のリンク状態は維持されます。ただし、起動時、または CANCEL 文で参照された後のように、プログラムが初期状態にある場合は除きます。 呼び出し側プログラムからパラメータが渡された場合や、SET 文を使用してリンクが変更された場合を除き、すべてのリンク項目は、前の呼び出し時に確立されたリンクが維持されます。
STICKY-LINKAGE"2" を呼び出されるプログラムに使用すると、このプログラムは COBOL プログラムからのみ呼び出せます。
注 : 上記の段落では、特定の実行方法を明示していません。この指令をこの COBOL システムで実際に使用し、ANSI 規則に反した動作をエミュレートした場合、プログラムのサイズや実行速度に悪い影響を与えることがあります。
次のプログラムを STICKY-LINKAGE 指令を指定しないでコンパイルして実行すると、2 番目の CALL 文で、"ent" に制御が渡り、DISPLAY 文まで進みますが、ここで 2 つのリンク項目が参照されると、これらは ENTRY "ent" の USING 句にないため、実行時エラー 203 (CALL パラメータが連絡節に定義されていない) が発生します。
このプログラムを STICKY-LINKAGE"1" を指定してコンパイルして実行すると、3 番目の CALL 文で "sub" に制御が渡り、DISPLAY 文で、手続き部の見出しの USING 句にあるリンク項目が参照されるところまで進みますが、CALL 文で対応するパラメータが渡されていないため、ここで失敗します。
このプログラムを STICKY-LINKAGE"2" を指定してコンパイルして実行すると、プログラムの終わりまで正常に実行されます。
program-id. main. working-storage section. 01 param pic x value "a". procedure division. call "sub" using param call "ent" call "sub" stop run. end program main. program-id. sub. linkage section. 01 link-1 pic x. 01 link-2 pic x. procedure division using link-1. set address of link-2 to address of link-1 display link-1 link-2 exit program. entry "ent" display link-1 link-2 exit program.
プログラムが再入された場合の PERFORM 文の動作を指定します。
>>-.---.-.----.--STICKY-PERFORM------------>< .-/-+ .-NO-+
なし
デフォルト値 | NOSTICKY-PERFORM |
フェーズ | 構文チェック |
$SET | 最初の行 |
この指令は、PERFORM-TYPE"OSVS" または PERFORM-TYPE"RM" を指定してプログラムをコンパイルした場合にのみ有効です。
コンパイル時に PERFORM-TYPE"OSVS" または PERFORM-TYPE"RM" を指定すると、PERFORM 文は、記憶領域、またはバケットを持つように実装されます。これらの記憶域、またはバケットは、プログラム中の PERFORM 文の範囲の終わりとなる場所すべてに関連付けられます。PERFORM 文が実行されると、返りアドレスがバケットに格納され、PERFORM 文の範囲の終わりでそのバケットが読み取られます。バケットは、制御を戻す先を決定するために使用され、使用後にクリアされます。
デフォルトでは、EXIT PROGRAM 文でこれらのバケットがクリアされます。これにより、プログラムが再入された場合に、前に実行された PERFORM 文の戻りアドレスが残りません。STICKY-PERFORM を指定した場合は、EXIT PROGRAM 文でバケットがクリアされません。つまり、再入時には、前に実行されたすべての PERFORM 文の返りアドレスが残っていることになります。
STOP RUN 文または CANCEL 文では、この指令の設定に関係なく、バケットがクリアされます。
コンパイルリストが画面に送られた場合に、用紙送り文字を削除します。
>>-.---.-.----.--SUPFF--------------------->< .-/-+ .-NO-+
なし
デフォルト値 | SUPFF |
フェーズ | 構文チェック |
$set | 任意の行 |
プログラム可能なスイッチの動作を、審議中の ISO2000 標準規格に合わせます。
>>-.---.--SWITCH-TYPE--"integer"------------->< .-/-+
integer |
1、2、または 3 のいずれかを指定します。 |
デフォルト値 | SWITCH-TYPE"1" |
フェーズ | 構文チェック |
$SET | 任意の行 |
integer には次の値を設定します。
1 | Server Express の動作 |
2 | ISO2000 の動作 |
3 | Siemens BS2000 COBOL の動作 |
審議中の ISO2000 標準規格および Siemens BS2000 COBOL 方言では、スイッチは実行単位内で有効で、認識されます。 たとえば、プログラム A でプログラム B を呼び出した場合に、A でのスイッチの変更は、B が呼び出された際に認識されます。また、B で変更された内容は、制御が A に戻った時点で、A に認識されます。しかし、A が終了してから B が呼び出されると、A で変更された内容は失われます。スイッチが格納されている空間は、1 つの実行単位内のプログラムすべてで共有されます。そのため、スイッチへの変更はすべてのプログラムで認識されます。
Server Express および以前のバージョンの Micro Focus COBOL では、呼び出された副プログラム (この例ではプログラム B) には、他のプログラムから独立した独自のスイッチセットがあります。プログラム A でプログラム B を呼び出した場合は、プログラム B のスイッチが、プログラムの開始時に、プログラム A のスイッチの初期値と同じ値に設定されます。つまり、A がスイッチに加えた変更はすべて無視されます。制御がプログラム A に戻った時点での A のスイッチは、プログラムの制御が B に移動する前とまったく同じ状態で、B でスイッチに加えられた変更はすべて無視されます。B のスイッチは保存される(B がキャンセルされないかぎり)ため、再度呼び出された場合は、B の独自のスイッチが、A を呼び出した時点の設定値が残っています。この場合、スイッチが格納される空間は、プログラム毎に一意となります。
SWITCH-TYPE"3" は、Siemens BS2000 COBOL TSW-n および USW-n スイッチをサポートします。
必要な実行時サポートを提供する BS2000 アドオンがある場合は、SWITCH-TYPE"3" を使用します。
BS2000 コンパイラ指令
DIALECT コンパイラ指令
ISO2000 コンパイラ指令
SYMBOLIC CHARACTERS 句をコンパイルする際に、コンパイラで、文字の照合順序内の何番目からカウントされるようにするかを設定します。
>>-.---.--SYMBSTART--"integer"------------->< .-/-+
integer |
何番目からカウントするかを指定します。 |
デフォルト値 | SYMBSTART"1" |
フェーズ | 構文チェック |
$SET | 最初の行 |
ANSI に準拠させる場合は、SYMBSTART"1" を使用します。旧製品と互換性を持たせる場合は、SYMBSTART"0" を使用します。
SYMBSTART"1" を指定した場合の次の COBOL 文を例として説明します。
symbolic characters bee is 67
この COBOL 文では、B を表す記号文字、bee が宣言されます。これは、ASCII の文字の照合順序を 1 から数えた場合に、67 番目の文字が B になるためです。SYMBSTART"0" を指定した場合は、bee が C を表します。
使用する SYSPUNCH のレコード長を指定します。
>>-.---.--SYSPUNCH--"integer"------------->< +-/-+
integer |
使用するレコード長を指定します。 |
デフォルト値 | SYSPUNCH"132" |
フェーズ | 構文チェック |
$SET | 任意の行 |
特定のマイクロプロセッサでのみ有効な指示をコンパイラ生成できるようにします。これらの指示を使用すると、速度が上がり、コードのサイズが少し小さくなります。
>>-.---.--TARGET--"processor-id"----------->< .-/-+
processor-id |
プロセッサのタイプを識別します。 |
デフォルト値 | TARGET"386" |
フェーズ | 生成 |
$SET | 最初の行 |
この指令は SCO UNIX で Server Express を使用する場合のみ有効です。
processor-id には次の値を指定できます。
386 | コードを 80386、80486、および Pentium プロセッサで実行する |
486 | 80486 および Pentium プロセッサでのみ有効な指示を含める |
PENTIUM | 486 を指定した場合と同様ですが、この設定にすると、Pentium プロセッサで実行した場合に、コードが処理速度が改善されるよう最適化されます。ただし、この場合、コードのサイズが大きくなってしまいます。このような最適化が行われても、コードは 486 上で実行できます。 |
レポートファイルの最後のページの残り部分を、1 ページの最大行数に達するまで空白行で埋めます。
>>-.---.-.----.--TERMPAGE------------------>< .-/-+ .-NO-+
なし
デフォルト値 | TERMPAGE |
フェーズ | 構文チェック |
$SET | 最初の行 |
TERMPAGE を指定すると、レポートの最後のページが 1 ページの最大行数に達するまで、空白行で埋められます。
この指令は、レポート説明 (RD) エントリに PAGE 句が指定されているすべてのレポートファイルに対して有効です。
リストの各ページの先頭に時刻を表示します。
>>-.---.-.----.--TIME---------------------->< .-/-+ .-NO-+
なし
デフォルト値 | TIME |
フェーズ | 構文チェック |
$SET | 不可 |
この指令は NODATE が指定されている場合は無効になります。
READY TRACE および RESET TRACE 文を有効にします。
>>-.---.-.----.--TRACE--------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOTRACE |
フェーズ | 構文チェック |
$SET | 最初の行 |
TRACE が設定されている場合は、READY TRACE 文により実行時にトレース機能が 有効になります。この場合は、各段落または節見出しの名前が、実行と同時に表示さ れます。RESET TRACE は、この機能を無効にします。NOTRACE が設定されている場合 は、READY TRACE および RESET TRACE 文は効果を失います。
不正ではないが、構造化されていない実行範囲がプログラムに含まれており、そのために、特定の最適化が不可能であることをコンパイラに伝えます。
>>-.---.-.----.--TRICKLE------------------->< .-/-+ .-NO-+
なし
デフォルト値 | TRICKLE |
フェーズ | 生成 |
$SET | 最初の行 |
NOTRICKLE 指令は使用しないことをお奨めします。この指令を指定すると、ユーザプログラムの動作が変更されることがあります。NOTRICKLE は、ある実行範囲から別の実行範囲への「流れ」をプログラム内のどこからも制御できないことを伝えます。このようなプログラムには、構造化された制御フローがあります。つまり、このようなプログラムには、実行されたり、制御が前のコードから降りて来るなどで入力される段落や節がありません。また、PERFORM の範囲の終わりや、PERFORM の範囲の途中にある段落や節もありません。
NOTRICKLE を指定すると、PERFORM 文に対して有効なコードをコンパイラで生成することができます。
USAGE COMP、USAGE BINARY、または USAGE COMP-4 項目に格納されているデータを、その項目の PICTURE 句で指定されたサイズ、またはその項目が保持できる最大サイズに合わせて切り捨てられるようにします。
>>-.---.-.-------TRUNC--"method"-.--------->< .-/-+ ..----.-TRUNC-----------+ .-NO-+
method |
コメントを参照してください。 |
デフォルト値 | TRUNC"ANSI" |
フェーズ | 構文チェック |
$SET | 最初の行 |
NORM を指定するとすぐに TRUNC"ANSI" に設定されます。
RM または RM"ANSI" を指定するとすぐに NOTRUNC に設定されます。
この指令には、次の値を指定できます。
TRUNC | COMP、BINARY、および COMP-4 項目に格納されているすべてのデータを、PICTURE 句に指定された桁数まで 10 進単位で切り捨てます。 |
NOTRUNC | COMP、BINARY、および COMP-4 項目に格納されているすべてのデータを、割り当てられた領域の容量まで 2 進単位で切り捨てます。 |
TRUNC"ANSI" | COMP、BINARY、および COMP-4 項目に格納されている非算術データを、PICTURE 句に指定された桁数まで 10 進単位で切り捨てます。サイズエラーの原因となる算術文、および ON SIZE ERROR 句がない算術文の場合は、結果は予測できません。 |
サブプログラムの名前を指定の長さまで切り捨てます。
>>-.---.-.------TRUNCALLNAME--"integer"--.------->< +-/-+ +-NO---TRUNCALLNAME----------------+
integer |
この長さまで名前を切り捨てます。 |
デフォルト値 | NOTRUNCALLNAME |
フェーズ | 構文チェック |
$SET | 最初の行 |
この指令は、呼び出されたサブプログラムの名前を指定の長さまで切り捨てます。切り捨てられるのはリテラルとデータ名だけです。
コピーファイルおよび、++INCLUDE ファイルの名前を切り捨てます。
>>-.---.-.----TRUNCCOPY--"integer"-.------->< .-/-+ .-NO-TRUNCCOPY------------+
integer |
コピーファイル名の文字数を指定します。ファイル名はこの値まで切り捨てられます。8 から 255 までの値を設定します。 |
デフォルト値 | NOTRUNCCOPY |
フェーズ | 構文チェック |
$SET | 最初の行 |
ユニコード文字に対して使用するエンコードの方法を指定します。
>>-.---.--UNICODE--"unicode-type"--------->< +-/-+
unicode-type | ユニコード文字のエンコードの方法。次の値が指定できます。 | |
NATIVE | ユニコード文字は、プログラムが実行されるプラットフォームのネイティブUTF-16 エンコーディング(native UTF-16 encoding)として表示されます。 | |
PORTABLE | ユニコード文字は、プログラムが実行されるプラットフォームに関わりなく、ビッグエンディアン UTF-16 エンコーディング(big-endian UTF-16 encoding) として表示されます。 |
デフォルト値 | UNICODE"NATIVE" |
フェーズ | 構文チェック |
$SET | 可 |
コンパイラがファイルから指令を読み取るようにします。
>>-.---.--USE--"filename"------------------>< .-/-+
filename |
完全な形式でファイルを指定します。 |
デフォルト値 | 設定されません。 |
フェーズ | 構文チェック |
$SET | 任意の行 |
USE は DIRECTIVES と同じ意味を持ちます。DIRECTIVES に適応されるすべての規則は、USE にも適用します。
コンパイラからのメッセージを画面に送ります。
>>-.---.-.----.--VERBOSE------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOVERBOSE |
フェーズ | 構文チェック |
$SET | 不可 |
VERBOSE を指定するとすぐに CONFIRM が設定されます。
VERBOSE を指定すると、受け取った指令に関連するメッセージ、コード、およびデータ領域のサイズが画面に表示されます。
IBM VS COBOL II で予約されている語を予約語として扱い、部分的な機能に、指定したレベルの IBM VS COBOL II COBOL システムと互換性を持たせます。
>>-.---.-.-------VSC2--"integer"-.--------->< .-/-+ ..----.-VSC2------------+ .-NO-+
integer |
互換性を持たせる IBM VS COBOL II のレベルを指定します。 |
デフォルト値 | NOVSC2 |
フェーズ | 構文チェック |
$SET | 最初の行 |
integer > 1 の場合に、VSC2"integer" を指定すると、すぐに DBSPACE、および DBCS"2" が設定されます。
integer > 2 の場合に、VSC2"integer" を指定すると、最後に ANS85 が設定されます。
次の表で、integer に指定した値別の互換性の内容を示します。
integer | 互換性 |
---|---|
1 | VS COBOL II release 1.0
次のことに注意してください。
|
2 | VS COBOL II リリース 2.0 VS COBOL II リリース 3.x (CMPR2 指令を指定してコンパイルした場合) VS COBOL II リリース 4.x (CMPR2 指令を指定してコンパイルした場合) COBOL/370 V1R1 (CMPR2 指令を指定してコンパイルした場合) 次のことに注意してください。
|
3 | VS COBOL II リリース 3.x (NOCMPR2 指令を指定してコンパイルした場合)
次のことに注意してください。
|
4 | VSC2"3" を指定した場合と同じです。 |
VSC2 を、integerを指定しないで使用すると、VSC2"4" を指定した場合と同じ動作になります。
VSC2"3" を選択すると、ANSI'85 の状態コードが使用されます。
VSC2"3" の後に NOANS85 指令を使用しないでください。使用すると、VSC2"3" によって有効になった ANSI'85 の動作の一部が無効になります。
報告するエラーの重要度の最低レベルを指定します。
>>-.---.-.----.-WARNING--.-"integer"-.----->< .-/-+ | .-WARNINGS-+ | .-NO-.-WARNING--.-----------+ .-WARNINGS-+
integer |
1、2、または 3 のいずれかを指定します。 |
デフォルト値 | WARNING"1" |
フェーズ | 構文チェック |
$SET | 任意の行 |
integer には次の値を指定できます。
1 | U、S または E レベルのエラーのみ |
2 | U、S、E、または W レベルのエラーのみ |
3 | 全レベル。U、S、E、W および I のエラー |
NOWARNING を指定すると、レベル U または S のエラーのみが報告されます。
この指令は、この COBOL システムの内部で使用するために予約されています。 設定のリストに表示される可能性があるため、ここで説明しています。 ユーザが使用する指令ではないため、この設定を変更しないでください。
>>-.---.-.----.--WB------------------------>< .-/-+ .-NO-+
なし
デフォルト値 | NOWB |
フェーズ | 構文チェック |
$SET | 不可 |
WB を指定するとすぐに ANIM が設定されます。
この指令は、この COBOL システムの内部で使用するために予約されています。 設定のリストに表示される可能性があるため、ここで説明しています。 ユーザが使用する指令ではないため、この設定を変更しないでください。
>>-.---.-.----.--WB2----------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOWB2 |
フェーズ | 構文チェック |
$SET | 不可 |
この指令は、この COBOL システムの内部で使用するために予約されています。 設定のリストに表示される可能性があるため、ここで説明しています。 ユーザが使用する指令ではないため、この設定を変更しないでください。
>>-.---.-.----.--WB3----------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOWB3 |
フェーズ | 構文チェック |
$SET | 不可 |
マルチユーザ環境でプログラムが共有データファイルの複数のレコードをロックしている場合に、WRITE 文および REWRITE 文でレコードロックが要求されるようにします。
>>-.---.-.----.-.-WRITELOCK--.------------->< .-/-+ .-NO-+ .-WRITE-LOCK-+
なし
デフォルト値 | NOWRITELOCK |
フェーズ | 構文チェック |
$SET | 最初の行 |
この指令は、古いファイル共有製品と互換性を持たせるために提供されています。 新しいプログラムを記述する際には、この指令ではなく、適切なロック構文を使用してください。
ディスクへの書き込みをバッファに書き出さないようにします。
>>-.---.-.----.-.-WRITETHROUGH-.----------->< .-/-+ .-NO-+ .-WRITETHRU----+
なし
デフォルト値 | NOWRITETHROUGH |
フェーズ | 構文チェック |
$SET | All |
CALLFH を設定する必要があります。
この指令をこのシステムで使用するには、当社が提供する適切なアドオン製品が必要です。当社の適切な COBOL システム製品を用意していない場合は、この設定を変更しないでください。
この指令を個々のファイルに指定するには、ユーザの原始プログラムで $SET 文を使用し、ソース内の指定したファイルの SELECT 文が含まれる部分にのみ、指令が有効になるようにします。
WRITETHROUGH を指定した場合は、システムがディスクへの書き込みをバッファに書き出しません。
WRITETHROUGH を使用すると、すべての書き込み操作がディスクファイルに直接実行されるため、コンピュータがクラッシュした場合もデータが破損する危険性が低くなります。そのため、データファイルの安全性を高めることができますが、これは同時に、すべてのキャッシュやブロックの方法をバイパスすることにもなるため、性能は低下します。
X/Open の COBOL 定義で予約されている語を予約語として扱います。
>>-.---.-.-------XOPEN--"level"-.---------->< .-/-+ ..----.-XOPEN----------+ .-NO-+
level |
3、または 4 を指定し、互換性を持たせる X/Open 定義 COBOL のレベルを指定します。 |
デフォルト値 | NOXOPEN |
フェーズ | 構文チェック |
$SET | 最初の行 |
XOPEN を指定するとすぐに RTNCODE-SIZE"4" が設定されます。
level には次の値を指定できます。
3 | X/Open Portability Guide 1988 (XPG-3) と互換性を持たせます。 |
4 | X/Open CAE 仕様 (XPG-4) と互換性を持たせます。 |
パラメータを指定せずに XOPEN を使用すると、XOPEN"4" を指定した場合と同じ動作になります。
XPG-4 は、複数の環境用のオプションを指定します。使用可能な場合は、次のオプションがあります。
DBCS コンパイラ指令
NLS コンパイラ指令
RTNCODE-SIZE コンパイラ指令
コンパイラで相互参照リストが生成されるようにします。
>>-.---.-.----.--XREF---------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOXREF |
フェーズ | 構文チェック |
$SET | 最初の行 |
XREF を指定すると、RESEQ がすぐに設定されます。
NOLIST および RNIM で、最後に NOXREF に設定されます。
UNIX の場合に、相互参照リストにメッセージ、「* 相互参照リストの終わり」を表示するには、詳細モードを指定するコンパイラオプション、-v も指定する必要があります。
この指令は、LIST 指令が指定されていない場合は無効となります。
相互参照リストを生成するには、ディスク上にコンパイラのワークスペースが余分に必要です。 必要なスペースは、データ項目と手続き名の数、およびこれらが参照される回数によって異なります。
XREF 指令が指定されると、生成された .lst ファイルの最後に次の情報が追加されます。
簡単なプログラムの .lst ファイルを引用したものを次に示します。
1 working-storage section. 2 01 a pic 9(2). 3 4 procedure division. 5 main section. 6 move 1 to a 7 if a = 1 display "HELLO" end-if 8 stop run. ... * A Numeric DISPLAY * 2# 6* 7? (X 3) * * 1 data-names * * MAIN Section * 5# (X 1) * * * 1 procedure-names * End of cross reference listing
相互参照の情報で、次のことが確認できます。numeric display タイプのデータ項目 a が 1 つあります。このデータが行番号 2 で定義され、行番号 6 で更新され、行番号 7 でテストされています。行の最後の (X 3) は、このデータ項目が相互参照リストに表示された回数を示しています。手続き名 main も 1 回だけ参照された節としてリストに表示されています。
RESEQ コンパイラ指令
長さ 0 の項目を含むクラスのテストの実行方法を変更します。
>>-.---.-.----.--ZEROLENGTHFALSE----------->< .-/-+ .-NO-+
なし
デフォルト値 | NOZEROLENGTHFALSE |
フェーズ | 構文チェック |
$SET | 任意の行 |
ZEROLENGTHFALSE が設定されると、長さが 0 の集団項目間、および長さが 0 の項目と表意定数のすべての比較で偽が返されます。設定されていない場合は、これらすべてで真が返されます。
ANSI、および SAA に準拠する場合は、ZEROLENGTHFALSE を設定する必要があります。
1 桁目から 6 桁目までの一連番号の先頭に 0 を付加します。
>>-.---.-.----.--ZEROSEQ------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOZEROSEQ |
フェーズ | 構文チェック |
$SET | 任意の行 |
NOZEROSEQ の場合は、先頭にこのような 0 が付加されません。
USAGE DISPLAY の整数型数字データ項目と英数字のリテラル定数、または表意定数を比較する操作に作用します。
>>-.---.-.----.--ZWB----------------------->< .-/-+ .-NO-+
なし
デフォルト値 | NOZWB |
フェーズ | 構文チェック |
$SET | 任意の行 |
ZWB 指令は HOST-NUMCOMPARE が適応される比較の範囲に影響を与えます。ZWB を有効にすると、符号なしの比較のみに適応されます。それ以外の場合はすべての比較に適応されます。
HOST-NUMCOMPARE コンパイラ指令
Copyright © 2002 Micro Focus International Limited. All rights reserved.
本書ならびに、使用されている固有の商標と商品名
は国際法で保護されています。
![]() | コンパイラの使用 | 呼び出し可能な共有オブジェクト | ![]() |