動的なソース コードの生成とコンパイル

.NET Framework には、CodeDOM (Code Document Object Model) と呼ばれる機構が用意されています。CodeDOM を使用すると、ソース コードを出力するプログラムの開発者は、レンダリング対象となるコードを表す単一のモデルに基づいて、実行時に複数のプログラミング言語でソース コードを生成するプログラムを開発できます。

ソース コードを表現するために、CodeDOM 要素が相互にリンクされ、CodeDOM グラフと呼ばれるデータ構造体が形成されます。このデータ構造体は、ソース コードの構造をモデル化します。

System.CodeDom 名前空間は、特定のプログラミング言語に依存せずに、ソース コードの論理構造を表すことができる型を定義します。 System.CodeDom.Compiler 名前空間は、CodeDOM グラフからソース コードを生成し、サポートされている言語でソース コードのコンパイルを管理する型を定義します。 コンパイラの販売元および開発者は、サポートされている言語のセットを拡張できます。

言語に依存しないソース コードのモデル化は、プログラムで複数の言語または不特定の対象言語のプログラム モデルのソース コードを生成する必要がある場合に役立ちます。 たとえば、言語の CodeDOM サポートが利用できる場合は、デザイン時に CodeDOM を言語抽象化インターフェイスとして使用し、適切なプログラミング言語でソース コードを生成できます。

.NET Framework には、C# 用、JScript 用、および Visual Basic 用のコード ジェネレーターとコード コンパイラが用意されています。

このセクションの内容

参照

  • System.CodeDom
    共通言語ランタイムを対象とするプログラミング言語のコード要素を表す要素を定義します。

  • System.CodeDom.Compiler
    実行時にコードを生成およびコンパイルするためのインターフェイスを定義します。

関連項目