Conceito em Definição ABC
Miscelânea / / July 04, 2021
Por Guillem Alsina González, em set. 2017
Como podemos nos dar bem com alguém com quem não temos uma linguagem em comum? Por meio de um tradutor. Esta função de tradução é o que realiza um compilador para se transformar em código código-fonte executável escrito por um programador.
Compilação é o processo pelo qual um programa escrito em uma linguagem de alto nível é traduzido no código de máquina usado por uma determinada arquitetura de computador, para sua execução direto.
Portanto, e de acordo com a explicação que acabamos de propor, este sistema requer a escolha de um arquitetura destino, que pode ser diferente em cada caso e nos obrigará a compilar separadamente para cada uma das diferentes arquiteturas nas quais queremos que nosso programa seja executado.
Assim, por exemplo, podemos avançar em um determinado programa para a arquitetura x86 de 32 bits, o x86 de 64 bits, o PowerPC ou o ARM também diferenciando 32 e 64 bits, dependendo do tipo de dispositivo que queremos executá-lo.
Além disso, devemos também levar em consideração os diferentes sistemas operacionais, mesmo que estejamos trabalhando para a mesma plataforma hardware, já que cada um tem uma forma diferente de interagir com a máquina física
Vamos pegar a plataforma x86 de 64 bits como exemplo. Podemos querer compilar para janelas, GNU / Linux ou macOS, ou para cada um deles, o que implica três processos de compilação separados.
Às vezes, isso nos força a ajustar ligeiramente o código-fonte, muitas vezes mantendo três versões separadas (ou mais, dependendo do caso) para que interajam corretamente com as peculiaridades e diferenças da plataforma de destino.
O processo de compilação segue uma série de etapas, como detectar erros sintáticos no código-fonte e, em seguida, um pré-processado para conhecer os recursos que o programa necessita, e por fim o link com as bibliotecas e recursos necessários para sua execução.
Desta forma, um Arquivo executável contendo todos Recursos necessárias para sua execução, e as instruções necessárias para acessar recursos externos, como bibliotecas de código compartilhado (compartilhado).
O processo de compilação é feito com uma ferramenta ou ferramentas específicas (compilador), embora seja comum que seja integrado em ambientes de desenvolvimento (IDE), facilitando assim seu uso.
Cada idioma de programação Possui compilador próprio, embora por muito tempo, o compilador correspondente a uma linguagem e ambiente, é capaz de gerar executáveis para várias plataformas Programas diferente.
Existe uma opção alternativa para o processo de construção? Sim, e são linguagens interpretadas.
Linguagens interpretadas são aquelas que são traduzidas em tempo de execução, e não compiladas.
Portanto, seu código-fonte está sempre disponível, e o que eles precisam é que no sistema operativo em que são executados, há um intérprete.
Ao evitar o processo de compilação, se o intérprete estiver disponível para várias plataformas, será possível executar o programa diretamente em cada um deles, geralmente sem alterações.
Outro foco alternativa, a meio caminho entre as linguagens compiladas e interpretadas, são aquelas que requerem uma máquina virtual para rodar, por exemplo, Java.
Linguagens de programação que são executadas em cima de uma camada de virtualização (máquina virtual) requerem um processo intermediário semelhante ao de compilação, mas que resulta em um código que não é diretamente executável, embora mais otimizado do que aquele executado por uma linguagem interpretado.
Nestes casos, é necessário que haja um processo semelhante em forma ao da compilação, mas que dê um resultado diferente e que ainda requer, em qualquer caso, o instalação de um tempo de execução no sistema operacional no qual queremos executar nosso programa.
Fotos: Fotolia - Alexander Pokusay / Onot
Tópicos em compilação