注:コマンド ラインからコンパイルする場合、特殊文字 (空白文字など) を含むコンパイラ オプションの値を二重引用符 (" ") で囲みます。例えば、次のように入力します。
-optexec vtrace,plitest(b 10)
および
-optexec plitest(b 10)
次のように入力します。
-optexec "vtrace,plitest(b 10)"
および
-optexec "plitest(b 10)"
コンパイラ オプションの値は、特殊文字を含まない場合も二重引用符で囲むことができます。ただし、コンパイラ オプションの値を一重引用符で囲まないでください。
- -#
- コンパイラおよびリンカーの呼び出し方法に関する情報を示します。実際にコンパイラやリンカーを呼び出すことはありません。また、このオプションは UNIX オプションがどの Micro Focus オプションに変換されるかも示します。例えば、ドライバー コマンド ラインで UNIX の標準 -O オプションが指定されている場合、コンパイラの呼び出しラインでは -opt に変換されます。
- -adt
-
-adt [adt-filename]
PL/I コンパイラによって処理されるデータ構造体を含むファイルを生成します。adt-filename が指定されないと、program-name.adt という名前のファイルが生成されます。このファイルは、これらの PL/I 構造体の記述を使用してセグメント レイアウト ファイル (SLF) とレコード レイアウト ファイル (STR) を作成する Record Layout Editor または Segment Layout Editor によって使用されます。その後、データファイル ツールはこれらのレイアウト ファイルを使用してセグメントまたはレコードの編集/処理を支援します (データ ファイル変換、Data File Editor、IMS Database Editor、IMS Database ローダー)。
レイアウト エディターで ADT ファイルを使用して SLF および STR ファイルを作成します。
- -agginit
- Open PL/I (スカラー配列のみ) の 7.x バージョンと互換性のある集約の初期化を実行します (スカラー配列のみ)。
例:
dcl myarr(4) fixed bin(31) static init (1);
put skip list (myarr);
results in:
1 1 1 1
デフォルトでは、-agginit を使用しない場合、最初の要素のみが初期化されます。
- -ascii
- すべての文字データに対して、ASCII 文字エンコードを使用することを指定します。このオプションはデフォルトで設定されています。
- -bigendian
- データ項目に対して NATIVE 属性が明示的に適用されていない限り、すべての FIXED BINARY、CHARACTER VARYING、GRAPHIC VARYING、および WIDECHAR VARYING 項目は、BIGENDIAN データ属性で暗黙的に宣言されていることを指定します。
- -bitsltr
- 各バイト内のビット文字列を左から右に格納します。これはビッグエンディアンのビット順序に似ています (Intel のみ)。Intel のデフォルトでは、ビット文字列を右から左へ記憶しますが、オプションを使用した場合、ビット文字列は各バイト内部で左から右に記憶されます。
- -c
- リンクを抑制し、再配置可能なオブジェクト ファイルを生成します。このオプションは、mfplx のみに適用されます。
- -cics
- EXEC CICS サポート用に CICS プリプロセッサを呼び出します。これにより、EXEC CICS 文が認識され、ネイティブ PL/I ソース コードが生成されます。
- -coffdebug
- Visual Studio デバッガーに対して行番号情報を生成し、Open PL/I ソース コードのブレークポイント、文のトレーシング、および呼び出しスタック情報を有効にします。
制限事項:
- 変数の評価はサポートされていません。
- -coffdebug は 64 ビットの Windows ではサポートされていません。
- -compact_msgs
- メッセージを改行しません。
- -currency_symbol
- ピクチャ指定用の代替通貨記号を許可します。文字、10 進数、または 0xDD 形式の 16 進定数を使用できます (例:-currency_symbol £、-currency_symbol 163、-currency_symbol 0xa3)。
- -db2
- DB2 プリプロセッサ mfdb2 を呼び出します。デフォルトの DB2 プリプロセッサ出力ファイル名は xxx.pp2 です。ここで、xxx はソース ファイルの名前です。-ppdb2 オプションが指定されていない場合、コンパイル段階の完了後にファイル xxx.pp2 は削除されます。-db2 オプションは、mfplx にのみ適用されます。
警告:このオプションは、非推奨の
mfdb2 プリプロセッサで必要です。EXEC プリプロセッサを使用してください (
-sql db2 によって呼び出されます)。
- -deb (-debug)
- Micro Focus のソースレベルのデバッガーである CodeWatch 用のデバッグ情報を生成します。CodeWatch を使用してソースをデバッグする場合は、このオプションを指定する必要があります。-deb を使用する場合、最適化レベル 1 または 2 のみを指定できます。デフォルトは、-opt 2 です。
- -default_binary
- FIXED 属性が指定されていて、BINARY または DECIMAL が指定されていない場合、BINARY 属性が指定されているものとみなされます。
- -default_decimal
- FIXED 属性が指定されていて、BINARY または DECIMAL が指定されていない場合、DECIMAL 属性が指定されているものとみなされます。このオプションはコンパイラのデフォルトです。
- -defext
- データ節で外部変数が定義されるようにします。外部ファイルを使用するプログラムには、このオプションを使用する必要があります。
-defext オプションを使用すると、STATIC EXTERNAL 変数と外部ファイル定数の初期値が定義されます。INITIAL 値を持つ各 STATIC EXTERNAL 変数は、-defext を使用してコンパイルされた 1 つのモジュールだけで宣言されている必要があります。このようにしない場合、INITIAL 値が有効になりません。デフォルトは -nodefextです。
また、各ファイル定数は、それぞれ -defext を使用してコンパイルされた 1 つのモジュールだけで宣言されている必要があります。-defext が使用されている場合、ファイルの宣言で指定されているファイル属性は、ファイルが開かれたときに指定される属性にマージされます。これは、VSAM/INDEXED I/O の実行時に非常に重要です。
- -dli
- EXEC DLI サポート用に DL/I プリプロセッサを呼び出します。これにより、EXEC DLI 文が認識され、ネイティブ PL/I ソース コードが生成されます。このオプションは、EXEC プリプロセッサ (EXEC PP) により処理され、サポートされます。
- -dll
- フェッチ可能なプロシージャとして使用できるオブジェクトを生成します。フェッチ可能な共有プロシージャ オブジェクトをビルドするには、ご使用のオペレーティング システムに基づき、-dll を使用してください。
- -E
- 任意の指定されたプリプロセッサ (-macro、-db2) がソース ファイルで実行されるようにし、その出力を保存します。ただし、コンパイラは実行せずに停止します。
- -ebcdic
- すべての文字データに対して、EBCDIC 文字コードを使用することを指定します。
注:-ebcdic コンパイラ オプションでは、WCHAR および GRAPHIC データ型はサポートされていません。
- -err_on_stdout
- STDERR ではなく STDOUT にコンパイラのエラー メッセージを表示または印刷します。
- -exp
- アセンブリ言語文の形式で、生成されたコードの拡張リストをリスティング ファイル内に作成します。
- -f
- -flag と同義です。
- -fb7asfb15
- Fixed Binary (7) を Fixed Binary (15) として処理します。Open PL/I の以前のバージョンとの下位互換性を維持するために使用します。
- -fbmaxp n
- Fixed Binary の最大精度を指定します。次の値を指定できます。
- 31
- Fixed Binary の最大精度を 31 に設定します。これは Open PL/I のデフォルトです。
- 63
- Fixed Binary の最大精度を 63 に設定し、Fixed Binary (63) のサポートを有効にします。
-fixed_bin_max_p を -fbmaxp の同義語として使用することもできます。
- -fdasfb
- 浮動小数データが浮動バイナリとして内部的にコーディングされるようにします。このオプションにより、より高速なコードが生成されますが、算術結果の最小有効桁において精度が低くなります。デフォルトは -fdasfb です。「-nofdasfb オプション」も参照してください。
- -fdmaxp n
- FIXED DECIMAL の最大精度 n を指定します。推奨値は次のとおりです。
- 15
- z/OS のデフォルト。
- 18
- Enterprise Developer リリース 2.1 以前の Open PL/I のデフォルト。
- 31
- Enterprise Developer リリース 2.2 以降の Open PL/I のデフォルト。
最大固定小数点の精度 31 は許容される最大値です。
-fixed_dec_max_p を -fdmaxp の同義語として使用することもできます。
- -fixed_bin_max_p
- -fbmaxp と同じです。
- -fixed_dec_max_p
- -fdmaxp と同じです。
- -flag
- メッセージの最低限の診断レベルを指定します。このレベル以下の診断は抑制されます。-f と同義です。
-flag minimum diagnostic level
minimum diagnostic level には、次を指定できます。
- I
- 情報 (Informational) レベル以上の診断メッセージを生成します (すべてのメッセージをリストします。これはデフォルトの設定です)。
- W
- 警告 (Warning) レベル以上の診断メッセージを生成します。
- E
- エラー (Error) レベル以上の診断メッセージを生成します。
- S
- 重大 (Severe) レベル以上の診断メッセージを生成します。
- -fmaxp
- 浮動小数点の精度が三角組み込み関数および次の算術組み込み関数に使用されるようにします。EXP、LOG、LOG10、LOG2、SQRT。-fmaxp がデフォルトです。三角組み込み関数および名前付き算術組み込み関数の標準 PL/I 変換規則には、-nofmaxp を使用してください。
- -fpcobol
- COBOL の浮動小数点パラメーターの処理と互換性のあるコードを生成するようにコンパイラに指示します。
- -full_list
- 通常、%INCLUDE 文によってインクルードされるコードの前に配置される %NOLIST 指令を省略するように、マクロ プリプロセッサに指示します。これにより、インクルードされているコードがコンパイル リストで表示されるようになります。
- -graphic
- GRAPHIC データ型のサポートを有効にします。
注:-graphic と EBCDIC データおよび定数との併用はサポートされていません。
- -help
- 使用できるコンパイラ オプションのリストをコンソールまたは STDOUT 出力と、EXIT に印刷します。
- -highbif
- このオプションを使用すると、HIGH() 組み込み関数から返される値を変更できるようになります。例えば、-highbif 127 とすることができます (デフォルト値は 255 ですが、Open PL/I の古いバージョンとの互換性のために値 127 が使用される場合もあります)。
- -incl
- 選択した、またはデフォルトのインクルード文を処理するインクルード プリプロセッサを呼び出し、別のプリプロセッサまたは Open PL/I コンパイラによって 1 つのソース ファイルとして処理できるデッキを生成します。
- -ipath dirlist
- %INCLUDE 文を使用してソース プログラム テキストにインクルードするファイルを、指定されたディレクトリで検索するように、コンパイラに指示します。dirlist は、次の形式で表されるディレクトリの順番リストです。
dirname[:dirname] ...
-ipath オプションにより、コンパイラはこれらのディレクトリを指定された順番で検索し、%INCLUDE 文を処理するためのファイルを検出するように指示されます (ただし、%INCLUDE 文に絶対ディレクトリ パスが指定されている場合を除きます)。
例えば、ソース プログラムに次が含まれているとします。
%INCLUDE partlist;
また、コンパイラの呼び出しコマンドは次のとおりであったとします。
mfplx source_file -ipath .:/u/libr1:/u/libr2
この場合、コンパイラはまず現在の作業ディレクトリで「PARTLIST」を検索し、次に /u/ libr1、最後に /u/ libr2 ディレクトリを検索します。それでも検出できなかった場合は、同じディレクトリで「partlist (小文字)」を検索します。
Windows 環境では、次のコンパイラ呼び出しが上記に相当します。
mfplx source_file -ipath .;drive:\libr1;drive:\libr2
- -ipubr
- INT または POSINT を使用して生成された符号なし整数のビットと、UNSPEC で返されたビット文字列を反転します。
- -isuffix string
- %INCLUDE 文で指定されたファイル名に string が付加されるようにします。ただし、%INCLUDE 文の引用符付きファイル名形式が使用されている場合は除きます。
例えば、ソース プログラムに次が含まれているとします。
%INCLUDE partlist;
また、コンパイラの呼び出しコマンドは次のとおりであったとします。
mfplx source_file -isuffix .INC
この場合、コンパイラは partlist.inc という名前のファイルを検索します。
- -l [ file]
- コンパイラ リストを生成します。file は、このリストが出力されるファイルの名前です。ファイル名を指定しない場合、コマンド ラインのソース ファイル名の後に、このオプションを配置する必要があります。そうしないと、エラー メッセージが表示されます。リストを含むファイルのデフォルト名は xxx.list です。ここで xxx は、名前の中の最後の「.」(含まれる場合) の直前までのソース ファイル名 (パス名を除く) です。例えば、ソース ファイル名が prog.pl1 の場合、デフォルトのリストは prog.list (Windows システムの場合は prog.lst) です。-exp、-map、または -xref が指定されている場合は、デフォルトでコンパイラ リストが生成されます。
- -laxbased
- BASED 変数の記憶域のチェックを無効にします。これは Open PL/I のデフォルトです。「–nolaxbased」も参照してください。
- -laxdefined
- DEFINED 変数のタイプと記憶域のチェックを無効にします。これは Open PL/I のデフォルトです。「–nolaxdefined」も参照してください。
- -laxinit
- ブロックのプロローグにおける自動初期化の依存性の順序を無効にします。宣言の順序が使用されます。
- -longint
- 固定長バイナリ変数のデフォルト精度を (15) から (31) に変更します。
- -lowercase
- 大文字の内部、外部の変数および定数の名前を、すべて小文字に変換します。
- -macro
- Open PL/I マクロ プリプロセッサ mfpp を呼び出します。デフォルトのプリプロセッサ出力ファイル名は xxx.pp です。ここで、xxx はソース ファイルの名前です。-pp オプションが指定されていない場合、コンパイル段階の完了後に xxx.pp ファイルは削除されます。-macro オプションは、mfplx にのみ適用されます。
- -map
- リスティング ファイルの末尾に記憶域の割り当てマップを生成します。
- -map
- 次のいずれかを実行します。
- コロンまたは引数を指定せずに -map を使用した場合、リスティング ファイルの末尾に記憶域の割り当てマップが生成されます。
- コロンおよび引数を指定して -map を使用した場合 (例:-map:filename (filename はリンカー マップ ファイルのファイル名))、このオプションは ldpli に渡され、指定されたファイル名のリンカー マップが生成されます。
-map add -map:filename は同時に使用できます。
- -margins l,r
- マージンを設定します。コンパイラは、ソース ファイル内のこのマージンの内側の文字はソース コードとして解釈し、その外側の文字はすべて無視します。l は、ソース コードとして解釈される一番左の文字の列番号、r はその一番右の文字の列番号です。タブが使用されている場合、各タブは 1 つの文字としてカウントされます。-margins オプションは、ソースの *PROCESS 文によりオーバーライドされる場合があります。
注:左右のマージンを区切るカンマの前後には、スペースを入れないでください。
- -maxmsg
- コンパイル時に生成される、指定した重大度以上の診断の最大数を指定します。
-maxmsg Level,n
次のように、Level は I、W、E、S のいずれかです。
- I
- I レベル (情報) 以上のすべてのコンパイラ メッセージを最大数に対してカウントします。
- W
- W レベル (警告) 以上のすべてのコンパイラ メッセージを最大数に対してカウントします。
-
- E
- E レベル (エラー) 以上のすべてのコンパイラ メッセージを最大数に対してカウントします。
- S
- S レベル (重大) のみを最大数に対してカウントします。
- n
-
最大数。
デフォルトは-maxmsg W,1000です。
メッセージ数が許容される最大数を超えた場合にコンパイルが終了します。メッセージが指定した重大度より低い場合、それらの数はカウントされません。n の値の範囲は、0 ~ 32767 です。0 を指定すると、指定した重大度の最初のエラーが発生すると、コンパイルが終了します。
回復不能な A レベル (中止) エラー メッセージでは、常に終了になります。
- -names
- コンパイラ オプションを介して識別子に言語外の文字を追加します。*PROCESS NAMES() と実質的に同様です。
例:
-names 'string1' [ 'string2' ]
- string1
- 識別子に追加する言語外の文字。
- string2
-
対応する大文字。オプション。
デフォルトは次のとおりです。
-names '$@#' '$@#'
追加の文字には、必要に応じてデフォルトの$@# またはサブセットと、追加の言語文字を指定する必要があります。
-names '$@#Ј'
便宜を図るため、上記の文字列の代わりに0xDD..DD 形式の 16 進定数を使用できます。
-names 0x402324a3
- -nest
- DO ...END、PROC ...END などのネストがリスティング ファイルで表示されるようにします。リスティング ファイルの詳細については、「-l オプション」を参照してください。
- -nocicsdebug
- CodeWatch を使用して、CICS プリプロセッサによって生成された中間ファイルではなく、元のソース ファイルをデバッグできます。また、コンパイラ診断が元のソース ファイルを参照するのに行番号を使用するようにします。これはデフォルトの設定です。-nocicsdebug コマンドは mfplx と kixplt にのみ適用されます。
- -nodebuginfo
- %FILE および %LINE 情報で、改行しないようにコンパイラに指示します。
- -nodefext
-
-nodefext オプションは、STATIC EXTERNAL 変数および外部ファイル定数の初期値が定義されないようにします (デフォルト)。詳細については、「-defextコンパイラ オプション」を参照してください。
また、各ファイル定数は、それぞれ -defext を使用してコンパイルされた 1 つのモジュールだけで宣言されている必要があります。-defext が使用されている場合、ファイルの宣言で指定されているファイル属性は、ファイルが開いたときに指定される属性にマージされます。これは、VSAM/INDEXED I/O の実行時に非常に重要です。
- -nofdasfb
- 浮動小数データが 2 進化 10 進数として内部的にコーディングされるようにします。デフォルト設定は -fdasfb です。
- -nofmaxp
- 三角組み込み関数および特定の算術組み込み関数の精度を決定するのに、標準の PL/I 変換規則が使用されるようにします。デフォルトは -fmaxp です。
- -noincludes
- %INCLUDE ファイルの内容をコンパイルされたソースにインクルードしないように、コンパイラまたはマクロ プリプロセッサ (またはその両方) に指示します。
- -nolaxbased
- BASED (ADDR(x)) の形式を使用して宣言した BASED 変数の場合、基底付き変数「x」を使用した記憶域チェックを有効にします。–laxbased は Open PL/I のデフォルトです。
注:-cics、
-sql、
-dli、
-mvs、または
–ims のオプションのすべてが
–nolaxbased の意味を含みます。
–laxbased と組み合わせて使用する場合は上書きできます。
例:
DCL S1 CHAR(10); DECLARE S2 CHAR(20) DEFINED (S1);
これは適切な診断結果になります。
- -nolaxdefined
- DEFINED 変数の場合、DEFINED 変数と基底付き変数についてタイプと記憶域のチェックの両方を可能にします。–laxdefined は Open PL/I のデフォルトです。
注:-cics、
-sql、
-dli、
-mvs、
–ims のオプションのすべてが
–nolaxdefined の意味を含みます。
–laxdefined と組み合わせて使用する場合は上書きできます。
例:
DCL X FIXED BIN (15); DECLARE Y FIXED BIN (31) BASED (ADDR(X));
これは適切な診断結果になります。
- -nolaxdcl
- 宣言されていない変数を、コンパイラで宣言しないようにコンパイラに指示します。
- -nolaxinit
- ブロックのプロローグにおける自動初期化の依存性の順序を有効にします。これは Open PL/I のデフォルトです。
- -nomacro
- Open PL/I マクロ プリプロセッサの呼び出しを抑制します。デフォルトは -nomacro です。
- -noobj
- 構文と意味のチェックのためだけにコンパイルを実行します。オブジェクト ファイルは生成しません。
- -noopt
- 最適化せずにコンパイルを実行します。これはデフォルトの設定です。
- -norange
- 添え字参照およびサブ文字列バインドの妥当性をチェックするためのコードの生成を抑制します。このオプションは、プログラムのデバッグ後に、実行時間のパフォーマンスを改善するために使用してください。デフォルトは --norange です。
- -noopt
- 最適化せずにコンパイルを実行します。これはデフォルトの設定です。
- -not_symbol
- 代替 NOT シンボルを指定できるようにします。文字、10 進数、または 0xDD 形式の 16 進定数を使用できます。『言語リファレンス』マニュアルの「%PROCESS」も参照してください。
- -nounixdebug
- ONLOC 組み込み関数で使用するための、または致命的なランタイム エラーが発生したときにソース ファイルと行番号をレポートするために必要な、追加のオブジェクト ファイル データが生成されないようにします。
- -nounrefexternals
- オブジェクト ファイル内で、プログラムで参照されていない外部エントリ シンボルが生成されないようにします。これはデフォルトの設定です。
- -nowarn
- すべての情報 (INFORMATIONAL) および警告 (WARNING) レベルの診断を抑制します。これは –flag オプションをEに設定することに相当します。
- -[no]xref
- プログラムで使用されている名前の相互参照テーブルをインクルードしないようにコンパイラに指示します。詳細については、「-xref コンパイラ オプション」を参照してください。
- -O
- コンパイラ段階の最適化を呼び出します。このオプションは、-opt オプションに相当し、mfplx にのみ適用されます。
- -o file
- file で指定した名前でオブジェクト ファイルに名前をつけます。-o が指定されていない場合、デフォルトのファイル名は xxx.o です。ここで、xxx は、名前にある最後の「.」(該当する場合) を除く、ソース ファイル名までです。例えば、ソース ファイル名が prog.pl1 の場合、デフォルトのオブジェクト ファイル名は prog.o (Windows システムの場合は prog.obj) です。
-c が指定されている場合、-o オプションがコンパイラに渡されます。-c が指定されていない場合は、-o は ldpli に渡されます。
- -opt [level]
- Open PL/I コンパイラによる最適化レベルを指定します。level は、最適化のレベル (1 ~ 3) を表します。デフォルト設定は -noopt です。level がインクルードされていない場合、プログラムはレベル 3 で最適化されます。-deb が指定されていない場合、-opt 2 が許可される最大レベルになります。-opt -deb は、-opt 2 -deb に相当します。
- -optcics
- CICS オプションが CICS ECM に渡されるようにします。
- -optdli
- DL/I オプションが DL/I (IMS) ECM に渡されるようにします。
- -optexec {sub-option}[,sub-option]
- EXEC プリプロセッサ用にオプションを指定できます。-optexec オプションには、次のものを使用できます。
- [NO]PLITEST
- GUI CodeWatch デバッガーを起動するために自動呼び出しを挿入するように EXEC プリプロセッサに指示します。
-optexec オプションを PLITEST パラメーターと使用しても、CICS の元で実行する PL/I プログラムをデバッグできます。実行中、最初に実行可能な文 (実行環境に応じて、PROCEDURE 文または PROCEDURE 文に続く最初の文のいずれか) でプログラムが停止します。このオプションと PLITEST を使用する場合、環境変数の CODEWATCH_SRCPATH および CODEWATCH_STBPATH を使用して適切なプログラム ソース ファイルとデバッグ ファイルを指定します。
- NEWNAME(newname)
- PROCEDURE 文に指定されている可能性がある他の名前に加えて、最も外側の外部プロシージャの名前を指定します。プロシージャに関する名前が実行可能ファイルの名前と一致しない場合はこれを使用します。(newname) は実行可能ファイル名と同じ名前です。
- trace
- プリプロセッサが source.trc ファイルを作成するようにします。ここでsource はソース ファイルの名前です。
- ctrace
- サポート窓口へトレース ファイルの提出が必要な場合に、トレース ファイルを作成します。
- strace
- プログラムによって呼び出された内部関数からログ ファイルを作成します。
- vtrace
- プログラムの動的なビジュアル トレースを作成します。
- -optsql
- SQL オプションが SQL ECM に渡されるようにします。
- -or_symbol
- 代替 OR シンボルを指定できるようにします。文字、10 進数、または 0xDD 形式の 16 進定数を使用できます。『言語リファレンス』マニュアルの「%PROCESS」も参照してください。
- -pass
- リモート DB2 データベースに接続します。ユーザー名とパスワードを指定して、このオプションを使用できます。フォーマットは次のとおりです。
–pass myid.mypass
myid はリモート DB2 接続のユーザー名で mypass はパスワードです。mfplx は、-pass にユーザー名/パスワードが指定されているかどうかを最初にチェックし、指定されていた場合はこれらの値を使用します。指定されていない場合は、DB2_USERNAME および DB2_PASSSWORD 環境変数に設定されている値が使用されます。
- -pic
- 共有ライブラリへのリンクに適した、位置に依存しないコードを生成します。このオプションは、Solaris、SUSE Linux、および Red Hat Linux のみで使用可能です。
- このオプションは、共有オブジェクトにインクルードするためにコードをコンパイルする場合に使用してください。
- -pl1g
- 以前のリリースの動作と互換性がなくなるような形で変更されている特定の演算について、Open PL/I 5.0 よりも前のリリースの動作が、Open PL/I で保持されるようにします。例えば、TIME() は小数点以下 3 桁 (1/1000) を含む値を返しますが、-pl1g を使用すると、小数点以下 2 桁 (1/100) のみが返されるようになります。
- -plitdli
-
ユーザーが指定した PLITDLI ではなく PLITDLI エントリ ポイントを呼び出す際に、IMS リンケージを指定します。このオプションは、ユーザー プログラム内でそのように宣言されている (エントリ記述子リストまたは戻り値の型 (あるいはその両方) なし)DCL PLITDLI ENTRY; を可能にします。
- -pp [file]
- Open PL/I マクロ プリプロセッサの出力ファイルのファイル名を指定します。-pp オプションで作成された出力ファイルは、コンパイル段階の完了後も維持されます。このオプションは、mfplx および mfpp にのみ適用されます。
- -ppcics [file]
- CICS プリプロセッサの出力のファイル名を指定します。-ppcics オプションで作成された出力ファイルは、コンパイル段階の完了後も維持されます。このオプションは、mfplx にのみ適用されます。
- -ppdli[file]
- DL/I プリプロセッサの出力のファイル名を指定します。-ppdli オプションで作成された出力ファイルは維持され、ダウンストリーム プリプロセッサまたは PL/I コンパイラで消費されます。
- -ppdb2 [file]
- DB2 プリプロセッサの出力のファイル名を指定します。-ppdb2 オプションで作成された出力ファイルは、コンパイル段階の完了後も維持されます。このオプションは、mfplx にのみ適用されます。
- -ppsql [file]
- SQL プリプロセッサの出力のファイル名を指定します。-ppsql オプションで作成された出力ファイルは、コンパイル段階の完了後も維持されます。このオプションは、mfplx にのみ適用されます。
- -proto
- エントリ宣言のパラメーターと引数の対応について、より広範なプロトタイプ チェックを提供します (-vax を使用する場合もデフォルトで想定されています)。
例:
declare myproc external entry(
fixed binary(31),
fixed binary(15),
fixed binary(15));
myproc: procedure(a,b,c); /* mismatch diagnosed, -proto and -vax */
declare a fixed binary(15);
declare b fixed binary(15);
declare c fixed binary(15);
end t660;
- -range
- コンパイル時にすべての静的配列バインド参照を検証し、すべての添え字参照およびサブ文字列バインドが実行時に有効かチェックするコードを生成します。チェック用コードは、実行時間のパフォーマンスを低下させるため、注意してください。
-
実行時に配列バインドまたは文字列バインドを超過すると、必要に応じて SUBSCRIPTRANGE または STRINGRANGE 状態が発生します。添え字およびサブストリングに関連するプログラミング エラーをデバッグするには、このオプションを使用してください。デバッグ済みコードには、-norange オプションを使用してください。デフォルトは --norange です。
- -rc n,0
- mfplx からの戻りコードがゼロになるエラー コードの最大レベル n を指定します。デフォルトは –rc 4,0 です。使用できる値は、次のとおりです。
- コンパイラ エラー コードのレベルと mfplx の戻りコードを次の表に示します。
コンパイル エラー コードのレベル |
戻りコード |
説明 |
0 |
0 |
診断メッセージなし、または I レベル (情報) のみ |
0 |
4 |
W レベル (警告) の診断メッセージ (オブジェクト コードが生成される) |
1 |
8 |
E レベル (エラー) の診断メッセージ (オブジェクト コードが生成されるが実行動作は未定義 – ソース コードにエラーが含まれているため修正が必要) |
1 |
12 |
S レベル (重大) の診断メッセージ (オブジェクト コードは生成されない) |
1 |
16 |
コンパイラの中止 |
- mfplx コマンド ライン ドライバーは、成功した場合には 0 を、失敗した場合には 1 を返します。コンパイルの成功後にリンクが呼び出される場合の戻りコードも、成功した場合は 0、失敗した場合は 1 です。
- -report [file]
- Open PL/I ソース チェッカーの出力のファイル名を指定します。このオプションが使用されていない場合、チェッカーの出力は標準のエラー ファイルに転送されます。このオプションは、mfplx にのみ適用されます。
- -setnull n
- NULL 組み込み関数が NULL ポインター n を戻すように指定します。ここで n は 10 進値です。このオプションが指定されていない場合、NULL 組み込み関数の値は、すべてのビットが 1 に設定されたアドレスになります。
- -setstack
- 自動ストレージを 0 に初期化します。
- -so
- フェッチ可能なプロシージャとして使用できるオブジェクトを生成します。フェッチ可能な共有プロシージャ オブジェクトをビルドするには、ご使用のオペレーティング システムに基づき、-so または -dll を使用してください。
- -shortint
- デフォルトの FIXED BINARY 精度を 15 に設定するように、コンパイラに指示します。
- -sql
- EXEC SQL サポート用に SQL プリプロセッサを呼び出します。これにより、EXEC SQL 文が認識され、ネイティブ PL/I ソース コードが生成されます。このオプションは、EXEC プリプロセッサ (EXEC PP) により処理され、サポートされます。-sql オプションには、次のものを使用できます。
- odbc
- ODBC 準拠のデータベースを指定します。
- db2
- IBM、DB2、または UDB データベースを指定します。
- oci
- Oracle の「Call」インターフェイス データベースを指定します。
- -stardesc
- パラメーター宣言の配列バインドまたは文字列の長さがアスタリスク (*) で表されている場合のみ、呼び出しに対して引数記述子を生成するようにコンパイラに指示します(これは、7.0 より前のリリースのコンパイラの動作です)。このオプションが使用されていない場合、コンパイラは、配列、構造体、および文字列の引数に対して記述子を生成します。
- -stat
- 各コンパイラ段階が完了するたびに、コンパイラの統計情報を標準出力に印刷します。
- -stbout
- 出力オブジェクト ファイルと同じディレクトリに .stb ファイルを生成します。
注:このオプションを使用する際には、
CODEWATCH_STBPATH および
CODEWATCH_SRCPATH 変数を適切な位置に設定する必要がある場合があります。
- -strip (ldpli)
- デバッグ情報を生成しないように Idpli に指示します。
- -structure_fillers
- 埋め草文字が含まれる構造体に対して、警告を生成するようにコンパイラに指示します。
- -systemcics
-
この OPTIONS(MAIN) プログラムが CICS の制御下で実行されるように指定します。このようなプログラムは、0、1、または 2 つのパラメーターを持っている場合があります (すべてポインターである必要があります)。そのようなプログラムは、ほぼ常に、-cics を指定し、1 つまたは複数の –sql および –dli を指定する場合があります。
- -systemims
- この OPTIONS(MAIN) プログラムが IMS の制御下で実行されるように指定します。このようなプログラムは、0 から n 個のパラメーターを持っている場合があります (すべてポインターである必要があります)。または、そのようなプログラムは、1 つまたは複数の –sql および –dli を指定する場合があります。
- -systemmvs
- この OPTIONS(MAIN) プログラムが MVS の制御下で実行されるように指定します。そのようなプログラムは、最大 1 つのパラメーターを持つ場合があり、そのパラメーターは CHAR(n) VARYING である必要があります。このとき、「n」は * ではありません。または、そのようなプログラムは、1 つまたは複数の -cics、–sql、および –dli を指定する場合があります。
- -unaligned
- このコンパイル時のスイッチは、RISC アーキテクチャで使用するために追加されました。このスイッチは、メモリの位置を指定する、すべての基底付き参照に対してバイト命令が生成されるようにします。
- -unrefexternals
- 外部エントリ シンボルがプログラムで参照されていない場合でも、オブジェクト ファイルに外部エントリ シンボルが生成されるようにします。
- -v
- コンパイル段階およびリンク ステップ段階に関連する情報を stdout に印刷します。このオプションは、mfplx のみに適用されます。
- -variant string
- Open PL/I マクロ プリプロセッサにバリアント文字列 (string) を渡します。このオプションは、mfplx のみに適用されます。
- -vax
- 元々は Digital Equipment Corporation の VAX プラットフォーム向け PL/I コンパイラで記述されたプログラムを、次のように適合させます。
- Float Binary(24) を Float Binary(23) に相当するものとして有効にします。
- Float Binary(53) を Float Binary(52) に相当するものとして有効にします。
- FIXED 属性が指定されていて、BINARY または DECIMAL が指定されていない場合、BINARY 属性が指定されているものとみなされます。
- -warn
- 情報 (INFORMATIONAL) および警告 (WARNING) レベルの診断を抑制しません。これは –flag オプションをlに設定することに相当します。これはデフォルトの設定です。
- -window
- さまざまな日付関連の組み込み関数で使用される時間幅の引数 w の値を設定します。
- w
- 固定時間幅の開始を表す 1976 などの 4 桁の正の整数または「スライドする」時間幅を表す負の整数のいずれか。たとえば、-window -50 は、プログラムが実行されるよりも 50 年前に開始される時間幅を示します。
- -xref fullshort
- リスティング ファイル内に相互参照情報を生成し、生成される相互参照情報のタイプを指定します。相互参照は、プログラムで使用されている名前と、宣言または参照されている文の番号を示します。-xref を使用する場合、END 文でのラベル参照はリスティング ファイルにインクルードされません。
リスト内のすべての識別子および属性をインクルードするには、-xref で full を使用してください。参照されていない識別子を除外するには、short を -xref オプションとともに使用します。
- -zalign
- z/OS がマッピングおよび整列ルールを集約します。
- 構造体メンバーのマッピングに影響します。z/OS の構造体マッピング ルールは、構造体メンバーの整列要件に関してコンパイラ挿入のパッド バイトを最小限に抑えるために「シフトして整列」アルゴリズムを使用します。これは、「構造体」のトピックに記載されている、言語間の互換性を実現するために他の UNIX および Windows のコンパイラと互換性のある、Open PL/I のデフォルトの構造体マッピング ルールとは異なります。
- デフォルトの浮動バイナリ単精度を 21 に、デフォルトの浮動バイナリ倍精度を 53 (-zfloat を意味する) に設定します。Open PL/I のデフォルトは、それぞれ 23 および 52 です。
- CHAR、CHAR VAR、GRAPHIC、GRAPHIC VAR、WIDECHAR、WIDECHAR VAR、および PICTURE データ型のデフォルトの整列属性は「unaligned」(-zchar を意味する) であることを指定します。Open PL/I のデフォルトは「aligned」です。
- Intel 32 ビット システムでの倍精度浮動バイナリのダブルワードを意味します (Open PL/I および Intel のネイティブ デフォルト整列は、Intel 32 ビット システムでのワードです)。
- Intel 32 ビット システムでの AREA のダブルワードを意味します (Open PL/I のネイティブ デフォルト整列は、Intel 32 ビット システムでのワードです)。
構造体レイアウトの例 (Open PL/I のデフォルト)
以下は、8 バイトのサイズでの構造体 ST を示します。メンバー「C」はオフセット 0 (バイト整列) で、メンバー「X」はオフセット 4 (ワード整列) です。メンバー間にはコンパイラ挿入のパッド バイトが 3 バイトあります。
1
2 dcl 1 ST,
3 2 C CHAR,
4 2 X FIXED BIN(31);
5
NAME CLASS SIZE LOCATION ATTRIBUTES
ST BASED 8 LEVEL 1 STRUCTURE
C MEMBER 1 00000000 LEVEL 2 CHAR(1)
3 00000001 -pad-
X MEMBER 4 00000004 LEVEL 2 FIXED BIN(31,0)
構造体レイアウトの例 (-zalign)
以下は、5 バイトのサイズでの構造体 ST を示します (メモリ内で 8 バイトが割り当てられています)。メンバー「C」はオフセット 0 (バイト整列) で、メンバー「X」はオフセット 1 (ワード整列) です。この例では、要求された境界にメンバーを適切に整列させ、コンパイラ挿入のバイトを最小化する (この場合はなくす) ために、各メンバーが 3 バイトだけシフトされています (次に示すように、OFFSET=3)。実際に「シフトして整列」アルゴリズムは、構造体の先頭に向かってメンバー間の自然な整列のギャップを埋めるパッド バイトを伝播します。構造体の外側にシフトされたパッド バイト (つまり最初のメンバーよりも先行する) は、「ハング バイト」と呼ばれます。
1
2 dcl 1 ST,
3 2 C CHAR,
4 2 X FIXED BIN(31);
5
NAME CLASS SIZE LOCATION ATTRIBUTES
ST BASED 5 LEVEL 1 STRUCTURE OFFSET=3
C MEMBER 1 00000000 LEVEL 2 CHAR(1) UNALIGNED
X MEMBER 4 00000001 LEVEL 2 FIXED BIN(31,0)
注:
- このオプションは、z/OS の構造体マッピング ルールを一致させるために構造体マッピングが必要な場合にのみ推奨されます。必要な場合の例としては、メインフレームからインポートされた、整列目的の z/OS コンパイラ挿入 (場合によっては削除) のパッド バイトを持つレコード構造体を含むファイルの読み込みが挙げられます。
- -zalign が 1 つのモジュールのコンパイルに使用される場合、互換性ために所定のプログラム内のすべてのモジュールをコンパイルすることを推奨します。同じプログラム内で -zalign をコンパイル単位と混ぜ合わせても問題ない可能性はありますが、-zalign でコンパイルされたモジュールが「自己完結型」でない場合、問題が発生する可能性があります。
- 調整可能な構造体 (REFER エクステントまたは非定数サイズのメンバーを持つ) の場合、-zalign「シフトして整列」アルゴリズムによって、非定数オフセットを持つ構造体メンバーにアクセスするためのコードが多く生成される原因となります ("Location" フィールドの -map リストの中で (-V-) と表示される)。構造体のレイアウトに応じて、生成されるコードの量は Open PL/I のデフォルト マッピング ルールと比較して広範囲に及ぶ可能性があります (-zalign を使用しない場合)。最小限のレベル -opt 2 でのコンパイラの最適化が推奨されます。
制限事項:
- 複数の REFER エクステントを持つ構造体の場合、コンパイラのリソースが影響を受け、コンパイラが中止になる可能性があります。Micro Focus SupportLine にご連絡ください。
注意:この機能は、早期採用者製品 (Early Adopter Product; EAP) リリース ステータスに提供されます。機能の最終版については、今後リリースする予定です。詳細については、
Micro Focus SupportLine までお問い合わせください。
CICS Web サービス機能は、開発およびテストでの使用を目的とした早期採用者製品 (Early Adopter Product; EAP) です。本製品リリースでは、この機能は製品のディプロイ用には推奨されません。
- -zchar
- CHAR、CHAR VAR、GRAPHIC、GRAPHIC VAR、WIDECHAR、WIDECHAR VAR、および PICTURE データ型のデフォルトの整列属性は unaligned であることを指定します。Open PL/I のデフォルトは aligned です。
注:これは、CHAR VAR、GRAPHIC VAR、および WIDECHAR VAR の記憶領域要件に影響します。また、CALL 文でのパラメーターと記述子のマッチングにも影響を与えます。
例 (Open PL/I のデフォルト)
Dcl c char;
Dcl sub entry (char unaligned);
Call sub(c); /* A dummy argument is created for “c” */
Dcl c char;
Dcl sub entry (char aligned);
Call sub(c); /* “c” is passed by reference */
Example (-zchar)
Dcl c char;
Dcl sub entry (char unaligned);
Call sub(c); /* “c” is passed by reference */
Dcl c char;
Dcl sub entry (char aligned);
Call sub(c); /* A dummy argument is created for “c” */
- -zfloat
- 浮動バイナリ単精度のデフォルトを「21」に、浮動バイナリ倍精度の最大値を「53」に指定します。Open PL/I のデフォルトは、それぞれ 23 および 52 です。
注:21 以下の浮動小数点の精度は、IEEE の単精度浮動小数点として実装されます。21 よりも大きい浮動小数点の精度は、IEEE の倍精度浮動小数点として実装されます。
- -zp1
- UNALIGNED 属性がレベル 1 構造体レベルで指定されている場合のように、すべての構造体がマップされるようにします。このオプションは、DEC VAX PL/I のバージョンとの互換性のために用意されています。
-zp1 を使用したコンパイルは、すべての構造体を効果的にパックするので、データ整列に使用されるパッド バイトはすべて除外されます。これは、メインフレームが送信元のファイルにデータ項目がパックされている、または整列されていないレコードを含む場合に便利です。
-zp1 を設定する場合、ずれたデータがハードウェア例外を引き起こす可能性のある RISC アーキテクチャでは特に、コンパイラは予防策を講じる必要があります。
-zp1 コンパイラ オプションは次のように影響します。
- すべての構造体のメンバーは、UNALIGNED 属性がレベル 1 の構造体レベルで指定されたかのように、整列のためのパッド バイトなしでパックされます。
- すべての基底付き変数は整列されていないかのように処理されます。
- すべてのパラメーターは整列されていないかのように処理されます。
- すべての Character Varying データ項目は整列されていないかのように処理されます。CHAR VAR の Open-PL/I のデフォルト配列は、先頭の固定 BIN (15) 長の自然な整列である HALFWORD です。
-zp1 を使用する場合、ソース コードを変更せずに引数を渡す際の一貫性を維持するために、引数が構造体のメンバーで、引数とパラメーターの記述子が UNALIGNED 属性と ALIGNED 属性間で明示的に異ならない場合、コンパイラは呼び出しポイントでのダミー引数の作成を無効にします。
注:-zp1 を使用すると、パフォーマンスに全体的影響が及ぶ可能性があります。SPARC および RS6000 などの RISC アーキテクチャでは、コンパイラはメモリ内の非整列データ項目にアクセスするために、バイト アドレス可能な命令のシーケンスを生成する必要があります。Intel では、コード生成のための変更は必要ありませんが、ずれたデータ項目にハードウェアがアクセスするには追加のクロック サイクルが必要です。
重要:このリリースを Enterprise Developer 2.2 Update 1 に対するアップグレードとして使用している場合、コンパイルされているすべてのアプリケーションをアップグレード後に
-zp1 オプションを使用して再構築する必要があります。
-zp1 オプションの動作は、Enterprise Developer の 2.2 Update 1 よりも前のバージョンに戻っており、Char Varying データ項目に関する追加修正も行われています。
動作は、Enterprise Developer の 2.2 よりも前のバージョンに戻り、–zp1 でコンパイルすると、すべてのパラメーターが非整列として扱われます(Enterprise Developer 2.2 Update 1 では、-zp1 でのコンパイルの動作では、パラメーターは非整列であるかのようには扱われませんでした)。
-zp1 コンパイラ オプションを使用する場合、すべての Character Varying データ項目が非整列であるかのように扱われるようになりました。Open PL/I の前のバージョンでは、Character Varying データ項目には、–zp1 の非整列要件は構造体のメンバーおよびパラメーターにのみ適用されました。
この変更の例を次に示します。
zptest: proc options(main);
dcl 1 st1,
2 c char,
2 x(4) char(7) var init ('a', 'xx', 'yyy', 'zzzz');
dcl y(4) char(7) var init ('a', 'xx', 'yyy', 'zzzz');
dcl sub entry ((4) char(7) var);
call sub (x);
call sub (y);
end;
sub: proc (z);
dcl z(4) char(7) var;
dcl i fixed bin(31);
do i = 1 to hbound(z);
z(i) = 'x';
end;
end;
詳細は次のとおりです。
- 参照内容x およびzの場合、各char (7) var 項目は、7 バイトに 2 バイトを加えた 9 バイトで、4 を掛けて 36 バイトになります。
- y が、デフォルトでハーフワードに整列されると、配列の各要素が整列されたハーフワードとなり、それぞれが 10 バイト (9 + 1 パッド バイト) で、合計サイズが 40 バイトと等しくなります。
- call sub (x)では、呼び出し側の引数とパラメーターが一致します。
- call sub (y)では、y 要素のサイズ (10 バイト) は、パラメーターz 要素サイズ (9 バイト) に対して一致しません (–zp1 のため)。これは正しくなく、プログラムの予期しない動作を引き起こします。
–zp1 を使用する際、このようにすべての Char Varying データ項目を非整列として扱うような修正を行う結果、CHAR VARYING 配列のサイズが Open-PL/I の以前のバージョンのものとは異なるようになります。次に例を示します。
dcl X(4) char(7) var;
Put skip list (size(X)) /* size is 36 bytes vs. 40 bytes in previous versions of Open-PL1 */