ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
Aula 03 - Interpretador [mr_@@@@@].pdf
1. AULA 03
I N T E R P R E TA D O R
Instituto Federal de
Educação, Ciência e
Tecnologia do Pará – Campus
Óbidos
Prof. John Percival /
<john.llinhares@ifpa.edu.
br>
Disciplina: Programação II
2. SUMÁRIO
– Compilação e Interpretação
• Interpretador
• Compilador
• Interpretador vs Compilador
• Compilada e Interpretada: vantagens e desvantagens
4. COMPILAÇÃO E INTERPRETAÇÃO
• O programa escrito pelo programador (com um simples editor de texto, ou
com algum software mais sofisticado, mas que gera um arquivo de texto) é
chamado código fonte. Este programa deve ser traduzido em linguagem de
máquina.
• Esta tradução é realizada pelo próprio computador, e pode-se distinguir para
tanto duas estratégias básicas.
– Compilação
– Interpretação
5. INTERPRETADOR
• Nesta estratégia, o software que comanda a tradução também comanda a
execução do programa.
• Tal software é chamado interpretador. Ele lê cada linha* do código fonte,
traduz* em linguagem de máquina os comandos correspondentes, e executa*
estes comandos.
6. COMPILADOR
• Nesta estratégia, os softwares que realizam a tradução e a execução atuam em
fases separadas do processo.
• O software que realiza a tradução, chamado compilador, traduz todo* o
código fonte de uma vez e produz um arquivo em linguagem de máquina,
chamado código objeto. Este arquivo fica armazenado no computador e é
processado pelo executador quando o usuário resolve executar* o programa.
7. EXEMPLOS
• A linguagem C é um exemplo de
linguagem compilada;
• Java é uma linguagem de
programação que utiliza um
processo híbrido de tradução;
– O compilador Java traduz o código-
fonte em um formato intermediário
independente de máquina chamado
bytecode;
– Interpretador Java específico da
máquina onde irá rodar o programa
então traduz os bytecodes para
linguagem de máquina e executa o
código;
8. OBSERVAÇÕES:
• O código fonte depende da linguagem utilizada mas não do sistema
operacional no qual o programa será executado. [Porém, no caso de um
programa que faz uso de recursos ou componentes "prefabricados", é
necessário que eles estejam disponíveis para o sistema operacional utilizado.]
• O código objeto depende do sistema operacional no qual o programa será
executado.
9. OBSERVAÇÕES
• O interpretador e o compilador dependem do sistema operacional utilizado.
Para a maioria das linguagens, existem compiladores ou interpretadores
adaptados a cada sistema operacional.
• Por exemplo, sendo C uma linguagem compilada, existem compiladores C para
Windows e compiladores C para Linux.
• Sendo JavaScript uma linguagem interpretada, existem interpretadores
adequados para Windows e interpretadores adequados para Linux.
11. INTERPRETADOR
• Diferente do compilador, ao utilizarmos um interpretador para transformar
nosso código em linguagem de máquina, não “traduzimos” o programa inteiro,
gerando outro arquivo.
• O interpretador funciona, de certa forma, em tempo real. Ao executar o
código através de um interpretador, você estará convertendo seu código fonte
em código alvo (ou linguagem de máquina) linha por linha.
12. INTERPRETADOR
• Já em seguida, a sua máquina irá executar o que foi convertido e não será
criado nenhum tipo de arquivo posterior.
• Isso ocorre através de um software interpretador, que controla o fluxo de
trabalho e garante que tudo sairá como planejado.
• Dessa forma, é possível detectar erros no momento em que eles passam pelo
interpretador.
• Por outro lado, como é trabalhado linha por linha, você deve imaginar que a
performance não é a mesma que executar um código que já está 100%
compilado.
14. INTERPRETADOR VS COMPILADOR
• Basicamente, um compilador 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). Delphi, Rust, C++ figuram na lista de
compiladas.
• O interpretador faz esse trabalho de conversão aos poucos, sempre que uma
declaração ou função é executada, por exemplo. MATLAB, Lisp, Perl e PHP são
apontadas como interpretadas.
15. INTERPRETADOR VS COMPILADOR
• 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.
16. INTERPRETADOR VS COMPILADOR
• Interpretador ou compilador, então?
Tanto faz.
• Na verdade, qualquer linguagem pode ser compilada ou interpretada, pois
esses conceitos não são próprios de uma linguagem em si, ou seja, não é um
atributo ou característica intrinsecamente ligada a ela.
17. INTERPRETADOR VS COMPILADOR
• Ambos são técnicas de implementação para executar (ou, melhor ainda,
traduzir) o seu código fonte podem ser aplicados para qualquer linguagem,
desde que se tenha o tradutor necessário para tal.
• Uma atitude comum a alguns programadores que reforça essa ideia é construir
seu código em um editor de texto comum, tipo o bloco de notas. Depois de
construído, o arquivo será usado em um programa para executado (exemplo:
montagem usando HTML).
19. COMPILADA E INTERPRETADA:
VANTAGENS E DESVANTAGENS
• Uma das grandes vantagens dos compiladores é sua velocidade de execução,
muito em função do que já falamos sobre traduzir todo o código de uma vez.
Não precisar fazer a conversão toda vez que o sistema é executado dá uma
eficiência muito maior do que um interpretador.
• Uma compilação costuma dar resultados mais confiáveis graças às suas
diversas etapas de validação e otimização. Uma checagem de tipos estáticos,
por exemplo, é comum em compiladores, e identifica diversos erros de
programação antes do executável ser gerado.
20. COMPILADA E INTERPRETADA:
VANTAGENS E DESVANTAGENS
• Por sua vez, enquanto uma linguagem compilada precisa fazer essa tradução
para cada plataforma destinada (como versões específicas do Adobe
Photoshop para Windows, Linux e Mac), a interpretação, por poder rodar em
tempo de execução, é independente.
• Não importa se é Linux ou Mac; basta ter o Python instalado na máquina que
ela vai rodar seu código em Python.
21. COMPILADA E INTERPRETADA:
VANTAGENS E DESVANTAGENS
• Verificar e modificar o código de uma linguagem interpretada também é mais
fácil, já que basta abrir o arquivo e ver o que tem escrito. Para fazer o mesmo
com uma biblioteca compilada, é preciso utilizar um descompilador.
• Isso, no entanto, também pode ser visto como uma desvantagem, pois
qualquer pessoa com um mínimo de conhecimento pode ver a implementação
de um JavaScript embutido numa página web ou até mesmo realizar uma
injeção de código.