SlideShare a Scribd company logo
1 of 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.

More Related Content

What's hot

Homófonas, Homógrafas e Homónimas
Homófonas, Homógrafas e HomónimasHomófonas, Homógrafas e Homónimas
Homófonas, Homógrafas e HomónimasAna PAtrícia Lima
 
Manual de boas maneiras das fadas
Manual de boas maneiras das fadasManual de boas maneiras das fadas
Manual de boas maneiras das fadasprofessoraneves
 
Aula sobre Codecs de Vídeo
Aula sobre Codecs de VídeoAula sobre Codecs de Vídeo
Aula sobre Codecs de VídeoRobson Mioto
 
O tesouro---manuel-antónio-pina
O tesouro---manuel-antónio-pinaO tesouro---manuel-antónio-pina
O tesouro---manuel-antónio-pinaIsabelPereira2010
 
Oraosubordinadarelativasubstantivaeadjetiva
Oraosubordinadarelativasubstantivaeadjetiva Oraosubordinadarelativasubstantivaeadjetiva
Oraosubordinadarelativasubstantivaeadjetiva ostrapaula
 
Família de palavras e Campo lexical
Família de palavras e Campo lexicalFamília de palavras e Campo lexical
Família de palavras e Campo lexicalgifamiliar
 
Determinantes demonstrativos
Determinantes demonstrativosDeterminantes demonstrativos
Determinantes demonstrativosCristina Alves
 
Frase grupos constituintes
Frase grupos constituintesFrase grupos constituintes
Frase grupos constituintesarmindaalmeida
 
Quer brincar de pique esconde.pptx
Quer brincar de pique esconde.pptxQuer brincar de pique esconde.pptx
Quer brincar de pique esconde.pptxNaysa Taboada
 
Determinantes
DeterminantesDeterminantes
DeterminantesLurdes
 

What's hot (20)

Homófonas, Homógrafas e Homónimas
Homófonas, Homógrafas e HomónimasHomófonas, Homógrafas e Homónimas
Homófonas, Homógrafas e Homónimas
 
Expansao frases
Expansao frasesExpansao frases
Expansao frases
 
O Curupira
O CurupiraO Curupira
O Curupira
 
O polvo coceguinhas
O polvo coceguinhasO polvo coceguinhas
O polvo coceguinhas
 
Manual de boas maneiras das fadas
Manual de boas maneiras das fadasManual de boas maneiras das fadas
Manual de boas maneiras das fadas
 
Advérbio
AdvérbioAdvérbio
Advérbio
 
Aula sobre Codecs de Vídeo
Aula sobre Codecs de VídeoAula sobre Codecs de Vídeo
Aula sobre Codecs de Vídeo
 
24 valor do x
24 valor do x24 valor do x
24 valor do x
 
O tesouro---manuel-antónio-pina
O tesouro---manuel-antónio-pinaO tesouro---manuel-antónio-pina
O tesouro---manuel-antónio-pina
 
Oraosubordinadarelativasubstantivaeadjetiva
Oraosubordinadarelativasubstantivaeadjetiva Oraosubordinadarelativasubstantivaeadjetiva
Oraosubordinadarelativasubstantivaeadjetiva
 
Família de palavras e Campo lexical
Família de palavras e Campo lexicalFamília de palavras e Campo lexical
Família de palavras e Campo lexical
 
Determinantes demonstrativos
Determinantes demonstrativosDeterminantes demonstrativos
Determinantes demonstrativos
 
Frase grupos constituintes
Frase grupos constituintesFrase grupos constituintes
Frase grupos constituintes
 
A princesa malcriada
 A princesa malcriada A princesa malcriada
A princesa malcriada
 
Grupos constituintes
Grupos constituintesGrupos constituintes
Grupos constituintes
 
Quando a mãe grita...
Quando a mãe grita...Quando a mãe grita...
Quando a mãe grita...
 
Voz ativa e passiva
Voz ativa e passivaVoz ativa e passiva
Voz ativa e passiva
 
