IL – O que significa Intermediate Language

Antes de tudo, a Linguagem intermediária é uma linguagem de programação orientada a objetos projetada para ser usada pelos compiladores do .NET Framework antes da compilação estática ou dinâmica do código da máquina. Logo o IL é usado pelo .NET Framework para gerar código independente da máquina como saída da compilação do código-fonte gravado em qualquer linguagem de programação .NET.

IL

IL é uma linguagem de montagem baseada em pilha que é convertida em bytecode durante a execução de uma máquina virtual. Por isso é definido pela especificação da infraestrutura de linguagem comum (CLI). Como o IL é usado para geração automática de código compilado, logo não há necessidade de aprender sua sintaxe.

Entretanto este termo também é conhecido como linguagem intermediária da Microsoft (MSIL) ou linguagem intermediária comum (CIL).

Linguagem intermediária (IL)

Linguagem intermediária (IL)
Linguagem intermediária (IL)

Com a ajuda de um compilador just-in-time (JIT) adequado, o código IL pode ser executado em qualquer arquitetura de computador suportada pelo compilador JIT. Diferentemente dos intérpretes, a compilação JIT fornece melhor desempenho, preserva a memória e economiza tempo durante a inicialização do aplicativo. Também permite o recurso de independência de plataforma e CPU da estrutura .NET, permitindo que o código-fonte compilado seja executado em qualquer ambiente que suporte a especificação da CLI.

Segurança

Segurança do código para o código IL
Segurança do código para o código IL

A verificação da segurança do código, para o código IL, fornece melhor segurança e confiabilidade do que os arquivos executáveis ​​compilados nativamente. Os metadados, descrevendo o código MSIL no executável portátil, eliminam a necessidade de bibliotecas de tipos e arquivos de linguagem de definição intermediária, como era usado na tecnologia COM (Component Object Model). Combinado com metadados e um sistema de tipos comuns, o IL forma os meios para integrar módulos escritos em diferentes idiomas em um único aplicativo, permitindo assim a independência do idioma.

Embora a IL seja semelhante ao bytecode Java em seu uso por compiladores, ela difere da última por ter sido projetada para independência de plataforma e independência de idioma. Também difere por ser compilado e não interpretado.

Conjuntos de instruções incluídos

Além disso dois tipos de conjuntos de instruções estão incluídos no IL; instruções básicas, semelhantes às instruções nativas da CPU e instruções do modelo de objeto usadas pelo idioma de alto nível. Assim como o IL inclui todas as instruções necessárias para carregar, armazenar, inicializar e chamar métodos nos objetos. 

Também inclui operações aritméticas e lógicas, fluxo de controle, acesso direto à memória, tratamento de exceções e outras operações. Diferentemente do formato de arquivo de objeto comum usado para o conteúdo executável no executável portátil tradicional da Microsoft, o executável portátil gerado, após a compilação do código gerenciado, contém instruções de IL e metadados.

Portanto as duas ferramentas associadas ao código IL são o MSIL Assembler ( Ilasm.exe ) e o MSIL Disassemble ( Ildasm.exe). Logo o primeiro gera um arquivo executável portátil a partir do código e permite a visualização deste em formato legível por humanos, enquanto o último converte um arquivo executável portátil em um arquivo de texto, para visualização e modificação. Portanto ambos são instalados automaticamente como parte do Visual Studio.

Esta definição foi escrita no contexto do .NET

Deixe uma resposta