多くの場合、移植性の問題は、マクロ機能を使用することによって回避できます。マクロ機能には、プラットフォーム固有のコードを分離する機能があるためです。 例えば、特定プラットフォームのコンパイルにプラットフォーム固有コードを組み込み、別のプラットフォームのコンパイルからそれを除外することができます。
PL/I for Windows マクロ機能の COMPILETIME 組み込み関数は、「DD.MMM.YY」の形式を使用して 日付を戻します。他方、OS PL/I マクロ機能の COMPILETIME 組み込み関数は、「DD MMM YY」の形式を使用して日付を戻します。
これにより、PL/I for Windows コンパイラーおよびすべてのバージョンのメインフレーム PL/I コンパイラー によって正しくコンパイルされる、次のような条件付きシステム依存コードを含むコードを作成できます。
%dcl compiletime builtin;
%if substr(compiletime,3,1) = '.' %then
%do;
/* Windows PL/I code */
%end;
%else
%do;
/* OS PL/I code */
%end;
マクロ機能の詳細については、「PL/I 言語解説書」を参照してください。