Compilador:

Compilador é um programa que traduz 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), ao ser compilado gera outro código que é interpretado pelo computador. Este código compilado é chamado de código objeto, podendo ser um arquivo executável que é reproduzido em um sistema operacional, por exemplo. Este tipo de tradutor é um dos mais utilizados. Delphi, Rust, C++ e Swift figuram na lista de compiladas.

-geração de código executável
 – depende da plataforma de execução
– tradução lenta X execução rápida


Vantagens:

·         O código compilado é mais rápido de ser acessado;
·         Impossibilita ou pelo menos dificulta ser quebrado e visualizado o código-fonte original;
·         Permite otimização do código por parte do compilador;
·         Compila o código somente se estiver sem algum erro.

Desvantagens:

·         Para ser utilizado o código precisa passar por muitos níveis de compilação;
·         Assim como vantagem a possibilidade de não poder visualizar o código-fonte, pode ser uma desvantagem;
·         Processo de correção ou alteração do código requer que ele seja novamente recompilado.

Interpretador:


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, , o programa vai sendo utilizado na medida em que vai sendo traduzido. Cada execução do programa precisa ser novamente traduzido e interpretado. MATLAB, Lisp, Perl e PHP são apontadas como interpretadas.
– sem geração de código 
– execução lenta, independente de plataforma

O interpretador analisa sintaticamente e semanticamente o código, se estas duas etapas forem realizadas e executadas de forma correta o código está pronto para funcionar.  

Vantagens:

·         Correções e alterações são mais rápidas de serem realizadas;
·         Código não precisa ser compilado para ser executado;
·         Consomem menos memória.

Desvantagens:

·         Execução é mais lenta do programa;
·         Necessita sempre ser lido o código original para ser executado;


Deixe um comentário