sexta-feira, 23 de agosto de 2019

Compiladores X Interpretadores


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