Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, コンパイラーおよびランタイム 移行ガイド

RULES(NOLAXDCL)

RULES(LAXDCL) を指定すると、コンパイラーは、宣言されていない 変数ごとに、I レベルのメッセージのみを発行します。 これに対し、RULES(NOLAXDCL) を指定すると、E レベルのメッセージが出力されます。

コードに十分な品質を与えようとするのであれば、 常に RULES(NOLAXDCL) を指定してコンパイルする必要があります。

しかし、Windows 上でこのオプションをデフォルトにした際、 非常に多くのユーザーから苦情が寄せられたため、現在ではデフォルトではありません

次のコードを、RULES(NOLAXDCL) を指定してコンパイルするとします。

   x: proc( starting_role ) returns( fixed bin(31) );
     dcl starting_role fixed bin(31);
     return( starring_role + 1 );
  end;

すると、コンパイラーは、starring_role が宣言されていないという E レベル のメッセージを出力します。これにより、 この名前がほぼ確実にタイプミスであることが警告されます。 これは、このコンパイラー・オプションを指定する必要性を示す 1 つの 例です。

オプション RULES(NOLAXDCL) は、「実際に動作する」コードにもフラグを立てる場合があります。

     read_in = fileread( file_in, addr(buffer), stg(buffer) );

     if read_in = 0 then
       leave;

read_in が宣言されていない場合でも、このコードは動作します。 しかし、read_in は属性として FLOAT を持つため、 これは好ましくありません。


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)