Intermediate Language - IL - .Net Magazine 81
Neste artigo os fundamentos da Microsoft Intermediate Language (MSIL) são apresentados. Trata-se da linguagem utilizada pela plataforma .NET para representar o código intermediário, gerado pelos compiladores das diversas linguagens, antes que eles sejam convertidos em código binário pelo compilador JIT.
Neste artigo os fundamentos da Microsoft Intermediate Language (MSIL) são apresentados. Trata-se da linguagem utilizada pela plataforma .NET para representar o código intermediário, gerado pelos compiladores das diversas linguagens, antes que eles sejam convertidos em código binário pelo compilador JIT.
Para que serve
Conhecendo os fundamentos da Intermediate Language, é possível entender melhor como as coisas funcionam nos bastidores da plataforma .NET. Ver como o código que é escrito em uma linguagem de alto-nível funcionará.
Em que situação o tema é útil
Permite explorar melhor o conceito de emissão dinâmica de código executável através da biblioteca de Emitting, extrapolando os limites da aplicação através da utilização da biblioteca para criar novos blocos executáveis de código em tempo de execução. Entre outras coisas, é possível utilizar o recurso para gerar objetos mock dinamicamente para interfaces ou classes abstratas, ou ainda, proxys.
Resumo do DevMan
Para conseguir independência de linguagem, o framework .NET criou a chamada Intermediate Language. Sendo assim, todo compilador .NET não gera código nativo, mas sim um código escrito nessa linguagem intermediária. Entender essa linguagem auxilia na compreensão do próprio funcionamento do framework. Neste artigo 4 exemplos são criados, todos utilizando a IL como código fonte para garantir o aprendizado do trabalho interno do .NET Framework.
Você sabe o que acontece quando compila seus programas? Antes do advento do .NET, compilar um programa significava converter nossos códigos para linguagem de máquina (assembly), que era entendida pelo processador. No .NET temos uma etapa a mais: todos os nossos programas quando compilados são convertidos para uma linguagem intermediária, chamada Intermediate Language, que só mais tarde, em tempo de execução, é convertida para código de máquina (ou código nativo, como preferir).
A IL – Intermediate Language (também conhecida comoCommon Intermediate Language (CIL), ou aindaMicrosoft Intermediate Language (MSIL)) é conceito central do .NET framework. Independente da linguagem de programação que você utilize, quando compila, seu código-fonte é convertido para IL. Então, se você deseja entender melhor como .NET funciona, recomendo que aprenda, pelo menos um pouco, de IL. Entendendo IL você conseguirá:
• Entender melhor como o código gerenciado que você escreve realmente funciona;
• Examinar o código gerado pelo compilador (independente da linguagem);
• Escrever algum código diretamente em IL.
IL – uma linguagem com dois formatos
Em sua forma mais comum, Intermediate Language é uma linguagem binária. Como ocorre com a linguagem assembly nativa, uma instrução IL é armazenada em um container assembly (geralmente arquivos .exe ou .dll) em uma representação numérica binária (também conhecida como opcode).
Entretanto, como também ocorre com um código executável nativo, uma linguagem textual foi definida para representar a IL. Essa linguagem é constituída por códigos mnemônicos que, por sua vez, representam os comandos IL binários. Essa linguagem é conhecida como IL assembly. Entretanto, como IL Assembly é um nome muito longo, existe uma convenção em encurtar esse nome para ILAsm ou, simplesmente, código-fonte IL.
Recapitulando, todo arquivo executável (EXE) ou biblioteca (DLL) que seu compilador gera para você contém um código executável. Em .NET, esse código está escrito em uma especificação conhecida como Intermediate Language, que é binária. Além disso, existe uma forma textual de representar esse conteúdo executável.
Você pode ver a representação IL de seu código quando quiser
A Microsoft disponibiliza um utilitário que acompanha o SDK do .NET Framework, chamado ILDasm. Ao executá-lo, através do Command Prompt do Visual Studio, é possível escolher um arquivo binário, um programa feito em .NET qualquer, e seu IL será exibido como mostra a Figura 1.
Figura 1. Interface do ILDasm
Além de exibir a estrutura do programa, o ILDasm ainda permite que se navegue nos métodos do mesmo. Basta dar dois cliques em um método para que o código IL correspondente seja apresentado (Figura 2).
Figura "
[...] continue lendo...Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo