SlideShare uma empresa Scribd logo
1 de 16
#PDS 
Prof. Natanael Simões 
facebook.com/natanaelsimoes 
Desenvolvimento: Programação 
Linguagens Compiladas x Linguagens Interpretadas 
@natanaelsimoes 
natanael.simoes@ifro.edu.br 
steamcommunity.com/id/natanaesimoes
Objetivo 
• Compreender linguagens compiladas e interpretadas e suas 
diferenças estruturais
Por que é preciso compilar ou interpretar? 
• Programas são escritos em linguagem de alto nível 
• Máquinas não conversam como os humanos, elas 
têm uma linguagem própria 
(ou linguagem de baixo nível)
Por que é preciso compilar ou interpretar? 
Programa (Alto nível) 
Compilador/Interpretador 
Programa (Baixo nível) 
Hardware
Linguagens Compiladas 
• Do latim compilare 
• Significa REUNIR, AJUNTAR 
• Fonte traduzido diretamente para linguagem 
de máquina
Processo de Compilação 
Programa (Alto nível) 
Análise léxica 
Análise sintática 
Geração de código (Baixo nível) 
Programa (Objeto executável)
Processo de Compilação 
• Análise léxica 
Reconhece as sequências 
de símbolos que 
representam uma 
unidade: o nome de uma 
variável, constante e 
palavras de instrução 
(while, for...) 
pos = ini + val * 60 
id1 = id2 + id3 * 60
Processo de Compilação 
• Análise sintática 
Identifica a estrutura 
gramatical do programa e o 
papel de cada componente. 
É construída uma árvore 
sintática (binária, 
estruturalmente) e uma 
tabela de símbolos que 
representam as variáveis. 
id1 = id2 + id3 * 60 
= 
id1 + 
id2 * 
id3 60 
= 
id1 + 
id2 * 
id3 inttofloat(60)
Processo de Compilação = 
• Geração de código 
Processo de construir 
instruções da linguagem 
de máquina (em 
assembly) que simulam 
as instruções 
reconhecidas na análise 
sintática. 
id1 + 
id2 * 
id3 inttofloat(60) 
temp1 = inttofloat(60) 
temp2 = id3 * temp1 
temp3 = id2 + temp2 
id1 = temp3 
//otimização 
temp1 = id3 * 60.0 
id1 = id2 + temp1
Processo de Compilação 
• Geração de código 
Processo de construir 
instruções da linguagem 
de máquina (em 
assembly) que simulam 
as instruções 
reconhecidas na análise 
sintática. 
temp1 = id3 * 60.0 
id1 = id2 + temp1 
load id3 r2 
mul 60.0 r2 
load id2 r1 
add r2 r1 
store r1 id1
Linguagens Compiladas 
•Vantagens: 
•Execução rápida, o código já está traduzido! 
•Executáveis são pequenos 
•VOCÊ CONTROLA o hardware 
•Desvantagens: 
• Só roda na arquitetura em que for compilado 
•VOCÊ CONTROLA o hardware
Linguagens Interpretadas 
•Do latim interpretare 
•Significa EXPLICAR, TRADUZIR 
•Fonte traduzido para uma linguagem 
intermediária (normalmente Bytecode) que 
mais tarde será novamente traduzido para 
linguagem de máquina
Processo de Interpretação 
Programa (Alto nível) 
Programa (Intermediário/Executável) 
Máquina Virtual (Interpretadora)
Processo de Interpretação 
• Máquina virtual (VM) 
Traduz os comandos da linguagem intermediária 
para linguagem de máquina em tempo de 
execução. A VM reconhece toda a arquitetura 
de hardware e traduz de acordo com o 
equipamento (culpa do Java).
Linguagens Interpretadas 
•Vantagens 
• Independe de arquitetura (desde que suporte a 
máquina virtual) 
• A MÁQUINA VIRTUAL controla o hardware 
•Desvantagens 
• Desempenho inferior à linguagem compilada por causa 
da tradução Just-in-time, mas nada alarmante 
• Consome bastante hardware (estou olhando pra você, 
Java) 
• A MÁQUINA VIRTUAL controla o hardware
Exercícios PARA ENTREGAR 
1) Que diferença básica existe entre linguagens compiladas 
de linguagens interpretadas? 
2) Por que temos necessidade de compilar ou interpretar 
código? 
3) Explique o processo de compilação. 
4) Explique o processo de interpretação. 
5) Quais vantagens e desvantagens há na compilação? 
6) Quais vantagens e desvantagens há na interpretação? 
7) Qual dos tipos de linguagens é melhor? Defenda seu 
ponto de vista.

