SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
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
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 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
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.
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 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;
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.
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.
INTERPRETADOR
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.
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.
INTERPRETADOR VS
COMPILADOR
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.
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.
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 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).
COMPILADA E
INTERPRETADA:
VA N TA G E N S E
D E S VA N TA G E N S
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.
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.
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.
COMPILADA E INTERPRETADA:
VANTAGENS E DESVANTAGENS

Contenu connexe

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

Similaire à Aula 03 - Interpretador [mr_@@@@@].pdf (20)

Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
 
Paradigmas de Linguagem
Paradigmas de LinguagemParadigmas de Linguagem
Paradigmas de Linguagem
 
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfparadigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Programação de Microprocessadores
Programação de MicroprocessadoresProgramação de Microprocessadores
Programação de Microprocessadores
 
Apostila c
Apostila cApostila c
Apostila c
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programação
 
Lp m2(parte1)
Lp m2(parte1)Lp m2(parte1)
Lp m2(parte1)
 
Linguagem de Programação
Linguagem de ProgramaçãoLinguagem de Programação
Linguagem de Programação
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programação
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Pho Aula 02
Pho Aula 02Pho Aula 02
Pho Aula 02
 
Mini Curso de C
Mini Curso de CMini Curso de C
Mini Curso de C
 
Construção de compiladores - introducao Compilador.pdf
Construção de compiladores - introducao Compilador.pdfConstrução de compiladores - introducao Compilador.pdf
Construção de compiladores - introducao Compilador.pdf
 
Aula 3 compiladores e interpretadores
Aula 3   compiladores e interpretadoresAula 3   compiladores e interpretadores
Aula 3 compiladores e interpretadores
 
Code Masters
Code MastersCode Masters
Code Masters
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
aula03-introprogy.pptx
aula03-introprogy.pptxaula03-introprogy.pptx
aula03-introprogy.pptx
 

Dernier

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 

Dernier (8)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
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).
  • 18. COMPILADA E INTERPRETADA: VA N TA G E N S E D E S VA N TA G E N S
  • 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.