SlideShare une entreprise Scribd logo
1  sur  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.

Contenu connexe

Tendances

Assembly para pc-25paginas
Assembly para pc-25paginasAssembly para pc-25paginas
Assembly para pc-25paginasMikeNandes
 
Arquitetura de Computadores: Assembly
Arquitetura de Computadores: AssemblyArquitetura de Computadores: Assembly
Arquitetura de Computadores: AssemblyElaine Cecília Gatto
 
iOS 11からのDeviceCheck #とは
iOS 11からのDeviceCheck #とはiOS 11からのDeviceCheck #とは
iOS 11からのDeviceCheck #とはKenji Tanaka
 
Informática aplicada a gestão - Material 1
Informática aplicada a gestão   - Material 1Informática aplicada a gestão   - Material 1
Informática aplicada a gestão - Material 1João Filho
 
用十分鐘 向jserv學習作業系統設計
用十分鐘  向jserv學習作業系統設計用十分鐘  向jserv學習作業系統設計
用十分鐘 向jserv學習作業系統設計鍾誠 陳鍾誠
 
Arquitetura e organização de computadores
Arquitetura e organização de computadoresArquitetura e organização de computadores
Arquitetura e organização de computadoresHenrique Freitas
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de ProgramaçãoRicardo Terra
 
An other world awaits you
An other world awaits youAn other world awaits you
An other world awaits you信之 岩永
 
Palestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPalestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPET Computação
 
Engenharia Semiótica e Engenharia Cognitiva
Engenharia Semiótica e Engenharia CognitivaEngenharia Semiótica e Engenharia Cognitiva
Engenharia Semiótica e Engenharia CognitivaDayane Cristine Leite
 

Tendances (20)

Assembly para pc-25paginas
Assembly para pc-25paginasAssembly para pc-25paginas
Assembly para pc-25paginas
 
Arquitetura de Computadores: Assembly
Arquitetura de Computadores: AssemblyArquitetura de Computadores: Assembly
Arquitetura de Computadores: Assembly
 
Arquitetura paralela
Arquitetura paralelaArquitetura paralela
Arquitetura paralela
 
Micro-controllers (PIC) based Application Development
Micro-controllers (PIC) based Application DevelopmentMicro-controllers (PIC) based Application Development
Micro-controllers (PIC) based Application Development
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
iOS 11からのDeviceCheck #とは
iOS 11からのDeviceCheck #とはiOS 11からのDeviceCheck #とは
iOS 11からのDeviceCheck #とは
 
Informática aplicada a gestão - Material 1
Informática aplicada a gestão   - Material 1Informática aplicada a gestão   - Material 1
Informática aplicada a gestão - Material 1
 
用十分鐘 向jserv學習作業系統設計
用十分鐘  向jserv學習作業系統設計用十分鐘  向jserv學習作業系統設計
用十分鐘 向jserv學習作業系統設計
 
Arquitetura e organização de computadores
Arquitetura e organização de computadoresArquitetura e organização de computadores
Arquitetura e organização de computadores
 
Assembler
AssemblerAssembler
Assembler
 
Linkers And Loaders
Linkers And LoadersLinkers And Loaders
Linkers And Loaders
 
Dispositivos de entrada e saída
Dispositivos de entrada e saídaDispositivos de entrada e saída
Dispositivos de entrada e saída
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de Programação
 
An other world awaits you
An other world awaits youAn other world awaits you
An other world awaits you
 
Palestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPalestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas Embarcados
 
Manual TIC
Manual TICManual TIC
Manual TIC
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Aula teclado
Aula tecladoAula teclado
Aula teclado
 
Aplicações web parte 1
Aplicações web parte 1Aplicações web parte 1
Aplicações web parte 1
 
Engenharia Semiótica e Engenharia Cognitiva
Engenharia Semiótica e Engenharia CognitivaEngenharia Semiótica e Engenharia Cognitiva
Engenharia Semiótica e Engenharia Cognitiva
 

En vedette

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
 

En vedette (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
 

Similaire à 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
 

Similaire à 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
 

Plus de 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
 

Plus 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.