Mais conteúdo relacionado

Mais procurados

Aula 1 - Introdução ao Conteúdo de Banco de Dados
Aula 1 - Introdução ao Conteúdo de Banco de DadosAula 1 - Introdução ao Conteúdo de Banco de Dados
Aula 1 - Introdução ao Conteúdo de Banco de Dados
Henrique Nunweiler
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
Mauro Pereira
 

Mais procurados (20)

Compiler Design Introduction
Compiler Design IntroductionCompiler Design Introduction
Compiler Design Introduction
 
Introdução à Lógica de Programação
Introdução à Lógica de ProgramaçãoIntrodução à Lógica de Programação
Introdução à Lógica de Programação
 
Programming Fundamental Slide No.1
Programming Fundamental Slide No.1Programming Fundamental Slide No.1
Programming Fundamental Slide No.1
 
Programming Language
Programming LanguageProgramming Language
Programming Language
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
 
Compiler design Introduction
Compiler design IntroductionCompiler design Introduction
Compiler design Introduction
 
Aula 1 - Introdução ao Conteúdo de Banco de Dados
Aula 1 - Introdução ao Conteúdo de Banco de DadosAula 1 - Introdução ao Conteúdo de Banco de Dados
Aula 1 - Introdução ao Conteúdo de Banco de Dados
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Aula 10 Software - sistema operacional e aplicativos
Aula 10 Software - sistema operacional e aplicativosAula 10 Software - sistema operacional e aplicativos
Aula 10 Software - sistema operacional e aplicativos
 
Software Embutido
Software EmbutidoSoftware Embutido
Software Embutido
 
Language translator
Language translatorLanguage translator
Language translator
 
compiler and their types
compiler and their typescompiler and their types
compiler and their types
 
Tutorial de Microsoft Office Word
Tutorial de Microsoft Office WordTutorial de Microsoft Office Word
Tutorial de Microsoft Office Word
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
 
Compiladores 1
Compiladores 1Compiladores 1
Compiladores 1
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Proqramlasdirma dillerinin tesnifati
Proqramlasdirma dillerinin tesnifatiProqramlasdirma dillerinin tesnifati
Proqramlasdirma dillerinin tesnifati
 
Introdução ao PowerPoint
Introdução ao PowerPointIntrodução ao PowerPoint
Introdução ao PowerPoint
 

Destaque

Route2 company introduction_25.07.11
Route2 company introduction_25.07.11Route2 company introduction_25.07.11
Route2 company introduction_25.07.11
Tim Barker
 

Destaque (20)

Como recuperar senhas WEP de redes wireless com Backtrack
Como recuperar senhas WEP de redes wireless com BacktrackComo recuperar senhas WEP de redes wireless com Backtrack
Como recuperar senhas WEP de redes wireless com Backtrack
 
Introdução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLIntrodução à Engenharia de Software e UML
Introdução à Engenharia de Software e UML
 
Processo de Desenvolvimento de Software - Linguagens Imperativas x Declarativas
Processo de Desenvolvimento de Software - Linguagens Imperativas x DeclarativasProcesso de Desenvolvimento de Software - Linguagens Imperativas x Declarativas
Processo de Desenvolvimento de Software - Linguagens Imperativas x Declarativas
 
Serviços de Rede - VNC
Serviços de Rede - VNCServiços de Rede - VNC
Serviços de Rede - VNC
 
Dias do futuro presente da programação
Dias do futuro presente da programaçãoDias do futuro presente da programação
Dias do futuro presente da programação
 
Todas as coisas que todo programador não pode deixar de saber
Todas as coisas que todo programador não pode deixar de saberTodas as coisas que todo programador não pode deixar de saber
Todas as coisas que todo programador não pode deixar de saber
 
Route2 company introduction_25.07.11
Route2 company introduction_25.07.11Route2 company introduction_25.07.11
Route2 company introduction_25.07.11
 
Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...
Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...
Os paradoxos de Blub, Python, a décima lei de Greenspun e porque você deveria...
 
