Aula 03 - Interpretador [mr_@@@@@].pdf

mouzinhoconcursos 136 views 22 slides Feb 15, 2023
Slide 1
Slide 1 of 22
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22

About This Presentation

Interpretador


Slide Content

AULA 03
INTERPRETADOR
InstitutoFederalde
Educação,Ciênciae
Tecnologia doPará –Campus
Óbidos
Prof. John Percival /
<[email protected].
br>
Disciplina: Programação II

SUMÁRIO
–Compilação e Interpretação
•Interpretador
•Compilador
•Interpretador vs Compilador
•Compilada e Interpretada: vantagens e desvantagens

COMPILAÇÃO E
INTERPRETAÇÃO

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 traduzidoem 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

INTERPRETADOR
•Nesta estratégia, o software que comanda a traduçãotambém comanda a
execuçãodo 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.

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.

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 compiladorJava traduz o código-
fonte em um formato intermediário
independente de máquina chamado
bytecode;
–InterpretadorJava específico da
máquina onde irá rodar o programa
então traduz os bytecodespara
linguagem de máquina e executa o
código;

OBSERVAÇÕES:
•O código fontedepende 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.

OBSERVAÇÕES
•O interpretadore o compiladordependem 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 JavaScriptuma linguagem interpretada, existem interpretadores
adequados para Windows e interpretadores adequados para Linux.

INTERPRETADOR

INTERPRETADOR
•Diferente do compilador, ao utilizarmos um interpretadorpara transformar
nosso código em linguagem de máquina, não “traduzimos” o programa inteiro,
gerando outro arquivo.
•O interpretadorfunciona, 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.

INTERPRETADOR
•Já em seguida, a sua máquina irá executaro 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.

INTERPRETADOR VS
COMPILADOR

INTERPRETADOR VS COMPILADOR
•Basicamente, um compiladortraduz 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 interpretadorfaz 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.

INTERPRETADOR VS COMPILADOR
•Embora isso dê a sugestão de que essa interpretaçãoleve muito tempo para
ficar pronta, o compiladortambé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.

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.

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 tradutornecessá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).

COMPILADA E
INTERPRETADA:
VANTAGENS E
DESVANTAGENS

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çãocostuma 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.

COMPILADA E INTERPRETADA:
VANTAGENS E DESVANTAGENS
•Por sua vez, enquanto uma linguagem compiladaprecisa 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.

COMPILADA E INTERPRETADA:
VANTAGENS E DESVANTAGENS
•Verificar e modificar o código de uma linguagem interpretadatambé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 JavaScriptembutido numa página web ou até mesmo realizar uma
injeção de código.

COMPILADA E INTERPRETADA:
VANTAGENS E DESVANTAGENS
Tags