コンパイラ オプション

注: コマンド ラインからコンパイルする場合、特殊文字 (空白文字など) を含むコンパイラ オプションの値を二重引用符 (" ") で囲みます。たとえば、次のように入力します。
-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) を作成するレコード レイアウト エディタまたはセグメント レイアウト エディタによって使用されます。その後、データファイル ツールはこれらのレイアウト ファイルを使用してセグメントまたはレコードの編集/処理を支援します (データ ファイル変換、データファイル エディタ、IMS データベース エディタ、IMS データベース ローダー)。

レイアウト エディタで 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
デバッガーに対して行番号情報を生成し、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 入出力の実行時に非常に重要です。

-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 に設定します。符号なし Fixed Binary の作用対象の場合、最大中間精度は 32 です。
63
符号付き Fixed Binary の最大中間結果精度を 63 に設定します。これは Open PL/I のデフォルトです。
注: -fbmaxp 63 の場合、Fixed Binary の作用対象が (p <= 31) である算術演算では、最大中間精度は p=31 になります。作用対象が (32 >= p <= 63) の場合は、Fixed Binary の最大精度が p=63 である結果精度の規則に従って、結果精度が上がります。符号なし Fixed Binary の作用対象の場合、最大中間精度は (p+1) です。

-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:filename (filename はリンカー マップ ファイルのファイル名))、このオプションは ldpli に渡され、指定されたファイル名のリンカー マップが生成されます。

-map-map:filename は同時に使用できます。

-margini s
INSOURCE オプションおよび SOURCE オプションによって生成されたリストの、左マージンの前の列、および右マージンの後の列に配置される文字を指定します。c はソース リストの左右のマージンを区切る文字です。
-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 入出力の実行時に非常に重要です。

-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
このオプションは非推奨となり、今後のリリースでは削除されます。「-prefix オプション」を参照してください。
-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
プログラムの動的なビジュアル トレースを作成します。
-options

変換された *PROCESS 指令およびコマンド ライン オプションの処理に関する情報をコンパイラ リストに追加します (-options-l の意味を含みます)。詳細については、*PROCESS 指令に関するセクションを参照してください。

-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 にのみ適用されます。
-pporder
呼び出し先となるプリプロセッサおよび呼び出し順序を選択します。このオプションは、mfplx にのみ適用されます。

構文:

-pporder “pp-name [ (pp-string)] [ pp-name [ (pp-string)] ] … “
注: 前後の引用符は必須です。
pp-name
プリプロセッサの名前。プリプロセッサ名は、MACRO、SQLDB2、SQLOCI、SQLODBC、CICS、DLI のいずれかである必要があります。
pp-string
各プリプロセッサに関連する引数。

INCL の場合、pp-string 引数は適用できません (または許可されません)。

MACRO の場合、pp-string 引数は、指定時、‘CASE(ASIS)’ または ‘CASE(UPPER)’ のいずれかにする必要があります。この引数は、-case_upper-case_asis コマンド ライン引数をオーバーライドします (指定されている場合)。

SQLDB2、SQLOCI、SQLODBC の場合、pp-string 引数は、指定時、-optsql オプションに指定される値になります。この引数は、-optsql のすべてのコマンド ライン引数をオーバーライドします (指定されている場合)。詳細については、Micro Focus SQL ドキュメントを参照してください。

CICS の場合、pp-string 引数は、指定時、-optcics オプションに指定される値になります。この引数は、-optcics のすべてのコマンド ライン引数をオーバーライドします (指定されている場合)。詳細については、Micro Focus CICS ドキュメントを参照してください。

DLI の場合、pp-string 引数は、指定時、-optdli オプションに指定される値になります。この引数は、-optdli のすべてのコマンド ライン引数をオーバーライドします (指定されている場合)。詳細については、Micro Focus DLI ドキュメントを参照してください。

許容される最大呼び出し数は 31 です。

注: -pporder オプションを使用しない場合、デフォルトの順序が適用されます (つまり、INCL、MACRO、DLI、SQL、CICS、MACRO)。

前記の呼び出し先プリプロセッサの選択は、指定されたオプション -incl-macro-dli-sql-cics の組み合わせによって決まります。これらのオプションの詳細については、Micro Focus のドキュメントを参照してください。

-ppsql [file]
SQL プリプロセッサの出力のファイル名を指定します。-ppsql オプションで作成された出力ファイルは、コンパイル段階の完了後も維持されます。このオプションは、mfplx にのみ適用されます。
-prefix condition-prefix[,condition-prefix]…
このオプションを使用すると、ソース コードを編集することなく、プログラムに 1 つ以上の条件プレフィックスを付けることができます。この条件プレフィックスは、(明示的または暗黙的な) PACKAGE 文の先頭に論理的に付けられ、これにより、コンパイル対象のプログラムの各外部 (レベル 1) プロシージャに条件プレフィックスが論理的に付けられます。

-prefix のデフォルトは次のとおりです。

-prefix conversion,fixedoverflow,invalidop,overflow,underflow,zerodivide,nosize,nostringrange,nostringsize,nosubscriptrange
-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
このオプションは非推奨となり、今後のリリースでは削除されます。-prefix stringrange,subscriptrange を代わりに使用する必要があります。

-range は、受け入れられますが、実質的に -prefix stringrange,subscriptrange として処理され、-prefix で指定された同じ条件プレフィックスをオーバーライドします。

-prefix オプション」を参照してください。

-rc n,0
mfplx からの戻りコードがゼロになるエラー コードの最大レベル n を指定します。デフォルトは –rc 4,0 です。使用できる値は、次のとおりです。
  • -rc 0,0
  • -rc 4,0
  • -rc 8,0
コンパイラ エラー コードのレベルと mfplx の戻りコードを次の表に示します。
コンパイル エラー コードのレベル 戻りコード 説明
0 0 診断メッセージなし、または I レベル (情報) のみ
4 0 W レベル (警告) の診断メッセージ (オブジェクト コードが生成される)
8 1 E レベル (エラー) の診断メッセージ (オブジェクト コードが生成されるが実行動作は未定義 – ソース コードにエラーが含まれているため修正が必要)
12 1 S レベル (重大) の診断メッセージ (オブジェクト コードは生成されない)
16 1 コンパイラの中止
表の値は、デフォルトの –rc 4,0 の設定のものです。
mfplx コマンド ライン ドライバーは、成功した場合には 0 を、失敗した場合には 1 を返します。コンパイルの成功後にリンクが呼び出される場合の戻りコードも、成功した場合は 0、失敗した場合は 1 です。
-report [file]
Open PL/I ソース チェッカーの出力のファイル名を指定します。このオプションが使用されていない場合、チェッカーの出力は標準のエラー ファイルに転送されます。このオプションは、mfplx にのみ適用されます。
-setnull n
NULL 組み込み関数が NULL ポインター n を戻すように指定します。ここで n は 10 進値です。このオプションが指定されていない場合、NULL 組み込み関数の値は、すべてのビットが 1 に設定されたアドレスになります。
-setstack
自動ストレージを 0 に初期化します。
-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 オプションを I に設定することに相当します。これはデフォルトです。
-window
さまざまな日付関連の組み込み関数で使用される時間幅の引数 w の値を設定します。
w
固定時間幅の開始を表す 1976 などの 4 桁の正の整数または「スライドする」時間幅を表す負の整数のいずれか。たとえば、-window -50 は、プログラムが実行されるよりも 50 年前に開始される時間幅を示します。
-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 にご連絡ください。
-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 */