close

Linguagem Intermediária Comum

Ir para a navegação Ir para a pesquisa

Common Intermediate Language (CIL, pronunciado "sil" ou "kil") (anteriormente chamado de Microsoft Intermediate Language ou MSIL) é a linguagem de programação legível por humanos de nível mais baixo na Common Language Infrastructure e no .NET Framework . As linguagens .NET Framework compilam para CIL. CIL é uma linguagem assembly orientada a objetos e é baseada em pilhas . É executado por uma máquina virtual . As principais linguagens .NET são C# , Visual Basic .NET , C++/CLI e J# .

A CIL era originalmente conhecida como Microsoft Intermediate Language (MSIL) durante as versões de teste das linguagens .NET. Por causa disso, o CIL é frequentemente chamado de MSIL. É possível executar esta linguagem em plataformas GNU/Linux graças ao Mono Project , que implementa uma máquina virtual semelhante ao .NET mas em software livre.

Informações gerais

Durante a compilação de linguagens de programação .NET , o código-fonte é convertido em código CIL em vez de código objeto específico da plataforma ou do processador . CIL é um conjunto de instruções independente de plataforma que pode ser executado em qualquer CPU.

Instruções CIL

O código intermediário CIL inclui um conjunto de instruções para os seguintes grupos de tarefas:

Compilação em tempo de execução

A compilação just -in-time (JIT) envolve a conversão de código intermediário em código imediatamente executável pela CPU . A conversão é feita gradualmente durante a execução do programa. A compilação JIT fornece otimização específica do ambiente, segurança de tipo de tempo de execução e verificação de montagem. Para fazer isso, o compilador JIT examina os metadados do assembly para acesso ilegal e trata as violações adequadamente.

Gerador de imagens nativas

O gerador de imagem nativa (NGEN) produz uma imagem binária nativa para o ambiente atual. O bytecode é omitido inteiramente ou convertido em instruções nativas da CPU antes da execução. Isso elimina a sobrecarga do JIT em detrimento da portabilidade; Quando uma imagem gerada pelo NGEN é executada em um ambiente sem suporte, o .NET framework usará automaticamente o compilador JIT.

O NGEN visa tornar a execução do assembly mais rápida, eliminando o processo de compilação JIT em tempo de execução, mas em alguns casos, isso tem efeitos adversos devido à otimização feita pelo otimizador JIT. Devido a este fato, sugere-se usar o NGEN somente após medir o desempenho do aplicativo antes e depois de usá-lo.

Compilando para .NET Native na nuvem

A partir de abril de 2014, a Microsoft começou a desenvolver a tecnologia de nuvem necessária para que todos os aplicativos em sua Universal App Store fossem compilados usando .NET Native para código nativo por dispositivo. [ 1 ] Isso melhorará muito o desempenho dos Aplicativos Universais no Windows 10 para telefones e PCs, permitindo que eles abram e retomem 60% mais rápido e usem 20% menos memória, permitindo tempos de resposta do sistema mais rápidos. [ 2 ]

Isso melhorará tremendamente o desempenho, especialmente em dispositivos onde o consumo de memória e processador é crítico, como dispositivos que atualmente executam o Windows Phone 8.1 que serão atualizados para o Windows 10 Mobile no final de 2015. [ 3 ]

Metadados

Os metadados são informações sobre as classes compiladas. Como os tipos de biblioteca no Component Object Model , ele permite que os aplicativos forneçam e descubram interfaces, classes, tipos, métodos e campos no assembly. O processo de leitura de metadados é chamado de reflexão .

Execução CIL

  • O código-fonte é convertido em Common Intermediate Language e um assembly .NET é criado.
  • Até a execução de um assembly .NET, seu CIL é passado pelo compilador JIT do Common Language Runtime para gerar o código nativo. (A compilação NGEN remove esta etapa em tempo de execução.)
  • O código nativo é executado pelo processador do computador.

Referências

  1. "Por dentro do .NET Native " . Canal 9. 2 de abril de 2014 . Recuperado em 13 de outubro de 2015 . 
  2. "Microsoft .NET Native" (em inglês) . Microsoft. 10 de julho de 2015 . Recuperado em 13 de outubro de 2015 . 
  3. ^ "A atualização para o Windows 10 Mobile chegaria em novembro segundo Lumia Espanha" . Microsoft Insider. 8 de outubro de 2015 . Recuperado em 13 de outubro de 2015 . 

Links externos