Compilar e gerar código-fonte dinâmico

O .NET inclui um mecanismo chamado Code Document Object Model (CodeDOM) que permite aos desenvolvedores de programas que emitem código-fonte gerar código-fonte em várias linguagens de programação em tempo de execução, com base em um único modelo que representa o código a ser renderizado.

Para representar o código-fonte, os elementos do CodeDOM são vinculados uns aos outros para formar uma estrutura de dados conhecida como um grafo CodeDOM, que modela a estrutura de parte do código-fonte.

O namespace System.CodeDom define tipos que podem representam a estrutura lógica do código-fonte, independente de uma linguagem de programação específica. O namespace System.CodeDom.Compiler define tipos para gerar código-fonte de grafos CodeDOM e gerenciar a compilação do código-fonte em linguagens com suporte. Fornecedores de compilador ou desenvolvedores podem estender o conjunto de idiomas com suporte.

A modelagem de código-fonte independente de linguagem pode ser útil quando um programa precisa gerar código-fonte para um modelo de programa em várias linguagens ou para uma linguagem de destino incerta. Por exemplo, alguns designers usam CodeDOM como uma interface da abstração de linguagem para produzir código-fonte na linguagem de programação correta, caso haja suporte para a linguagem no CodeDOM.

.NET inclui geradores e compiladores de código para CSharpCodeProvider, JScriptCodeProvider, e VBCodeProvider.

Referência

  • System.CodeDom

    Define os elementos que representam os elementos de código em linguagens de programação que usam o Common Language Runtime como destino.

  • System.CodeDom.Compiler

    Define as interfaces para gerar e compilar o código no tempo de execução.

  • Referência rápida CodeDOM fornece uma maneira rápida para os desenvolvedores localizarem os elementos do CodeDOM que representam os elementos de código-fonte.