Skip to main content

O que é um idioma intermediário?

Na programação de computadores, quando o código-fonte legível por humanos é analisado por um compilador, o compilador geralmente converte os comandos de origem em uma sequência de instruções que não são um código de máquina nativo, mas podem ser processadas, otimizadas ou compiladas pelo compilador ou outro software. Ferramentas. Os arquivos produzidos contêm instruções que dizem estar em um idioma intermediário, porque o idioma usado pelo compilador não é significativo para o sistema operacional maior nem o idioma usado pelo programador para escrever o código em primeiro lugar, mas, em vez disso, é uma linguagem que atua como uma ponte entre a escrita e a execução do programa. Às vezes, uma linguagem intermediária é usada para permitir que um compilador faça otimizações muito precisas para que o programa seja executado com mais eficiência, mas também pode ser usado para produzir arquivos de saída que são portáveis ​​entre sistemas diferentes e incompatíveis. A sintaxe real da linguagem pode se parecer com código de máquina ou outros tipos de bytecode legível não humano, ou a linguagem pode ser apenas uma linguagem de programação de computador entre plataformas existente.

Quando usado para otimização do compilador, um compilador de idioma pega cada instrução em um arquivo de código-fonte e divide o comando no idioma intermediário. Uma única instrução de programação legível por humanos pode ser dividida em dezenas de instruções em linguagem de máquina; portanto, a linguagem intermediária cria um nível de abstração que o compilador pode usar para identificar áreas do código nas quais as otimizações podem ser feitas sem que seja necessário primeiro vincular o código a ele. quaisquer implementações ou bibliotecas nativas. Depois de concluído, o arquivo de código intermediário pode ser compilado ainda mais para criar um arquivo binário nativo ou pode ser executado por outro programa, conhecido como intérprete, que executará o código compilando-o em instruções nativas, conforme necessário.

Algumas linguagens, como Java®, usam uma linguagem intermediária para criar arquivos compilados otimizados, mas também portáveis ​​para outros sistemas de computador. Às vezes, esse tipo de código é conhecido como bytecode e se assemelha ao código da máquina ou à linguagem assembly. O bytecode é armazenado em arquivos de forma independente da plataforma, o que significa que pode ser transferido para qualquer sistema ou dispositivo de computador que possa executar um intérprete. Uma vez que o bytecode esteja em um sistema, ele pode ser executado como um programa interpretado ou compilado para ser executado nativamente no sistema de destino.

Em alguns casos, uma linguagem de computador é projetada para facilitar a programação para um fim específico, como um aplicativo interativo da Web, mas os designers não desejam incluir compiladores, intérpretes ou plug-ins personalizados para diferentes sistemas. Nesses casos, o idioma intermediário do compilador pode ser um idioma existente que já estabeleceu intérpretes de plataforma cruzada. A linguagem intermediária resultante, neste caso, é legível por humanos. Um exemplo de linguagem de programação de computador que também é usada como linguagem intermediária é o JavaScript®, que tem a vantagem de poder ser executado em praticamente qualquer navegador da web em qualquer plataforma, a partir de 2011.