Processo de Desenvolvimento de Software - Programação e Linguagens Fortemente...
Processo de Desenvolvimento de Software - Programação e Linguagens Fortemente...Processo de Desenvolvimento de Software - Programação e Linguagens Fortemente...
Processo de Desenvolvimento de Software - Programação e Linguagens Fortemente...
 
Banco de Dados - Introdução: Participação dos bancos de dados no desenvolvime...
Banco de Dados - Introdução: Participação dos bancos de dados no desenvolvime...Banco de Dados - Introdução: Participação dos bancos de dados no desenvolvime...
Banco de Dados - Introdução: Participação dos bancos de dados no desenvolvime...
 
Coisas que levei um tempo para aprender
Coisas que levei um tempo para aprenderCoisas que levei um tempo para aprender
Coisas que levei um tempo para aprender
 
Por que voce precisa (re)aprender linguagens funcionais
Por que voce precisa (re)aprender linguagens funcionaisPor que voce precisa (re)aprender linguagens funcionais
Por que voce precisa (re)aprender linguagens funcionais
 
Voce Tem Orgulho Do Seu Codigo
Voce Tem Orgulho Do Seu CodigoVoce Tem Orgulho Do Seu Codigo
Voce Tem Orgulho Do Seu Codigo
 
Processo de Desenvolvimento de Software - Prototipação
Processo de Desenvolvimento de Software - PrototipaçãoProcesso de Desenvolvimento de Software - Prototipação
Processo de Desenvolvimento de Software - Prototipação
 
Processo de Desenvolvimento de Software - Programação
Processo de Desenvolvimento de Software - ProgramaçãoProcesso de Desenvolvimento de Software - Programação
Processo de Desenvolvimento de Software - Programação
 
Grafologia autoconhecimento e qualidade de vida
Grafologia autoconhecimento e qualidade de vidaGrafologia autoconhecimento e qualidade de vida
Grafologia autoconhecimento e qualidade de vida
 
MVP ShowCast IT - Mensageria - Exchange 2013 Firewalls e Protocolos
MVP ShowCast IT - Mensageria - Exchange 2013 Firewalls e ProtocolosMVP ShowCast IT - Mensageria - Exchange 2013 Firewalls e Protocolos
MVP ShowCast IT - Mensageria - Exchange 2013 Firewalls e Protocolos
 
Aplicando conceitos gerais de gerenciamento de projetos à engenharia de software
Aplicando conceitos gerais de gerenciamento de projetos à engenharia de softwareAplicando conceitos gerais de gerenciamento de projetos à engenharia de software
Aplicando conceitos gerais de gerenciamento de projetos à engenharia de software
 
Paradigmas de Programação
Paradigmas de ProgramaçãoParadigmas de Programação
Paradigmas de Programação
 
Processo de Desenvolvimento de Software - Fase de Definição
Processo de Desenvolvimento de Software - Fase de DefiniçãoProcesso de Desenvolvimento de Software - Fase de Definição
Processo de Desenvolvimento de Software - Fase de Definição
 

Semelhante a Processo de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas

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
Gerhard Saboia
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_Implementação
Wagner Zaparoli
 
Introdução à Programacao em Processing
Introdução à Programacao em Processing Introdução à Programacao em Processing
Introdução à Programacao em Processing
Jorge Cardoso
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
Ray Fran Pires
 
LIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de AlgoritmosLIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de Algoritmos
Rafael Martins
 

Semelhante a Processo de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas (20)

Programação de Microprocessadores
Programação de MicroprocessadoresProgramação de Microprocessadores
Programação de Microprocessadores
 
Code Masters
Code MastersCode Masters
Code Masters
 
Linguagem assembly
Linguagem assemblyLinguagem assembly
Linguagem assembly
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Linguagem de Programação
Linguagem de ProgramaçãoLinguagem de Programação
Linguagem de Programação
 
Paradigmas de Linguagem
Paradigmas de LinguagemParadigmas de Linguagem
Paradigmas de Linguagem
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
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
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_Implementação
 
Introdução à Programacao em Processing
Introdução à Programacao em Processing Introdução à Programacao em Processing
Introdução à Programacao em Processing
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
 
ESTRUTURA DE DADOS (JAVA) AULA 01
ESTRUTURA DE DADOS (JAVA) AULA 01ESTRUTURA DE DADOS (JAVA) AULA 01
ESTRUTURA DE DADOS (JAVA) AULA 01
 
LIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de AlgoritmosLIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de Algoritmos
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1
 
Introdução ao Java_14Agosto2012.pdf
Introdução ao Java_14Agosto2012.pdfIntrodução ao Java_14Agosto2012.pdf
Introdução ao Java_14Agosto2012.pdf
 
Conceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoConceitos Fundamentais de Programacao
Conceitos Fundamentais de Programacao
 
Mini Curso de C
Mini Curso de CMini Curso de C
Mini Curso de C
 
Aula 1 -_ambiente_visual_studio_2012
Aula 1 -_ambiente_visual_studio_2012Aula 1 -_ambiente_visual_studio_2012
Aula 1 -_ambiente_visual_studio_2012
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Swift na linha de comando
Swift na linha de comandoSwift na linha de comando
Swift na linha de comando
 

Mais de Natanael Simões

Mais de Natanael Simões (19)

Criação de Material Didático EAD como Ferramenta no Ensino Presencial
Criação de Material Didático EAD como Ferramenta no Ensino PresencialCriação de Material Didático EAD como Ferramenta no Ensino Presencial
Criação de Material Didático EAD como Ferramenta no Ensino Presencial
 
Eletroeletrônica Básica - A estrutura do átomo
Eletroeletrônica Básica - A estrutura do átomoEletroeletrônica Básica - A estrutura do átomo
Eletroeletrônica Básica - A estrutura do átomo
 
Apresentação da Disciplina de Eletroeletrônica Básica
Apresentação da Disciplina de Eletroeletrônica BásicaApresentação da Disciplina de Eletroeletrônica Básica
Apresentação da Disciplina de Eletroeletrônica Básica
 
Apresentação da Disciplina de Segurança da Informação
Apresentação da Disciplina de Segurança da InformaçãoApresentação da Disciplina de Segurança da Informação
Apresentação da Disciplina de Segurança da Informação
 
Apresentação da Disciplina de Software Livre
Apresentação da Disciplina de Software LivreApresentação da Disciplina de Software Livre
Apresentação da Disciplina de Software Livre
 
O que são resistores
O que são resistoresO que são resistores
O que são resistores
 
Componentes passivos e eletromecânicos
Componentes passivos e eletromecânicosComponentes passivos e eletromecânicos
Componentes passivos e eletromecânicos
 
Banco de Dados - Sistemas de Gerenciamento de Banco de Dados
Banco de Dados - Sistemas de Gerenciamento de Banco de DadosBanco de Dados - Sistemas de Gerenciamento de Banco de Dados
Banco de Dados - Sistemas de Gerenciamento de Banco de Dados
 
Banco de Dados - Tipos de Dados
Banco de Dados - Tipos de DadosBanco de Dados - Tipos de Dados
Banco de Dados - Tipos de Dados
 
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
 
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraBanco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
 
Banco de Dados - Entidade
Banco de Dados - EntidadeBanco de Dados - Entidade
Banco de Dados - Entidade
 
Banco de Dados - Dado, Informação e Abstração
Banco de Dados - Dado, Informação e AbstraçãoBanco de Dados - Dado, Informação e Abstração
Banco de Dados - Dado, Informação e Abstração
 
Instalação e Manutenção: Introdução a Arquitetura de Computadores
Instalação e Manutenção: Introdução a Arquitetura de ComputadoresInstalação e Manutenção: Introdução a Arquitetura de Computadores
Instalação e Manutenção: Introdução a Arquitetura de Computadores
 
Quanto vale a informação? Fundamentos de Segurança da Informação
Quanto vale a informação? Fundamentos de Segurança da InformaçãoQuanto vale a informação? Fundamentos de Segurança da Informação
Quanto vale a informação? Fundamentos de Segurança da Informação
 
Segurança da Informação - Ataques de Rede
Segurança da Informação - Ataques de RedeSegurança da Informação - Ataques de Rede
Segurança da Informação - Ataques de Rede
 
Serviços de Rede - Telnet e SSH
Serviços de Rede - Telnet e SSHServiços de Rede - Telnet e SSH
Serviços de Rede - Telnet e SSH
 
Serviços de Rede - SMTP, POP3 e IMAP
Serviços de Rede - SMTP, POP3 e IMAPServiços de Rede - SMTP, POP3 e IMAP
Serviços de Rede - SMTP, POP3 e IMAP
 
