Basicamente, um compilador é um programa (ou um conjunto deles) como qualquer outro, porém seu objetivo principal é o de traduzir todas as suas linhas de código para outra linguagem – normalmente, uma de alto nível para outra de baixo nível (Assembly ou linguagem de máquina). Delphi, Rust, C++ e Swift figuram na lista de compiladas.
Um interpretador também é um programa, mas, ao contrário do compilador, ele não converte o código todo para linguagem de máquina de uma vez. Ele executa diretamente cada instrução, passo a passo. MATLAB, Lisp, Perl e PHP são apontadas como interpretadas.
Em suma, a grande diferença está na forma de execução. Enquanto um compilador analisa todo o código a fim de traduzi-lo de uma vez (muitas vezes, o resultado é um arquivo executável ou uma biblioteca), o interpretador faz esse trabalho de conversão aos poucos, sempre que uma declaração ou função é executada, por exemplo.

Embora isso dê a sugestão de que essa interpretação leve muito tempo para ficar pronta, o compilador também caminha bastante para ser convertido.
Alguns dos passos são: Análise léxica e semântica, pré-processamento, análise e otimização de código e, ao fim, geração do produto final.
Porém, uma vez compilado, ele não precisará fazer mais essa tradução – a menos que o código precise ser alterado.
Vantagens e Desvantagens
Compiladores
Vantagens:
1 - A execução do programa é mais rápida.
2 - Estruturas de dados mais completas;
3 - Permitem a otimização de código fonte.
Desvantagens:
1 - Várias etapas de tradução;
2 - Processo de correção de erro e de depuração é mais demorado;
3 - Programação final é maior, o que gera a necessidade de mais memória;
Interpretadores
Vantagens:
1 - Depuração é mais simples;
2 - Consomem menos memória;
3 - Resultado imediato do programa ou rotina desenvolvida.
Desvantagens:
1 - A execução do programa é mais lenta.
2 - Estrutura de dados demasiadamente simples;
3 - Necessário fornecer o programa fonte ao utilizador;


Nenhum comentário:
Postar um comentário