Você está na página 1de 17

§ Compilador é um programa ou um grupo de programas que

escrito por uma linguagem (esta sendo necessária de


compilação para sua execução) ao ser compilado gera outro
código que é interpretado pelo computador.

§ Programa que lê um programa escrito numa linguagem


(linguagem fonte), traduz num programa equivalente numa
outra linguagem (linguagem alvo).
Programa Fonte Programa Alvo
Compilador

Mensagens de Erro
§ Este código compilado é chamado de código objecto, podendo
ser um arquivo executável que é reproduzido em um sistema
operacional.

§ Os compiladores analisam o código em três partes, de forma


sintáctica ou hierárquica, análise léxica ou linear e análise
semântica.

§ Alguns compiladores contam com um pré-processamento. Este


pré-processamento é responsável por modificar o código-fonte
conforme necessidades que o compilador identifique que sejam
necessárias, por exemplo, optimização de código.
§ O código compilado é mais rápido de ser acedido;

§ Impossibilita ou pelo menos dificulta ser quebrado e


visualizado o código-fonte original;
§ Permite optimização do código por parte do compilador;
§ Compila o código somente se estiver sem algum erro.
§ 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 correcção ou alteração do código requer que ele
seja novamente recompilado.
§ O interpretador ao contrário do compilador roda o código-fonte
escrito como sendo o código objecto, ele traduz o programa linha a
linha, o programa vai sendo utilizado na medida em que vai sendo
traduzido.

§ Cada execução do programa precisa ser novamente traduzido e


interpretado.
§ 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.
Programa Fonte
Saída
Entrada Interpretador
§ Correcçõ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.


§ A Execução do programa é mais lenta ;

§ Necessita sempre ser lido o código original para ser


executado;
É um tipo de tradutor auxiliar que fica entre o Compilador e o
Interpretador.
No caso, o programador escreve o código fonte, numa linguagem de alto
nível, e executa um programa (compilador) que irá traduzir o texto para
um código binário, de baixo nível.

A diferença, nesse caso, está no fato de que esse código binário gerado
ainda não é um código que pode ser entendido pela máquina, ele é um
código intermediário, e para que o computador possa executá-lo é
necessário uma Máquina Virtual.
É a Máquina Virtual que vai traduzir esse código intermediário para um
código que o computador consegue entender.

Pra quem está começando agora na área de programação, a utilização de


Máquinas Virtuais pode parecer estranho, mas essa técnica trouxe
grandes avanços e é cada vez mais comum a sua utilização.
§ A principal vantagem é que com a utilização da Máquina Virtual fica
muito fácil executar um mesmo aplicativo em sistemas diferentes.
§ Um código binário criado pelo método tradicional da compilação só
pode ser executado no Sistema Operacional onde foi criado. Já um
código gerado por uma Máquina Virtual pode ser executado em
diversos Sistemas Operacionais diferentes. Java é um bom exemplo:
§ mesmo que um programa em Java seja criado no Windows, ele pode
ser rodado também no Linux, Solaris, MacOSX, FreeBSD, sem fazer
nenhuma alteração no seu programa. Por outro lado, como já dá pra
imaginar, esta outra camada de tradução da Máquina Virtual acaba
tornando a execução do programa mais lenta, se comparada com o
método tradicional de compilação.

Você também pode gostar