Segurança da Informação - Políticas de Segurança
Segurança da Informação - Políticas de SegurançaSegurança da Informação - Políticas de Segurança
Segurança da Informação - Políticas de Segurança
 

Processo de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas

  • 1. #PDS Prof. Natanael Simões facebook.com/natanaelsimoes Desenvolvimento: Programação Linguagens Compiladas x Linguagens Interpretadas @natanaelsimoes natanael.simoes@ifro.edu.br steamcommunity.com/id/natanaesimoes
  • 2. Objetivo • Compreender linguagens compiladas e interpretadas e suas diferenças estruturais
  • 3. Por que é preciso compilar ou interpretar? • Programas são escritos em linguagem de alto nível • Máquinas não conversam como os humanos, elas têm uma linguagem própria (ou linguagem de baixo nível)
  • 4. Por que é preciso compilar ou interpretar? Programa (Alto nível) Compilador/Interpretador Programa (Baixo nível) Hardware
  • 5. Linguagens Compiladas • Do latim compilare • Significa REUNIR, AJUNTAR • Fonte traduzido diretamente para linguagem de máquina
  • 6. Processo de Compilação Programa (Alto nível) Análise léxica Análise sintática Geração de código (Baixo nível) Programa (Objeto executável)
  • 7. Processo de Compilação • Análise léxica Reconhece as sequências de símbolos que representam uma unidade: o nome de uma variável, constante e palavras de instrução (while, for...) pos = ini + val * 60 id1 = id2 + id3 * 60
  • 8. Processo de Compilação • Análise sintática Identifica a estrutura gramatical do programa e o papel de cada componente. É construída uma árvore sintática (binária, estruturalmente) e uma tabela de símbolos que representam as variáveis. id1 = id2 + id3 * 60 = id1 + id2 * id3 60 = id1 + id2 * id3 inttofloat(60)
  • 9. Processo de Compilação = • Geração de código Processo de construir instruções da linguagem de máquina (em assembly) que simulam as instruções reconhecidas na análise sintática. id1 + id2 * id3 inttofloat(60) temp1 = inttofloat(60) temp2 = id3 * temp1 temp3 = id2 + temp2 id1 = temp3 //otimização temp1 = id3 * 60.0 id1 = id2 + temp1
  • 10. Processo de Compilação • Geração de código Processo de construir instruções da linguagem de máquina (em assembly) que simulam as instruções reconhecidas na análise sintática. temp1 = id3 * 60.0 id1 = id2 + temp1 load id3 r2 mul 60.0 r2 load id2 r1 add r2 r1 store r1 id1
  • 11. Linguagens Compiladas •Vantagens: •Execução rápida, o código já está traduzido! •Executáveis são pequenos •VOCÊ CONTROLA o hardware •Desvantagens: • Só roda na arquitetura em que for compilado •VOCÊ CONTROLA o hardware
  • 12. Linguagens Interpretadas •Do latim interpretare •Significa EXPLICAR, TRADUZIR •Fonte traduzido para uma linguagem intermediária (normalmente Bytecode) que mais tarde será novamente traduzido para linguagem de máquina
  • 13. Processo de Interpretação Programa (Alto nível) Programa (Intermediário/Executável) Máquina Virtual (Interpretadora)
  • 14. Processo de Interpretação • Máquina virtual (VM) Traduz os comandos da linguagem intermediária para linguagem de máquina em tempo de execução. A VM reconhece toda a arquitetura de hardware e traduz de acordo com o equipamento (culpa do Java).
  • 15. Linguagens Interpretadas •Vantagens • Independe de arquitetura (desde que suporte a máquina virtual) • A MÁQUINA VIRTUAL controla o hardware •Desvantagens • Desempenho inferior à linguagem compilada por causa da tradução Just-in-time, mas nada alarmante • Consome bastante hardware (estou olhando pra você, Java) • A MÁQUINA VIRTUAL controla o hardware
  • 16. Exercícios PARA ENTREGAR 1) Que diferença básica existe entre linguagens compiladas de linguagens interpretadas? 2) Por que temos necessidade de compilar ou interpretar código? 3) Explique o processo de compilação. 4) Explique o processo de interpretação. 5) Quais vantagens e desvantagens há na compilação? 6) Quais vantagens e desvantagens há na interpretação? 7) Qual dos tipos de linguagens é melhor? Defenda seu ponto de vista.