Share via


複数の言語でのソース コードの動的な生成とコンパイル

.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
    実行時にコードを生成およびコンパイルするためのインターフェイスを定義します。
  • CodeDOM クイック リファレンス
    ソース コードの要素を表す CodeDOM 要素を簡単に検索するための方法が用意されています。