プロジェクトなしでの既存プログラムのコンパイル

Visual COBOL には多数の機能拡張および変更が含まれているため、以前の Micro Focus 製品を使用してコンパイルされたアプリケーションは、Visual COBOL を使用してソースから再コンパイルする必要があります。

Micro Focusでは、Server Express で行うようにまずプロジェクトなしでコンパイルすることをお勧めします。これにより、環境の変更後にコンパイルの問題が発生した場合にその解決に注力できます。その後、IDE によって提供されるすべての利点を活用するために、Visual COBOL プロジェクトを作成することを検討できます。

UNIX マシン上で端末ウィンドウから既存のプログラムを直接コンパイルするには:

  1. 既存の COBOL プログラムが保存されているリモート マシンに Micro Focus Visual COBOL UNIX コンポーネントがインストールされていることを確認します。
  2. リモート マシンにログオンし、端末ウィンドウから、環境を構成し、cob コマンドまたは Server Express でアプリケーションをビルドするために使用されるビルド スクリプトかメイクファイルを使用してプログラムをコンパイルします。

Visual COBOL には .int.gnt、または .o ファイルを作成するための cob ユーティリティも用意されているため、Server Express で作成されたプログラムのほとんどは、コードの変更なしに、既存のビルド スクリプトおよびメイクファイルを使用して正常にコンパイルできます。

コンパイルに関する問題の修正

Micro Focus は COBOL 言語を継続的に拡張しているため、Visual COBOL で既存の Server Express アプリケーションをコンパイルするときに特定の問題が発生する可能性があります。

たとえば、COBOL の予約語のリストは COBOL 言語の新しいレベルごとに変わるため、以前の Micro Focus 製品で作成されたアプリケーションは、Visual COBOL で新たに予約キーワードになったデータ名を使用していることがあります。この状況になった場合、COBOL 構文エラー COBCH0666 ("予約語をデータ名として使用している。またはデータ記述修飾語に誤りがある") が発生します。予約語および予約語がサポートされるレベルの包括的なリストについては、本製品のヘルプの「予約語一覧表」を参照してください。

また、以下の Server Express コンパイラ指令はサポートされなくなりました。

  • 01SHUFFLE
  • 64KPARA
  • 64KSECT
  • AUXOPT
  • CHIP
  • COBIDY
  • DATALIT
  • EANIM
  • EDITOR
  • ENSUITE
  • EXPANDDATA
  • FIXING
  • FLAG-CHIP
  • MASM
  • MODEL
  • OPTSIZE
  • OPTSPEED
  • PARAS
  • PROTMODE
  • REGPARM
  • SEGCROSS
  • SEGSIZE
  • SIGNCOMPARE
  • SMALLDD
  • TABLESEGCROSS
  • TRICKLECHECK
  • WB2
  • WB3
  • WB
以下の Server Express 環境変数の擬似変数も廃止されており、使用できません。
  • BASENAME
  • FILENAME
  • PATH
  • TARGETDIR

この問題を解決するには、次の対処方法を検討する必要があります。

  • ソースを書き換えて、コードおよび指令ファイルでこれらのキーワードを使用しないようにします。
  • REMOVE コンパイラ指令を使用して、個々のキーワードを予約語リストから削除します。
  • MF または MFLEVEL コンパイラ指令を使用して、コードと互換性のある以前のバージョンの Micro Focus COBOL を選択します。たとえば、設定MFLEVEL"12" により、Mainframe Express 3.0 および 3.1、Net Express 4.0、5.0、および 5.1、Server Express 4.0、5.0、および 5.1 との互換性が確保されます。既存の予約語に対するサポートを確保するために使用する値については、本製品のヘルプの「予約語一覧表」を参照してください。

端末ウィンドウから (または後で Eclipse のエディターで) REMOVE を使用するには、次のように入力します。

cobol myprogram.cbl remove(title) ;

上記のコマンドはキーワードとしての TITLE を言語から削除するため、それを COBOL プログラムの識別子として使用できるようになります。

Server Express v5.1 WrapPack 5 で使用されていた予約語のセットを使用するには、次のコマンド ラインを使用します。

cobol myprogram.cbl mflevel"15" ;

上記指令のいずれかをソース コードで設定するには、$ で始まる次の行を COBOL プログラムの指示領域に入力します。

$set remove "title"

または

$set mflevel"15"