Compilação para MSIL

Quando compila para código gerenciado, o compilador converte seu código fonte em Microsoft Intermediate Language (MSIL), que é um conjunto de instruções independentes de CPU o qual pode ser convertido em código nativo com eficiência.O MSIL inclui instruções para carregamento, armazenamento, inicialização e chamada métodos em objetos, e instruções para operações aritméticas e lógicas, fluxo de controle, acesso direto à memória, tratamento de exceção e outras operações.Antes de o código poder ser executado, o MSIL deve ser convertido no código específico da CPU, geralmente por um Compilador Just-In-Time (JIT).Como o Common Language Runtime fornece um ou mais compiladores JIT para cada arquitetura de computador para a qual oferece suporte, o mesmo conjunto de MSIL pode ser compilado JIT e executado em qualquer arquitetura suportada.

Quando um compilador produz MSIL, ele também produz metadados.Metadados descrevem os tipos no seu código, incluindo a definição de cada tipo, as assinaturas de membros de cada tipo, os membros que seu código referencia e outros dados que o ambiente de tempo de execução usa em tempo de execução.O MSIL e os metadados estão contidos em um arquivo executável portátil (PE), que é baseado em e estende os formatos Microsoft PE e COFF publicados usados historicamente para conteúdo executável.Este formato de arquivo, que acomoda MSIL ou código nativo além de metadados, permite ao sistema operacional reconhecer imagens do Common Language Runtime.A presença de metadados no arquivo junto com o MSIL permite que seu código descreva a si mesmo, o que significa que não há necessidade de bibliotecas de tipos ou de Interface Definition Language (IDL).O ambiente de tempo de execução localiza e extrai os metadados do arquivo na medida em que for necessário durante a execução.

Consulte também

Conceitos

Processo de Execução Gerenciada

Referência

Assembler MSIL (Ilasm.exe)

Outros recursos

Metadados e Componentes Autodescritivas