PL/I 式、BUILTIN、または他の言語コンストラクトで使用しているオペランドが定数値である場合、その定数値用に初期化された変数ではなく、定数を使用します。たとえば、
%replace array_dim by 10; /* or */ DCL array_dim fixed bin(31) value(10); /* this is a constant NOT a variable */
および
DCL array(array_dim10) fixed bin(31);
は以下と同じです。
DCL array(10) fixed bin(31);
これは、以下の方法よりも大幅に効率が良いです。
DCL arrray_dim fixed bin(31)init(10); DCL array(array_dim10) fixed bin(31);
多くの場合、定数値またはコンパイル時間式を使用することで、コンパイラは、実行時に必要なコードを生成するのではなく、コンパイル時にコードの生成やデータ領域の初期化を行えるようになります。