ページの本文へ

Hitachi
お問い合わせお問い合わせ

COBOL2002:FAQ:移行性・互換性に関するご質問

Q1. COBOL2002製品は、上位互換がありますか?

COBOL2002製品は、上位互換があります。COBOL2002で作成したプログラムは、そのバージョン、リビジョンが同じか、それ以降のバージョン、リビジョンの運用環境で動作させることができます。バージョン、リビジョンが同じかそれ以降の運用環境であれば、修正パッチ番号(※1)は同じでなくても動作させることができます。
例えば、Windows版COBOL2002 04-00-02で作成したプログラムをWindows版COBOL2002 04-00やWindows版COBOL2002 04-10の運用環境で動作させることはできますが、Windows版COBOL2002 03-05の運用環境で動作させることはできません。
注※1 修正パッチ番号とは、製品のバージョン、リビジョンを表す「vv-rr-ss」の「ss」(2けたの数字)の部分を示します。

Q2. Windows版COBOL85 Version 7で作成したプロジェクトファイルがあるのですが、Windows版COBOL2002でも使用できますか?

Windows版COBOL85 Version 7で作成したプロジェクトファイルはWindows版COBOL2002で使用できます。ただし、いったんWindows版COBOL2002で使用したプロジェクトファイルはCOBOL2002専用プロジェクトファイルとなり、Windows版COBOL85 Version 7ではその後使用できませんのでご注意が必要です。
プロジェクトファイルの移行時の注意事項については、Web公開しているCOBOL2002 ユーザーズガイドの付録を参照願います。

Q3. Windows版COBOL85 Version 7で作成したDLLや実行可能ファイルは、そのままWindows版COBOL2002で使用できますか?

Windows版COBOL2002では使えません。Windows版COBOL2002で再コンパイルして、DLLや実行可能ファイルを作り直してください。また、Windows版COBOL85 Version 7で作成したオブジェクトファイル(.o)も使えませんので、再コンパイルが必要です。

Q4. Windows版COBOL2002 01-xxで作成した実行可能ファイル(EXE)やDLLなどの既存資産があるのですが、そのままWindows版COBOL2002 04-xxで使用できますか?

Windows版COBOL2002 01-xxで作成した実行可能ファイル(EXE)やDLLをWindows版COBOL2002 04-xxに移行する場合、次の注意事項があります。

(1)ISAMによる索引編成ファイルを使用したオブジェクト(.obj、.lib)は移行できません。移行する場合は、再コンパイルが必要です。

(2)以下の個所に日本語などの多バイト文字を使用して作成した実行可能ファイルやDLLファイルは、プログラムを構成する実行可能ファイルやDLLファイルのすべてを再コンパイルしない場合、移行性があります。再コンパイルする場合は、すべての実行可能ファイルやDLLファイルを再コンパイルしてください。また、以下の個所に日本語などの多バイト文字を使用して作成したライブラリファイルやオブジェクトファイルを移行するときは、再コンパイルしてください。

プログラム名/クラス名/インタフェース名/関数名
XML連携機能のインタフェース名

その他のWindows版COBOL2002 04-xxに関する注意事項は、以下を参照してください。

また、COBOL2002 V1からCOBOL2002 V4への移行性・互換性については、Web公開しているCOBOL2002 ユーザーズガイドの付録を参照願います。

Q5. Linux版COBOL2002 01-xx、Linux版COBOL2002 03-xxで作成した実行可能ファイルや共用ライブラリをRed Hat Enterprise Linux 8またはRed Hat Enterprise Linux 9上で実行することはできますか?

Red Hat Enterprise Linux 8またはRed Hat Enterprise Linux 9で実行できます。
ただし、実行可能ファイルや共用ライブラリを作成したOSのバージョンによっては、実行するOSでの再リンクが必要です。

・Red Hat Enterprise Linux 8の場合
Linux版COBOL2002 04-11以降をインストールした環境で実行できます。
Red Hat Enterprise Linux 5で作成した実行可能ファイルや共用ライブラリの場合、
Red Hat Enterprise Linux 8での再リンクが必要です。
これは、Red Hat Enterprise Linux 8のApplication Compatibility GUIDEによるものです。

・Red Hat Enterprise Linux 9の場合
Linux版COBOL2002 04-60以降をインストールした環境で実行できます。
Red Hat Enterprise Linux 5またはRed Hat Enterprise Linux 6で作成した実行可能ファイルや共用ライブラリの場合、Red Hat Enterprise Linux 9での再リンクが必要です。
これは、Red Hat Enterprise Linux 9のApplication Compatibility GUIDEによるものです。

また、COBOL2002製品以外のオブジェクトやアーカイブをリンクしている場合、各製品のOSの対応状況(*1)を製品ホームページなどでご確認の上、必要であれば、再リンクしてください。

*1 日立ミドルウェア製品のRed Hat Enterprise Linux 9、Red Hat Enterprise Linux 8の対応状況については、 以下でもご確認いただけます。
日立ミドルウェア製品のRed Hat Enterprise Linux 9の対応状況
日立ミドルウェア製品のRed Hat Enterprise Linux 8の対応状況

Q6. 32ビット版のCOBOL2002で作成したCOBOLソースは、そのまま同じプラットフォームの64ビット版のCOBOL2002で使用できますか?

