手続き型 COBOL とマネージ COBOL の比較

手続き型 COBOL は、.NET および JVM 用の新しい構文が追加されていない通常の COBOL です。これは、Net ExpressServer Express、および Mainframe Express アプリケーションの記述に使用される COBOL であり、現在も積極的にサポートされています。

ネイティブ コードまたは (ほとんどの場合) マネージ コードにコンパイルすることができます。コア COBOL 構文は、マネージ コードでサポートされます。ただし、サポートされていない機能もいくつかあります (たとえば、Panels V2、Dialog System、ACUCOBOL-GT)。これは、既存のほとんどの COBOL アプリケーションを再コンパイルしてマネージ アプリケーションを作成できることを意味します。

マネージ COBOL

マネージ COBOL とは、.NET COBOL および JVM COBOL の総称です。

マネージ COBOL は、.NET および JVM フレームワークをサポートする拡張機能を備えた COBOL です。マネージ COBOL は、OO 構文サポートと、使用可能なクラス ライブラリへのアクセスを許可する構文を提供します。

マネージ COBOL をコンパイルすると、コンパイラはマネージ コード (.NET framework 用の .il) を生成します。

マネージ コードとネイティブ コード

ユーザーは、ilgen コンパイル指令を使用して、COBOL プログラムをマネージ コードにコンパイルすることができます。マネージ COBOL プロジェクトを使用している場合、これは IDE 内から自動的に行われます。

コンパイラにより、中間言語 (.il) が作成されています。

COBOL と他のすべての .NET 言語 (C# や VBなど) は、このフォーマットにコンパイルされます。このフォーマットは、混合言語アプリケーションの記述を容易にします。

また、ネイティブ コード アプリケーションも作成できます。Visual Studio には、ネイティブ COBOL プロジェクトのテンプレートが用意されています。

コンパイラは、ネイティブ コンパイルの結果として .exe/.dll を生成します。

ネイティブ COBOL アプリケーションは、オペレーティング システムに利用できる適切な管理サービスを呼び出す必要がありますが、マネージ アプリケーションは、ランタイムによって提供される管理サービス (例外処理、ガベージ コレクション、スレッド管理など) を利用できます。

ランタイム

中間言語 (.il ファイル) は、Microsoft の Common Language Runtime (CLR) を実行する Windows プラットフォームに実行用に展開できます。

.NET Framework 向けに作成されるすべてのプログラムは、Microsoft の Common Language Runtime (CLR) によって実行されるため、シームレスな混合言語アプリケーション プログラミングが可能です。

CLR のジャストインタイム (just-in-time; JIT) コンパイラは、.il をオペレーティング システムに対してネイティブなコードにコンパイルします。CLR は、メモリ管理、例外処理、ガベージ コレクション、スレッド管理などの追加のサービスを提供します。

ネイティブ アプリケーションとマネージ アプリケーションの開発

ネイティブ アプリケーションとマネージ アプリケーションのどちらの場合でも、その開発、コンパイル、およびデバッグには IDE を使用します。ユーザーは、新しい COBOL コードを記述するか、既存の COBOL アプリケーションを (場合によってはコード変更なしで) マネージ コードまたはネイティブ コードに再コンパイルすることができます。

Enterprise Server によって提供されるランタイム システムでは、アプリケーションをディプロイしてデバッグもできます。

.NET COBOL アプリケーションは、Microsoft の CLR を実行している Windows プラットフォームにディプロイされます。