Graus dos adjetivos
Graus dos adjetivosGraus dos adjetivos
Graus dos adjetivos
 
Quer brincar de pique esconde.pptx
Quer brincar de pique esconde.pptxQuer brincar de pique esconde.pptx
Quer brincar de pique esconde.pptx
 
Determinantes
DeterminantesDeterminantes
Determinantes
 

Viewers also liked

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 BacktrackNatanael Simões
 
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 UMLNatanael Simões
 
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 DeclarativasNatanael Simões
 
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çãoLuiz Borba
 
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 saberLuiz Borba
 
Route2 company introduction_25.07.11
Route2 company introduction_25.07.11Route2 company introduction_25.07.11
Route2 company introduction_25.07.11Tim Barker
 
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...Luiz Borba
 
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...Natanael Simões
 
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...Natanael Simões
 
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 aprenderLuiz Borba
 
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 funcionaisLuiz Borba
 
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çãoNatanael Simões
 
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çãoNatanael Simões
 
Grafologia autoconhecimento e qualidade de vida
Grafologia autoconhecimento e qualidade de vidaGrafologia autoconhecimento e qualidade de vida
Grafologia autoconhecimento e qualidade de vidaCarlos Casalicchio
 
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 ProtocolosRover Marinho
 
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 softwareNatanael Simões
 
Paradigmas de Programação
Paradigmas de ProgramaçãoParadigmas de Programação
Paradigmas de ProgramaçãoNatanael Simões
 
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çãoNatanael Simões
 

Viewers also liked (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
 

Similar to Processo de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas

Programação de Microprocessadores
Programação de MicroprocessadoresProgramação de Microprocessadores
Programação de MicroprocessadoresDiogo Silva
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação Marcos Gregorio
 
Linguagem de Programação
Linguagem de ProgramaçãoLinguagem de Programação
Linguagem de ProgramaçãoIgor Cambongue
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programaçãoIgor Cambongue
 
Aula 03 - Interpretador [mr_@@@@@].pdf
Aula 03 - Interpretador [mr_@@@@@].pdfAula 03 - Interpretador [mr_@@@@@].pdf
Aula 03 - Interpretador [mr_@@@@@].pdfmouzinhoconcursos
 
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 JavaDaniel Brandão
 
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.pdfGerhard Saboia
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_ImplementaçãoWagner 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 iiiRay Fran Pires
 
LIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de AlgoritmosLIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de AlgoritmosRafael Martins
 
Introdução ao Java_14Agosto2012.pdf
Introdução ao Java_14Agosto2012.pdfIntrodução ao Java_14Agosto2012.pdf
Introdução ao Java_14Agosto2012.pdfRubenManhia
 
Conceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoConceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoJorge Cardoso
 

Similar to 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 de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
 
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
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programação
 
Aula 03 - Interpretador [mr_@@@@@].pdf
Aula 03 - Interpretador [mr_@@@@@].pdfAula 03 - Interpretador [mr_@@@@@].pdf
Aula 03 - Interpretador [mr_@@@@@].pdf
 
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
 

More from Natanael Simões

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 PresencialNatanael Simões
 
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 átomoNatanael Simões
 
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ásicaNatanael Simões
 
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çãoNatanael Simões
 
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 LivreNatanael Simões
 
Componentes passivos e eletromecânicos
Componentes passivos e eletromecânicosComponentes passivos e eletromecânicos
Componentes passivos e eletromecânicosNatanael Simões
 
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 DadosNatanael Simões
 
Banco de Dados - Tipos de Dados
Banco de Dados - Tipos de DadosBanco de Dados - Tipos de Dados
Banco de Dados - Tipos de DadosNatanael Simões
 
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...Natanael Simões
 
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 estrangeiraNatanael Simões
 
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çãoNatanael Simões
 
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 ComputadoresNatanael Simões
 
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çãoNatanael Simões
 
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 RedeNatanael Simões
 
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 SSHNatanael Simões
 
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 IMAPNatanael Simões
 
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çaNatanael Simões
 

More from 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.