.NETフレームワーク上では,システム側に基本クラスライブラリがコンポーネントとしてサポートされ,中間言語コンパイラを搭載することにより,各ソフトウェアのシステムへの依存度を低くし,システム変更による影響が小さくなるようになっています.中間言語というと,昔から有名なPASCALのP-CODEや,最近ではJavaの中間言語などがありますが,中間言語はネイティブコードに比べて実行速度が低下するといった欠点があります.

 そこで,.NETフレームワークでは,中間言語対応のネイティブコンパイラが搭載され,インストール時や実行時には用途や目的に応じてネイティブコンパイラが動作し,ネイティブコードで実行されます.

 こうしたことはMS-DOSの頃にも行われていましたが,今になって再びシステムレベルでの中間言語のサポートが見直され始めたということです.これは,システムやプロセッサに依存しないという利点と,JIT(Just In Time)コンパイラ技術が向上し,ネットワークテクノロジとしての有用性がはっきりしてきたためだと思います.

 図6に,中間言語ディスアセンブラの画面を示します.

〔図6〕IL実行プログラムのデバッグ画面

 (約95Kバイト)

 (約85Kバイト)

(a)EXEプログラムの内部公開メソッドツリービュー

(b)ツリービューを選択すると表示されるデバッグ画面

● ILの利点
 ILの利点は,何といってもOSやプロセッサに依存しないという点です.プロセッサに依存しないため,CPUの種類ではなく,.NETプラットホームであるかどうかが問われることになります.

 ILのサポートさえ行われていれば,プロセッサの種類や環境とは関係なく,アプリケーションやコンポーネントなどをそのまま動作させられます.これにより,基本技術の継承や再利用がさらに容易になるということです.

 ILを実行するためには,ILをネイティブコードにする実行用のコンパイラか,VM(Virtual Machine)が必要になります.そうした中間層を持つことで,ガーベジコレクションなどのメモリ管理やバージョニング管理などが意識して行われるばかりでなく,実行時のセキュリティ機構などにより,より安全にサーバを動作させることができるようになります.

トップページへ戻る 

プロローグ
次のVisual Studio
.NETの実行モデル
.NET IL(Intermeditate Language)
C#について
C#の概要

 


Copyright 2000 広畑 由紀夫