SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Mais procurados

Introdução a Sistemas Distribuídos
Introdução a Sistemas DistribuídosIntrodução a Sistemas Distribuídos
Introdução a Sistemas DistribuídosVictor Hazin da Rocha
 
EJERCICIOS EN PACKET TRACER
EJERCICIOS EN PACKET TRACEREJERCICIOS EN PACKET TRACER
EJERCICIOS EN PACKET TRACERDaniella Park
 
Procedimiento de ponchado y conexión local
Procedimiento de ponchado y conexión local Procedimiento de ponchado y conexión local
Procedimiento de ponchado y conexión local Efren Lesmes
 
222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidoresMarco Guimarães
 
Sistemas de Telecomunicações - Aula 14 - Redes ATM, Ethernet, Token Ring e Re...
Sistemas de Telecomunicações - Aula 14 - Redes ATM, Ethernet, Token Ring e Re...Sistemas de Telecomunicações - Aula 14 - Redes ATM, Ethernet, Token Ring e Re...
Sistemas de Telecomunicações - Aula 14 - Redes ATM, Ethernet, Token Ring e Re...Leinylson Fontinele
 
PROJETO DE REDE TELEFONIA MOVEL
PROJETO DE REDE TELEFONIA MOVELPROJETO DE REDE TELEFONIA MOVEL
PROJETO DE REDE TELEFONIA MOVELWELLINGTON MARTINS
 
Konfigurasi Dasar Windows Server 2012 R2 rev.1
Konfigurasi Dasar Windows Server 2012 R2 rev.1Konfigurasi Dasar Windows Server 2012 R2 rev.1
Konfigurasi Dasar Windows Server 2012 R2 rev.1Muhamad Yusuf Supriadi
 
5 sistemas supervisorios e redes industriais
5 sistemas supervisorios e redes industriais5 sistemas supervisorios e redes industriais
5 sistemas supervisorios e redes industriaisMarcos Sincerre
 
Redes 4 endereçamento
Redes 4 endereçamentoRedes 4 endereçamento
Redes 4 endereçamentoMauro Pereira
 
Endereçamento IP
Endereçamento IPEndereçamento IP
Endereçamento IPPjpilin
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosFrederico Madeira
 
Sistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando ProcessosSistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando ProcessosLuiz Arthur
 
Aula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasAula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasVictor Hazin da Rocha
 
Aula 05: Passivos de redes
Aula 05: Passivos de redesAula 05: Passivos de redes
Aula 05: Passivos de redesNilson Mori
 

Mais procurados (20)

Introdução a Sistemas Distribuídos
Introdução a Sistemas DistribuídosIntrodução a Sistemas Distribuídos
Introdução a Sistemas Distribuídos
 
Pfsense
PfsensePfsense
Pfsense
 
EJERCICIOS EN PACKET TRACER
EJERCICIOS EN PACKET TRACEREJERCICIOS EN PACKET TRACER
EJERCICIOS EN PACKET TRACER
 
Procedimiento de ponchado y conexión local
Procedimiento de ponchado y conexión local Procedimiento de ponchado y conexión local
Procedimiento de ponchado y conexión local
 
Middlewares
MiddlewaresMiddlewares
Middlewares
 
222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores
 
Sistemas de Telecomunicações - Aula 14 - Redes ATM, Ethernet, Token Ring e Re...
Sistemas de Telecomunicações - Aula 14 - Redes ATM, Ethernet, Token Ring e Re...Sistemas de Telecomunicações - Aula 14 - Redes ATM, Ethernet, Token Ring e Re...
Sistemas de Telecomunicações - Aula 14 - Redes ATM, Ethernet, Token Ring e Re...
 
PROJETO DE REDE TELEFONIA MOVEL
PROJETO DE REDE TELEFONIA MOVELPROJETO DE REDE TELEFONIA MOVEL
PROJETO DE REDE TELEFONIA MOVEL
 
Konfigurasi Dasar Windows Server 2012 R2 rev.1
Konfigurasi Dasar Windows Server 2012 R2 rev.1Konfigurasi Dasar Windows Server 2012 R2 rev.1
Konfigurasi Dasar Windows Server 2012 R2 rev.1
 
5 sistemas supervisorios e redes industriais
5 sistemas supervisorios e redes industriais5 sistemas supervisorios e redes industriais
5 sistemas supervisorios e redes industriais
 
Redes 4 endereçamento
Redes 4 endereçamentoRedes 4 endereçamento
Redes 4 endereçamento
 
Protocolo IPv4
Protocolo IPv4Protocolo IPv4
Protocolo IPv4
 
Endereçamento IP
Endereçamento IPEndereçamento IP
Endereçamento IP
 
Endereçamento IPV4
Endereçamento IPV4Endereçamento IPV4
Endereçamento IPV4
 
ip-address.ppt
ip-address.pptip-address.ppt
ip-address.ppt
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 
Sistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando ProcessosSistemas Operacionais - Gnu/Linux Gerenciando Processos
Sistemas Operacionais - Gnu/Linux Gerenciando Processos
 
Aula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasAula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a Falhas
 
Protocolos de Redes
Protocolos de RedesProtocolos de Redes
Protocolos de Redes
 
Aula 05: Passivos de redes
Aula 05: Passivos de redesAula 05: Passivos de redes
Aula 05: Passivos de redes
 

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

Semelhante a 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
 

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.