私は .net フレームワークの理論的概念を学んでいます (wiki と google を使用)。このwiki の画像からわかるように、.net フレームワークでのコンパイルおよび実行プロセスの主要な (そして最も基本的な) ビューでは、c#、j#、vb.net などのさまざまなソース コードがコンパイルされて、 CLIコード(共通中間言語コード)と呼ばれるプラットフォームに依存しないバイトコード。これは、ネイティブコードと呼ばれるプラットフォーム依存のコードにコンパイルされます(または解釈されますか?)。このコードは、特定のプラットフォームで問題なく簡単に実行できるように作成されています。しかし、ソースコードからバイトコードへのコンパイル段階の詳細な説明については、ここで説明されているように混乱しました。私の質問は次のとおりです。
- CIL コードがこのアセンブリ、PE 形式、およびマニフェストに格納されているのはなぜですか?
- 彼らは何ですか?
- それをネイティブの実行可能コードに直接変換してみませんか。また、CIL コードは 1) バイトコード (実行可能コードに解釈される) にコンパイルされることにも言及されています。または 2) バイナリ実行可能コードに。
- .net がこれら 2 つの手法を個別に適用するプラットフォームの例を挙げていただけますか? 簡単な言葉で説明してください。
前もって感謝します。