PL/I サポート

Open PL/I は ANSI 規格の PL/I コンパイラとして設計され、現在でも使用されています。移行にご関心のあるお客様は、既存の PL/I アプリケーションへの変更を想定する必要があり、プログラムの移植性を高めるために、独自のメインフレーム構文を削除したり、動作の違いに対処したりする必要があります。

コンパイラ

  • PL/I は、Windows 上で、32 ビットおよび 64 ビット モードでのコンパイル、リンク、デバッグが可能です。

マクロ プリプロセッサ

  • Micro Focus PL/I マクロ プリプロセッサでは、ほとんどの IBM PP(MACRO) 関数がサポートされています。PP(PLX) は、非推奨の KEYS オプション用にのみサポートされています。PLX の既存のサポート内容がさらに拡張される予定はありません。

構文

  • Sun 版の Open PL/I での浮動小数点定数の内部表現は、IBM RS6000 の浮動小数点定数の内部表現と異なる場合があります。
  • コンパイラは、次元属性がパラメーター リストで使用されている場合、実際のパラメーターおよびエントリ宣言内のパラメーター リストの間の不一致は診断しません。
  • 配列引数を配列以外のパラメーターに渡すと、診断は生成されません。
  • PUT FILE 文は、ファイルに書き込まれるデータの前に文字を追加します。
  • Enterprise Developer 2.2 より前のバージョンでは、リトル エンディアン プラットフォームで mfplx を使用してコンパイルする際に -cics-ims、または -mvs オプションを使用すると、エラーが生じる可能性がありました。Enterprise Developer 2.2 以降では、mfplx で自動的にコンパイルする際に、-cics-ims、または -mvs オプションも -bigendian を使用するため、これらのエラーは発生しなくなります。

    以前のリリースを使用してビルドしたアプリケーションを評価して、使用中のデータ ファイルへの影響を判断してください。

CodeWatch

  • CodeWatch ユーザーズ ガイドの後半に記載のサンプル デモ セッションは、このバージョンの CodeWatch と正確には一致しない場合があります。
  • CodeWatch は、REFER オプションを使用して配列の次元を宣言すると、ベース構造内の配列を評価できません。
  • 特定の組み込み関数を含む式を評価する際、特に不正確な引数 (型や個数が誤っている場合など) が提供された際に問題が生じる場合があります。
  • CodeWatch を使用する場合、BASED 配列および CONTROLLED 配列の評価 (EVALUATE) は機能しません。
  • CodeWatch を使用する場合、EVALUATE は POSITION 属性を使用できません。
  • WIDECHAR データ型がサポートされているプラットフォームでは、CodeWatch が許容するのは WIDECHAR 変数の評価のみです。現在、WIDECHAR 式の評価はサポートされていません。

    WIDECHAR 変数の評価では、ASCII 範囲外の半バイトペアは「.」文字として表示されます。EVALUATE コマンドに /h オプションを指定すると、各バイトペアの 16 進値が表示されます。次に例を示します。

    dcl wc wchar (16) init('003900370038'Wx);
    
    ...
    
    eval wc
    
    WC = .9.7.8. . . . . . . . . . . . .  {widechar (16)}
    
    eval /h wc
    
    WC = 00 39 00 37 00 38 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 (hex)  {widechar (16)}

Visual Studio PL/I デバッガー

  • 変数監視ポイントおよび行ブレークポイントの式では、一重引用符のみがサポートされます。つまり、二重引用符はサポートされません。
  • 監視ポイントのサポートは、Visual Studio 2019 でのみ利用できます。
  • 実行中のブレークポイントの現在のヒット カウントはサポートされていません。
  • このリリースでは、[Autos] パネル (現在のプロシージャの変数) はアクティブになりません。
  • 同じ名前の変数が複数の PL/I プロシージャに存在していると、変数監視ポイント機能で問題の原因になることがあります。これは、監視ポイントが設定された時点で変数の範囲を特定できないという Visual Studio の制限によるものです。
  • このリリースでは、GreaterThanEqualTo モードの HitCondition のみがサポートされています。
  • Visual Studio IDE では、デバッガーによる PL/I のシグナル処理および条件処理をアクティブ化することはサポートされません。回避策については、「Catching signals and PL/I conditions using environment variables」を参照してください。