Open PL/I と Micro Focus

Open PL/I は、ネイティブ C コンパイラの命名規則に従います。そのため、Open PL/I でコンパイルされたサブルーチンおよび関数を、C 言語インターフェイスをサポートするサードパーティ ライブラリや、その他の言語と組み合わせることが可能です。Open PL/I のランタイム ライブラリは、最終的に完成するスタンドアロン プログラムにリンクする必要があります。Micro Focus は、COBOL/2 と C 間の言語間呼び出しをすべてドキュメント化しています。通常は、Micro Focus の指示に従って COBOL と C を組み合わせてください。これは、Open PL/I でコンパイルされたモジュールを、C モジュールとして処理するだけです。次のテスト プログラムは、文字列を引数として渡し、PL/I 関数を呼び出す COBOL プログラムの例です。

COBOL ソース コード モジュール:

WORKING-STORAGE SECTION. 01 STR PIC X(20). 
*
PROCEDURE DIVISION.
CALL-PL1 SECTION. 
DISPLAY "Calling the PL/I program". 
CALL "PL1PROC" USING STR.
DISPLAY "Return from PL/I program".
DISPLAY STR. 
STOP RUN.

PL/I ソース コード モジュール:

PL1PROC: PROCEDURE ( CHARSTR );
DECLARE CHARSTR CHARACTER(20); 

CHARSTR = 'This is a real test!'; 

END PL1PROC;

コンパイルおよびリンクするコマンド:

x86 Linux および Solaris の場合:

mfplx mfpl1.pl1 –c -fpcobol
ldpli mfcob.cbl mfpl1.o –o mf

AIX の場合:

mfplx mfpl1.pl1 –c –fpcobol
cob mfcob.cbl mfpl1.o –o mf –x –lmfpli

Windows の場合:

mfplx mfpl1.pl1 –c -fpcobol
cbllink mfcob.cbl mfpl1.obj –omf “%MFPLI_PRODUCT_DIR%”\lib\mfplimd.lib
注:mfplx の -fpcobol オプションは、PL/I と COBOL の間でパラメーターや関数の戻り値などの浮動小数点数項目を渡す必要がある場合にのみ必須です。PL/I float bin(23) データ型は COBOL comp-1 と互換性があります。

PL/I float bin(52) データ型は COBOL comp-2 と互換性があります。