64ビット版のCOBOL2002の言語仕様は、同じプラットフォームの32ビット版のCOBOL2002とソースレベルで高い互換性がありますが、次の点等の見直しが必要です。

・アドレスデータ項目等のアドレス系データを表現する構文
・LENGTH関数等で8バイト2進となるデータ長を表現する構文

注意事項などの詳細は、Web公開している以下のマニュアルを参照ください。

・Windows    COBOL2002 ユーザーズガイド  64bitアプリケーションの作成
・UNIX         COBOL2002 使用の手引き  手引編  64bitアプリケーションの作成

なお、関連製品が各プラットフォームの64ビット版に対応していないため、未サポートの機能もあります。詳細は担当営業にご相談ください。

Q7. Windows版COBOL2002で作成した実行可能ファイル(EXE)やDLLは、そのままWindows版COBOL2002(64ビット版)で使用できますか?

Windows版COBOL2002で作成した実行可能ファイル(EXE)やDLLは、Windows版COBOL2002(64ビット版)では使えません。Windows版COBOL2002(64ビット版)で再コンパイルして、実行可能ファイル(EXE)やDLLを作り直してください。また、Windows版COBOL2002で作成したオブジェクトファイル(.obj)やライブラリファイル(.lib)も、Windows版COBOL2002(64ビット版)で作成したオブジェクトとリンクできませんので再コンパイルが必要です。

Q8. 32ビット版のCOBOL2002で作成した実行可能ファイルや共用ライブラリは、同じプラットフォームの64ビット版のCOBOL2002で使用できますか?

使用できません。同じプラットフォームの64ビット版のCOBOL2002で再コンパイルして、実行可能ファイルや共用ライブラリを作り直してください。また、32ビット版のCOBOL2002で作成したオブジェクトファイル(.o)も、同じプラットフォームの64ビット版のCOBOL2002で作成したオブジェクトとリンクできませんので再コンパイルが必要です。

Q9. Windows版COBOL2002 Net Server Suite 02-xxを使用してコンパイルし、実行可能ファイル(.exe)やライブラリを生成しています。これをCOBOL2002 Net Server Suite 04-xxで使用する場合、再コンパイルが必要ですか?

Pro*COBOLなど連携製品のライブラリに変更がなけば、実行可能ファイルとライブラリは、そのまま移行が可能です。

移行の際に注意事項がありますので、以下を参照してください。

Q10. COBOL2002開発環境製品のバージョンを04-00へ上げた場合、サーバで使用している運用環境製品のバージョンも上げる必要はありますか?

バージョン04-00の開発環境製品でコンパイルする場合は、運用環境製品のバージョンも上げる必要があります。
運用環境製品のバージョンは、04-00以降のバージョンにしてください。

Q11. 日立以外のCOBOLで作成したCOBOLソースは、COBOL2002で使用できますか?

COBOL言語仕様はCOBOL国際規格で規定されているため、規格が規定した言語仕様の範囲で互換性があります。しかし、各社独自の拡張仕様があり、拡張仕様に関しては互換性がありません。

Q12. UNIXの開発・運用環境製品としてV1、開発端末としてWindows開発環境製品のV1を使用しています。開発端末をWindows10にするにあたり、Windows開発環境製品をV1からバージョンアップが必要となりますが、Windows開発環境製品のバージョンアップは可能でしょうか?

Windows開発環境製品のバージョンアップは可能です。
Windows開発環境製品(V4)を使って開発する際は、次の点をご注意ください。

  • UNIX開発・運用環境製品(V1)でのサポート機能の範囲で開発してください。
  • XML連携機能を使用する場合、UNIX開発・運用環境製品(V1)で生成したXMLアクセスルーチンを使用して運用してください。

Q13. COBOL85製品および旧バージョンのCOBOL2002からの移行性・互換性に関する情報は、どのドキュメントを参照すればよいですか?

COBOL85製品および旧バージョンのCOBOL2002からの移行性・互換性に関する情報は、次のマニュアルを参照してください。

  • Windows版COBOL2002 04-xxの場合
    Web公開しているCOBOL2002 ユーザーズガイド(3021-3-600)付録Bを参照願います。
  • Linux版COBOL2002 04-xx、UNIX版COBOL2002 04-xxの場合
    Web公開しているCOBOL2002 使用の手引 手引編(3021-3-602)付録Bを参照願います。

Q14. 移行前と移行後で演算の結果が異なります。調査方法を教えてください。

プログラムの動作が保証されないデータ項目が含まれている可能性があります。
次の機能を利用して、プログラムの動作が保証されないデータ項目が含まれているか、チェックしてください。

  • ・データ例外検出機能
    格納値がデータ項目の属性と矛盾しているデータ項目は、プログラムの動作が保証されません。
    アプリケーションデバッグ機能のデータ例外検出機能を利用すると、格納値がデータ項目の属性と矛盾している場合、デバッグ実行時にデータ例外エラーとなり、プログラムの動作が保証されないデータ項目をチェックできます。

  • 初期化漏れチェック機能
    初期化されていないデータ項目は、プログラムの動作が保証されません。
    初期化漏れチェック機能を利用すると、コンパイル時にデータ項目の初期化漏れを検出し、プログラムの動作が保証されないデータ項目をチェックできます。