*===============================================================* * Micro Focus Net Express * * ホスト互換プリプロセッサ * * リリースノート * * マイクロフォーカス ** * 2003年 1月 17日 * *===============================================================* はじめに ======== Micro Focus Net Express のサポートするCOBOL構文は、ANSI規格のみなら ず、幅広い拡張構文をカバーしています。特に IBMメインフレームの各種 COBOLコンパイラとは高い互換性を持っており、ANSI規格の範囲外のメイン フレーム方言を豊富にサポートしています。 しかし、非IBMホスト(日立・富士通など)では、さらに各種の独自文法が あり、Net Expressがサポートしないものもあります。 本プリプロセッサは、これらのうち、既存ホストシステムのシステム移行 で頻繁に問題になるもののいくつかを解決し、日立・富士通のCOBOLコンパ イラの独自拡張構文を許容するものです。 前提事項 ======== Net Express 3.1 JapanizationPack 以降を必要とします。 特徴 ==== 以下の拡張構文をサポートします: (1) 日立COBOL独自の COPY PREFIXING/SUFFIXING文 (2) 30バイトを超える長さの利用者語 (日立・富士通) (3) PIC NC'漢字' 定数 (日立・富士通・NECなど) 本プリプロセッサは、Net Expressの構文解析系に組み込まれて使用される ものですので、お使いのソースファイルをその都度事前に変換する必要は ありません。Net Express のコンパイル指令の設定だけで、上記の構文が そのままコンパイルできるようになります。 提供ファイル ============ compat1.gnt compat2.gnt hashval.gnt プリプロセッサの本体モジュールです。上記 3ファイルを、Net Express がインストールされた \Base\Bin ディレクトリ下へコピーしてください。 SAMPLE1.cbl SAMPLE2.cpy 本プリプロセッサの提供機能を体験していただくためのデモプログラムで す。本リリースノートの後半に、これらを使用したチュートリアルセッシ ョンが記載されています。 readme.txt このリリースノートです。 使用方法 ======== プログラムのコンパイル時に、指令 p(compat2) p(compat1) endp を指定してください。たとえば、コマンド行でコンパイルする場合には、 cobolc SAMPLE1.cbl obj p(compat2) p(compat1) endp; のように指定します。Net Express IDE プロジェクトからビルドする場合 には、たとえば「ビルド設定」の「コンパイル」タブ中の「指令」ボック ス内に、p(compat2) p(compat1) endp を付け加えます。 サポートする拡張構文 ==================== (1) 日立COBOL独自の COPY PREFIXING/SUFFIXING文 COBOLの国際標準では COPY REPLACING文があり、COPYメンバーを取り込む 際に、COPYメンバー中の一部のキーワードを指定された文字列で置換しま す。これに対して、日立COBOL独自の COPY PREFIXING文、COPY SUFFIXING 文は、置換でなく接頭語か接尾語を付加するものです。 本プリプロセッサを使用することにより、この形式のCOPY文を許容するよ うになります。 (2) 30バイトを超える長さの利用者語 (日立・富士通) COBOLの国際標準では、利用者語の長さは30文字までと規定されています。 しかし、現状 Net Express は、これを30バイトと解釈しており、日本語 文字で15文字以上の利用者語を許容していません。 日立・富士通のCOBOLでは、日本語文字も含めて30文字までを許容します。 本プリプロセッサを使用することにより、30バイト以上の長さの利用者語 を許容するようになります。 (3) PIC NC'漢字' 定数 (日立・富士通・NECなど) COBOL 2002 で規格化された各国語文字定数は、N'漢字' の形式です。 Net Express はこれをサポートしています。しかし、非IBMの各社汎用機の COBOLの多くは NC'漢字' の形式をサポートしています。 本プリプロセッサを使用することにより、この形式の文字定数を許容する ようになります。 制限事項 ======== (1) ひとつの COPY文に、PREFIXING と SUFFIXING の両方を指定すること は出来ません。 (2) SOURCEFORMAT(FREE) 指令による自由形式ソースファイルには対応して いません。 (3) HTMLPPプリプロセッサによる CGIサポートと同時使用することは出来 ません。 (4) この他のユーザ作成による統合化プリプロセッサを P指令で共用する ことはできません。 (5) アニメータによるデバッグ中に、30バイト以上の長さのデータ項目を クリックしても、値のクエリーや定義個所へのリンクはできません。 (6) アニメータによるデバッグ中に、30バイト以上の長さのデータ項目が IF文などの条件文に使用されている場合、その内部の文はステップ実行で きません。これはアニメータの設計がプロプロセッサによる内部的な名称 変換に対応していないことによります。 (7) 30バイト以上の長さのデータ項目が継続行にまたがって書かれている いる場合には対応していません。コンパイルエラーとなります。 チュートリアルセッション ======================== (1) プリプロセッサの本体モジュールを、Net Express がインストールされ た \Base\Bin ディレクトリ下へコピーします。 (2) Windows スタートメニューから「Net Expressコマンドプロンプト」を 開きます。 (3) 作業用のディレクトリを作成しカレントディレクトリとします。 (4) 添付の SAMPLE1.cbl、SAMPLE2.cpy をコピーします。 (5) まず通常に SAMPLE1.cbl をコンパイルしてみます: > cobolc SAMPLE1.cbl nognt; (6) 例題プログラムには Net Expressが本来サポートしていない構文が使わ れていますので、以下のような構文エラーが多数報告されます: 15 COPY SAMPLE2 SUFFIXING -WK0002. * 9-S**************************************** ** ピリオドがない 19 PERFORM 該当口座残高チェック初期設定処理. *1006-E***************************************************** ** 31文字以上のCOBOL語 - 切り捨てる 32 WHEN NC'あ' * 12-S********************** ** 作用対象 NC が宣言されていない (7) 次に、プリプロセッサを使用してコンパイルします: >cobolc SAMPLE1.cbl p(compat2) p(compat1) endp list() anim nognt; Micro Focus Net Express V3 Version 3.1.11 Copyright (C) 1984-2002 Micro Focus International Ltd. URN AXCGG/AA0/00000 * チェック終了:エラーはありません このようにエラー無くコンパイルが完了します。 (8) これをアニメートしてみます。 >mfnetx /debug:SAMPLE1.int これで Animator が起動し、サンプルプログラムをそのままプリコンパイル前 の状態でデバッグできます。 (9) ディレクトリの内容をすべて削除し、再び SAMPLE1.cbl と SAMPLE2.cpy をコピーします。 (10) Windows スタートメニューから「Net Express」を選択し、IDEをスター トします。 (11) 「ファイル」>「新規作成」>「プロジェクト」で、カレントディレクト リにプロジェクトを新規作成し、SAMPLE1.cbl をプロジェクトに追加します。 (12) 「プロジェクト」>「プロパティ」で、プロジェクト指令ボックスに、 p(compat2) p(compat1) endp を追加します。 (13) プロジェクトをビルドし、アニメートしてみてください。 ========================================================================= Micro Focus is a registered trademark of Micro Focus International Limited. Micro Focus COBOL, Net Express and Server Express are all trademarks of Micro Focus International Limited. ========================================================================= Copyright(C)1992-2003 Micro Focus International =========================================================================