Rational Developer for System z
COBOL for Windows バージョン 7.5 プログラミング・ガイド


コンパイルするメインフレーム・アプリケーションの取得

プログラムをメインフレームから Windows ベースのワークステーションに移行して、この新しい環境でコンパイルする場合は、正しいコンパイラー・オプションを選択して、メインフレームでの COBOL 言語の機能を可能にする必要があります。 COPY ステートメントを使用して、プログラムの移植に役立てることもできます。

正しいコンパイラー・オプションの選択: COBOL for Windows では、特定のメインフレーム COBOL コンパイラー・オプションが適切でない場合、そのコンパイラー・オプションはコメントとして扱われます。 これにより、予測不能な結果が生じる可能性があります。コンパイラーは、オブジェクトに W レベルのメッセージでフラグを立てます。

NOADV
NOADV を使用する必要のあるプログラムは装置制御文字に依存するため、一般には移植できません。 プログラムが NOADV に依存する場合は、言語仕様がプリンター制御文字をファイルのレベル 01 のレコードの先頭文字として想定しないように、プログラムを修正してください。

メインフレーム COBOL の言語機能の可能化: 次の言語機能は、メインフレーム COBOL では有効ですが、COBOL for Windows でのコンパイル時にはエラーが発生するか、または予測不能な結果が生じる可能性があります。 次の表に、考えられる問題に対する解決策を示します。

表 64. メインフレーム COBOL とは異なる言語機能
メインフレーム上の言語機能 COBOL for Windows の動作 解決策または制約事項
ACCEPT および DISPLAY ステートメント COBOL 環境変数を検査して、DISPLAY または ACCEPT ステートメントのターゲットを判別します。 メインフレーム・プログラムが ACCEPT または DISPLAY ステートメントのターゲットとしてホスト DD 名を期待する場合は、値が適切なファイル名に設定された同等の環境変数を使用して、これらのターゲットを定義します。
ASSIGN 文節 assignment-name に基づいたシステム・ファイル名に対し、異なる構文およびマッピングを使用します。 ASSIGN 文節 (「COBOL for Windows 言語解説書」) を参照してください。
CALL ステートメント ファイル名を CALL 引数として使用できません。  
CLOSE ステートメント FOR REMOVAL 句、WITH NO REWIND 句、および UNIT/REEL 句をコメントとして扱います。 これらの句を移植可能プログラムに使用しないでください。
LABEL RECORD 文節 LABEL RECORD IS data-name 句、USE. . . AFTER. . . LABEL PROCEDURE 句、および GO TO MORE-LABELS 句をエラーとして扱います。 z/OS QSAM 対応のユーザー・ラベル処理に依存するプログラムは移植できません。
PROCEDURE-POINTER データ項目 4 バイト (メインフレーム上で 8 バイト) です。  
RERUN 文節 RERUN 文節をコメントとして扱います。  
SHIFT-INSHIFT-OUT 特殊レジスター CHAR(EBCDIC) コンパイラー・オプションが有効でないと、これらのレジスターが検出されたときに E レベルのメッセージが出されます。 CHAR(EBCDIC) コンパイラー・オプションを使用します。
SORT-CONTROL 特殊レジスター このレジスターによって識別されたシステム・ファイル名のファイル命名規約に従います。 Windows ワークステーションとメインフレームでは命名規則が異なることに注意してください。
STOP RUN マルチスレッド・プログラムではサポートされません。 STOP RUN を、C exit() 関数への呼び出しと置き換えます。
WRITE ステートメント WRITE. . . ADVANCING を環境名 C01-C12 または S01-S05 で指定した場合は、ADVANCING句を無視します。  

移植の問題に役立つ COPY ステートメントの使用: 多くの場合、COPY ステートメントを使用してプラットフォーム固有のコードを分離すると、移植性の問題を回避することができます。 例えば、あるプラットフォーム用のコンパイル時にプラットフォーム固有のコードを組み込み、別のプラットフォーム用のコンパイル時にはそのコードを除外することができます。また、COPY REPLACING 句を使用して、ファイル名などの移植不可能なソース・コード・エレメントをグローバル変更することも可能です。

関連参照
ランタイム環境変数
付録A. ホスト COBOL との違いの要約
COPY ステートメント (「COBOL for Windows 言語解説書」)


ご利用条件 | フィードバック

Copyright IBM Corporation 1996, 2008.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)