ネイティブ COBOL と .NET COBOL の比較

ネイティブ COBOL と .NET COBOL は、コンパイル方法とランタイム管理サービス (セキュリティ、スレッド、およびメモリ管理など) の提供方法が異なります。

.NET プラットフォーム上の .NET COBOL は Microsoft Intermediate Language (IL) に、ネイティブ COBOL はマシン コードにコンパイルされます。.NET COBOL とネイティブ COBOL はともに、コンパイルされればサポート対象のいずれの Windows プラットフォームで実行できます。

.NET コードの場合、管理サービスは Microsoft Common Language Runtime (CLR) によって提供されます。ネイティブ COBOL の場合、管理サービスはオペレーティング システムで提供され、コードはオペレーティング システムに応じて適切なサービスを呼び出す必要があります。管理サービスにより、COBOL プログラムと他の .NET 言語で記述されたプログラムはシームレスに相互運用できます。

.NET コードとは

.NET コードは、Microsoft Intermediate Language (IL) にコンパイルされます。IL は、作成したコードのクラス、メソッド、および属性 (セキュリティ要件など) を記述するメタ データと一緒に、アセンブリに保存されます。

.NET コードは、Microsoft Common Language Runtime (CLR) で実行されます。CLR は、Just In Time (JIT) コンパイルを行います。これは、アセンブリをロードする際、最初の実行時に CLR がアセンブリ コードを JIT するということです。アプリケーション ロード時のパフォーマンス ペナルティがわずかにありますが、CLR はコードをコンパイルするため、(次に再起動されるまで) コンパイルは再実行されません。

CLR は、実行時にアプリケーション コードの管理を行い、セキュリティ、メモリ管理などを提供します。

ネイティブおよび .NET COBOL アプリケーションのビルド

ネイティブ コードと .NET COBOL コードのどちらについても、IDE でアプリケーションの開発、コンパイル、およびデバッグが可能です。

ユーザーは、新しい COBOL コードを記述するか、既存の COBOL を (場合によってはコード変更なしで) .NET COBOL コードまたはネイティブ コードとして再コンパイルすることができます。

Enterprise Server によって提供されるランタイム システムでは、ネイティブ アプリケーションをディプロイして、さらにデバッグすることができます。.NET COBOL アプリケーションは、.NET Framework を実行している Windows プラットフォームにディプロイされます。