Fala dev! Nada como ter seu código versionado e armazenado de forma segura em um…
O que são interpretadores e compiladores? Qual a diferença?4 min read
Categoria: Ciência da Computação
Olá escavadores de bits! Hoje vamos compreender um pouco as diferenças entre interpretadores e compiladores. Na programação de computadores esses conceitos são muito importantes, já que dependendo do propósito do seu software, escolher um linguagem compilada pode trazer maior velocidade para execução do seu software, mas se o objetivo for a compatibilidade com várias plataformas – por exemplo, Linux e Windows – escolher uma linguagem interpretada, que rode através de uma máquina virtual (aqui estou fazendo referencia a máquina virtual da própria linguagem. Exemplo: JVM utilizado pelo Java, que permite rodar o mesmo programa JAVA em qualquer linguagem que tenha o JAVA instalado), pode ser mais vantajoso.
Vamos verificar no dicionário Aurélio, qual o significado de cada palavra:
- Compilar: Converter (programa-fonte) em programa-objeto para determinada linguagem e determinado tipo de computador verificando sua coerência sintática e semântica.
- Interpretar: Executar (programa), convertendo suas instruções em código de máquina ao longo do processo.
Observem que os sentidos das duas palavras se completam. Em informática, há dois modos distintos de se executar um programa: interpretado ou compilado.
Modo Interpretado
No modo interpretado o script, ou seja, a seqüencia de comandos em determinada linguagem de programação é lida por interpretador que vai transformar as instruções em comandos que seguem para o hardware através da BIOS (Sistema Básico de Entrada e Saída) e do sistema operacional. Assim, toda vez que precisarmos executar o código-fonte, o interpretador terá que “ler” todo o script novamente.
Modo Compilado
No modo compilado o programa é codificado para o hardware uma única vez em um processo chamado “linkedição”. Neste processo o compilador transforma o código-fonte em um arquivo do tipo “objeto” (extensão OBJ) cuja característica principal é estar em formato binário, ou seja, em uma linguagem de baixo nível, muito mais próxima dos comandos internos que o computador compreende. Em seguida, o programa é transformado em arquivos executáveis (extensão EXE) através de um programa chamado de montador (“linker”, em inglês).
Veja que: os arquivos executáveis são também em formato binário, o que facilita a execução por parte do computador. Exemplos de linguagens compiladas: C, C++ (fala-se cê plus, plus ou cê mais, mais), pois são linguagens em que seus códigos-fontes são compilados diretamente para linguagem de máquina.
As linguagens modernas como VB.Net, C#, JAVA têm seus códigos fontes transformados em uma linguagem intermediária (específica de cada linguagem), que será interpretada pela máquina virtual da linguagem quando o programa for executado.
Este processo de interpretação da linguagem intermediária durante a execução do programa consiste na tradução dos comandos da linguagem intermediária para linguagem de máquina. Sendo assim, em tempo de execução, o código intermediário pode ser encarado como um “código fonte” que será compilado dinamicamente pelo interpretador da linguagem em código de máquina.
Resumo
O compilador uni todo o programa em um arquivo EXE em formato binário, que em seguida será executado pelo computador. O processo de compilação é feito uma única vez, o que torna o processo de leitura do programa, muito rápido. Linguagens compiladas geralmente são usadas em jogos, robótica, automação industrial, pois são áreas em que a velocidade de execução do programa precisa ser rápida.
Um interpretador nada mais é que um intermediário entre, o código-fonte a ser executado, e o computador, ou seja, o interpretador “entrega” o código-fonte ao computador em uma linguagem de baixo nível sempre que o programa é executado.As questões do modo de execução de um programa envolvem processos muitos mais complexos que os explicados aqui. Esse foi um resumo, dos modos de execução de programa.