SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Como funciona um computador?
 Algoritmos implementados por um programa

                           escrito em uma    sequências
                            linguagem de    de instruções
                             programação



Programadores se comunicam com computadores
através de uma linguagem de programação

                                                    1
 Para haver comunicação, é necessário que haja
uma linguagem em comum...




 ...ou um tradutor


                                              2
 Linguagens em geral...


Mais                                            Mais
 complexa   chinês       português,            simples
                            inglês etc      (computador
                     (usuário entende)        entende)




 É necessária uma espécie de tradução das
linguagens comuns para a linguagem binária, que é
o que o computador “entende” de fato

 Veremos a seguir que, na verdade, tradução é
apenas parte do processo
                                                 3
 A nível de                       Ling. de Prog.
                                                             T
                                                     N5      R
software, temos:                     Alto Nível
                                                             A
                                            Compilação       D
                                                             U
                                                             Ç
         Lê o código e, usando      Montagem         N4
                                                             Ã
         as informações nele                                 O
         contidas, manipula a
         memória.                            Montador

                                     Sistema         N3
                                    Operacional

                                             Interpretação
                                                 Parcial

                                 Macroprogramação     N2


                                             Interpretação
                                                             4
 A nível de hardware,                             Interpretação

temos:
                                       Microprogramação      N1
  Aqui, há um número muito maior de
  instruções do que havia no início.
  Com isso, mais circuitos devem ser                Só agora são executadas
  criados, aumentando o custo.                           as instruções
  Portanto, linguagem simples é
  necessária.
                                        Circuitos Digitais   N0




                                                                      5
Tradução X Interpretação

 O esquema das etapas de execução de um
 programa apresentado anteriormente não é uma
 generalização
 Isto porque existem linguagens compiladas
 (utilizam tradução) e outras, interpretadas
 A tradução é feita uma vez apenas. Já a
 interpretação é realizada cada vez que o programa
 é executado

                                               6
 Tradução:                            ________
                                       ________
                                                  Execução

                                       ________      ✔
           _________                   ________      ✔
           _________                   ________      ✔
           _________                   ________      ✔
           _________                   ________      ✔
           _________                   ________      ✔
           _________                   ________      ✔
                                       ________      .
              L2                                     .
                                       ________      .
                                             L1
 Interpretação:
           _________                    ✔
           _________                    ✔
           _________                    ✔
           _________
                                        ✔
           _________                     .
           _________                     .
                   Tempo de execução     .
              L2                         L1                  7
 Mas afinal, para que tantas etapas na
 execução de um programa?
 O esquema abaixo mostra um dos problemas
 que ocorreriam caso as instruções das
 linguagens em alto nível fossem executadas
 sem todas essas etapas

m        C       Pascal   Cobol   C++
                                        .....

 n     Pentium
          4
                   I7     Xeon    AMD   .....
                                                8
 Note que, para cada linguagem diferente, seria
  necessária uma maneira diferente de fazer suas
  instruções serem executadas. Isso para cada
  processador
 Para cada nova linguagem ou novo
  processador, já haveria uma nova necessidade
  para que o programa fosse executado
 No total, teríamos m*n
necessidades diferentes!

                                              9
 Todas aquelas etapas servem então para
 que, utilizando o conceito de divisão e
 conquista, os processadores não precisem “se
 preocupar” com linguagens, e vice-versa
 As instruções complexas são reduzidas a
 instruções em uma linguagem
 simples, entendida por todos os processadores
m        C       Pascal   Cobol   C++   .....


n      Pentium
          4
                   I7     Xeon    AMD   .....
                                                10
 Agora, são apenas m+n maneiras
 diferentes de execução de programas
 Intuitivamente, temos um custo maior por ter
 tantas etapas... mas não é bem assim. Dos níveis
 N5 até N3, o custo muitas vezes nem chega ao
 usuário, pois o software é compilado antes de
 chegar até ele
 É importante ressaltar que uma instrução em L2
 não pode nunca ser diretamente executada no
 nível N0
 Depois de N2, não ocorre mais tradução, apenas
 interpretação
                                              11
 Na interpretação, as instruções são apenas
  convertidas nas ordens em que serão
  executadas, o que acontece de N1 para N0 no
  esquema apresentado anteriormente
 Relembrando:
                Macroprogramação
                                           L2
                           Interpretação

                Microprogramação
                                           L1
                           Execução

                 Circuitos digitais
                                           Instruções

 A seguir, uma melhor representação das etapas
 de um programa até que ele esteja em L2
                                                        12
_____________        L5
                          _____________
                          _____________
                          _____________

                              Compilação

                _______         _______             _______
 ....... +      _______
                _______
                          +     _______
                                _______
                                           +        _______
                                                    _______
                                                               + .......    L4


                              Montagem


                          010010101101
                          001010101010         L3 -> L2 + L1
O programa em L3 tem
                          101011100110
também os endereços de
                               ...
memória envolvidos no
processo
                          101101010101         L2
                          010100101101
                               ...                                         13
Curiosidades

 Em Delphi, é possível manipular o programa no
nível de montagem. Com isso, pode-se ter uma
noção maior de quanto tempo levará sua execução
 Atualmente, no caso de dispositivos móveis, por
exemplo, programa-se em alto nível e depois acessa-
se o programa em nível de montagem, para que
sejam reprogramadas apenas as partes “ruins”
                                               14
 Com o conceito de linguagens (L1, L2, L3 etc)
 apresentado, temos também o conceito de
 máquinas virtuais. Por exemplo:


                 Macroprogramação
                                                      Máquina
                                       L2             virtual L3


                 Microprogramação                   Máquina virtual L2

                                       L1
                                                    Máquina física
                  Circuitos digitais
                                       Instruções
                                                                   15
 Generalizando para o topo, temos:

            Linguagem de programação
                   de alto nível

                                         L5
                            Compilação


                        .
                        .
                        .
                        .
                        .
                        .
                        .                     Máquina
                        .                     virtual à vista
                        .                     do usuário
                        .                                       16
Abstração
 Considere o seguinte esquema:
       C                                       Pascal                        Java
                 Compilador B   Compilador C
                                                 Compilador D
  Compilador A




            Windows                    Linux


                                                                Política de compatibilidade
                                                                da Intel: todas as instruções
   Processador                  Processador
        1                            2                          entendidas por um Pentium
                                                                4 são entendidas também
                                                                pelo I7 (mais avançado)
                                                                                          17
 Vimos anteriormente que os compiladores A, B, C
 e D não são necessariamente diferentes, assim
 como os processadores
 Porém, com processadores que não sejam da
 Intel, é possível que sejam necessários diferentes
 compiladores para cada situação
 A linguagem Java, teoricamente, não possui
 restrições de plataforma
 Veremos a seguir que ela utiliza
 uma espécie de disfarce...

                                                18
Através da abstração, a JVM (Java Virtual Machine)
 “esconde” as complexidades que envolvem as
 plataformas

                                  ______________
                 Java             ______________
                                  ______________



                                _________________
                                _________________
                                _________________
                                _________________

                                   Java ByteCode

                 JVM

                        Máquina Virtual Java
                                                    19

Weitere ähnliche Inhalte

Was ist angesagt?

Fundamentos de sistemas de informação
Fundamentos de sistemas de informaçãoFundamentos de sistemas de informação
Fundamentos de sistemas de informaçãoLeonardo Melo Santos
 
O que é Computação Gráfica?
O que é Computação Gráfica?O que é Computação Gráfica?
O que é Computação Gráfica?Liliane Machado
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisvini_campos
 
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas OperacionaisSistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas OperacionaisCharles Fortes
 
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisFundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisHelder Lopes
 
Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)escoteirodabahia
 
Ihc2016.2 aula 9 engenharia cognitiva e teoria da ação
Ihc2016.2 aula 9    engenharia cognitiva e teoria da açãoIhc2016.2 aula 9    engenharia cognitiva e teoria da ação
Ihc2016.2 aula 9 engenharia cognitiva e teoria da açãoTicianne Darin
 
Métodos Ágeis e Scrum - Introdução
Métodos Ágeis e Scrum - IntroduçãoMétodos Ágeis e Scrum - Introdução
Métodos Ágeis e Scrum - IntroduçãoYuri Morais
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisAdir Kuhn
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de SoftwareAricelio Souza
 
Programação Concorrente - Introdução
Programação Concorrente - IntroduçãoProgramação Concorrente - Introdução
Programação Concorrente - IntroduçãoFabio Moura Pereira
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosMessias Batista
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoElaine Cecília Gatto
 
Gerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisGerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisLeandro Júnior
 
Noções básicas de Sistemas Operacionais
Noções básicas de Sistemas OperacionaisNoções básicas de Sistemas Operacionais
Noções básicas de Sistemas OperacionaisLuciano Crecente
 

Was ist angesagt? (20)

Fundamentos de sistemas de informação
Fundamentos de sistemas de informaçãoFundamentos de sistemas de informação
Fundamentos de sistemas de informação
 
O que é Computação Gráfica?
O que é Computação Gráfica?O que é Computação Gráfica?
O que é Computação Gráfica?
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas OperacionaisSistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
 
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos IniciaisFundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
Fundamentos de Sistemas Operacionais - Aula 2 - Conceitos Iniciais
 
Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)Aula 9 gerenciamento_memoria (1)
Aula 9 gerenciamento_memoria (1)
 
Ihc2016.2 aula 9 engenharia cognitiva e teoria da ação
Ihc2016.2 aula 9    engenharia cognitiva e teoria da açãoIhc2016.2 aula 9    engenharia cognitiva e teoria da ação
Ihc2016.2 aula 9 engenharia cognitiva e teoria da ação
 
Métodos Ágeis e Scrum - Introdução
Métodos Ágeis e Scrum - IntroduçãoMétodos Ágeis e Scrum - Introdução
Métodos Ágeis e Scrum - Introdução
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Programação Concorrente - Introdução
Programação Concorrente - IntroduçãoProgramação Concorrente - Introdução
Programação Concorrente - Introdução
 
Gerenciamento de memória
Gerenciamento de memóriaGerenciamento de memória
Gerenciamento de memória
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
SO-04 Escalonamento de Processos
SO-04 Escalonamento de ProcessosSO-04 Escalonamento de Processos
SO-04 Escalonamento de Processos
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - Processos
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de Programação
 
Gerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisGerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas Operacionais
 
Noções básicas de Sistemas Operacionais
Noções básicas de Sistemas OperacionaisNoções básicas de Sistemas Operacionais
Noções básicas de Sistemas Operacionais
 

Andere mochten auch (20)

Máquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da MicroarquiteturaMáquinas Multiníveis - Nível da Microarquitetura
Máquinas Multiníveis - Nível da Microarquitetura
 
Maquinas multinivel
Maquinas multinivelMaquinas multinivel
Maquinas multinivel
 
Hierarquia de níveis
Hierarquia de níveisHierarquia de níveis
Hierarquia de níveis
 
Introducao a Sistemas Operacionais
Introducao a Sistemas OperacionaisIntroducao a Sistemas Operacionais
Introducao a Sistemas Operacionais
 
Processadores
ProcessadoresProcessadores
Processadores
 
Processadores
ProcessadoresProcessadores
Processadores
 
Evolução dos processadores
Evolução dos processadoresEvolução dos processadores
Evolução dos processadores
 
Processadores mais utilizados atualmente
Processadores mais utilizados atualmenteProcessadores mais utilizados atualmente
Processadores mais utilizados atualmente
 
Processadores
Processadores Processadores
Processadores
 
Processadores
ProcessadoresProcessadores
Processadores
 
Aula 15 processadores
Aula 15 processadoresAula 15 processadores
Aula 15 processadores
 
Evolução dos processadores
Evolução dos processadoresEvolução dos processadores
Evolução dos processadores
 
Processadores
ProcessadoresProcessadores
Processadores
 
O processador
O processadorO processador
O processador
 
Barramentos
Barramentos Barramentos
Barramentos
 
Modelo de von neumann
Modelo de von neumannModelo de von neumann
Modelo de von neumann
 
Barramento
BarramentoBarramento
Barramento
 
Barramentos
BarramentosBarramentos
Barramentos
 
Barramentos
BarramentosBarramentos
Barramentos
 
Processadores
ProcessadoresProcessadores
Processadores
 

Ähnlich wie Maquinas multinivel

Arquiteturas de Computadores - slides
Arquiteturas de Computadores - slidesArquiteturas de Computadores - slides
Arquiteturas de Computadores - slidesGuilherme Ferreira
 
Arquiteturas de computadores! slidesversaopdf
Arquiteturas de computadores!   slidesversaopdfArquiteturas de computadores!   slidesversaopdf
Arquiteturas de computadores! slidesversaopdfMarcelle Guiné
 
Plataforma net pdf
Plataforma net pdfPlataforma net pdf
Plataforma net pdfAPlima
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação Marcos Gregorio
 
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
 
Programação de Microprocessadores
Programação de MicroprocessadoresProgramação de Microprocessadores
Programação de MicroprocessadoresDiogo Silva
 
linguagens_de_programacao.ppt
linguagens_de_programacao.pptlinguagens_de_programacao.ppt
linguagens_de_programacao.pptJadna Almeida
 
Organização de computadores
Organização de computadoresOrganização de computadores
Organização de computadoresTiago
 
Aula 03 - Interpretador [mr_@@@@@].pdf
Aula 03 - Interpretador [mr_@@@@@].pdfAula 03 - Interpretador [mr_@@@@@].pdf
Aula 03 - Interpretador [mr_@@@@@].pdfmouzinhoconcursos
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Leinylson Fontinele
 
Programação 1
Programação 1Programação 1
Programação 1essa
 
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdfTREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdfssuser059c2c1
 
Aula de C para Linux
Aula de C para LinuxAula de C para Linux
Aula de C para LinuxChris x-MS
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programaçãoSandro Lopes
 

Ähnlich wie Maquinas multinivel (20)

Arquiteturas de computadores slides
Arquiteturas de computadores   slidesArquiteturas de computadores   slides
Arquiteturas de computadores slides
 
Arquiteturas de Computadores - slides
Arquiteturas de Computadores - slidesArquiteturas de Computadores - slides
Arquiteturas de Computadores - slides
 
Arquiteturas de computadores! slidesversaopdf
Arquiteturas de computadores!   slidesversaopdfArquiteturas de computadores!   slidesversaopdf
Arquiteturas de computadores! slidesversaopdf
 
Plataforma net pdf
Plataforma net pdfPlataforma net pdf
Plataforma net pdf
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
 
Paradigmas de Linguagem
Paradigmas de LinguagemParadigmas de Linguagem
Paradigmas de Linguagem
 
Programação de Microprocessadores
Programação de MicroprocessadoresProgramação de Microprocessadores
Programação de Microprocessadores
 
Mini Curso de C
Mini Curso de CMini Curso de C
Mini Curso de C
 
linguagens_de_programacao.ppt
linguagens_de_programacao.pptlinguagens_de_programacao.ppt
linguagens_de_programacao.ppt
 
Organização de computadores
Organização de computadoresOrganização de computadores
Organização de computadores
 
Aula 03 - Interpretador [mr_@@@@@].pdf
Aula 03 - Interpretador [mr_@@@@@].pdfAula 03 - Interpretador [mr_@@@@@].pdf
Aula 03 - Interpretador [mr_@@@@@].pdf
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
 
Programação 1
Programação 1Programação 1
Programação 1
 
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdfTREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
 
Aula de C para Linux
Aula de C para LinuxAula de C para Linux
Aula de C para Linux
 
Hardware
HardwareHardware
Hardware
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programação
 
Apostila s7
Apostila s7Apostila s7
Apostila s7
 
Cap02
Cap02Cap02
Cap02
 

Mehr von Marcelle Guiné (20)

Apresentação
ApresentaçãoApresentação
Apresentação
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Microprogramacao
MicroprogramacaoMicroprogramacao
Microprogramacao
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Aspectos basicos de hardware e software
Aspectos basicos de hardware e softwareAspectos basicos de hardware e software
Aspectos basicos de hardware e software
 
Montagem
MontagemMontagem
Montagem
 
Fluxo de controle
Fluxo de controleFluxo de controle
Fluxo de controle
 
Instrucoes
InstrucoesInstrucoes
Instrucoes
 
Tipos de memoria
Tipos de memoriaTipos de memoria
Tipos de memoria
 
Pipeline
PipelinePipeline
Pipeline
 
Principios da microprogramacao
Principios da microprogramacaoPrincipios da microprogramacao
Principios da microprogramacao
 
Macroprogramacao
MacroprogramacaoMacroprogramacao
Macroprogramacao
 
Pilhas
PilhasPilhas
Pilhas
 
Microprogramacao
MicroprogramacaoMicroprogramacao
Microprogramacao
 
Aspectos basicos de hardware e software
Aspectos basicos de hardware e softwareAspectos basicos de hardware e software
Aspectos basicos de hardware e software
 
Introducao
IntroducaoIntroducao
Introducao
 
Introducao
IntroducaoIntroducao
Introducao
 

Maquinas multinivel

  • 1. Como funciona um computador?  Algoritmos implementados por um programa escrito em uma sequências linguagem de de instruções programação Programadores se comunicam com computadores através de uma linguagem de programação 1
  • 2.  Para haver comunicação, é necessário que haja uma linguagem em comum...  ...ou um tradutor 2
  • 3.  Linguagens em geral... Mais Mais complexa chinês português, simples inglês etc (computador (usuário entende) entende)  É necessária uma espécie de tradução das linguagens comuns para a linguagem binária, que é o que o computador “entende” de fato  Veremos a seguir que, na verdade, tradução é apenas parte do processo 3
  • 4.  A nível de Ling. de Prog. T N5 R software, temos: Alto Nível A Compilação D U Ç Lê o código e, usando Montagem N4 Ã as informações nele O contidas, manipula a memória. Montador Sistema N3 Operacional Interpretação Parcial Macroprogramação N2 Interpretação 4
  • 5.  A nível de hardware, Interpretação temos: Microprogramação N1 Aqui, há um número muito maior de instruções do que havia no início. Com isso, mais circuitos devem ser Só agora são executadas criados, aumentando o custo. as instruções Portanto, linguagem simples é necessária. Circuitos Digitais N0 5
  • 6. Tradução X Interpretação  O esquema das etapas de execução de um programa apresentado anteriormente não é uma generalização  Isto porque existem linguagens compiladas (utilizam tradução) e outras, interpretadas  A tradução é feita uma vez apenas. Já a interpretação é realizada cada vez que o programa é executado 6
  • 7.  Tradução: ________ ________ Execução ________ ✔ _________ ________ ✔ _________ ________ ✔ _________ ________ ✔ _________ ________ ✔ _________ ________ ✔ _________ ________ ✔ ________ . L2 . ________ . L1  Interpretação: _________ ✔ _________ ✔ _________ ✔ _________ ✔ _________ . _________ . Tempo de execução . L2 L1 7
  • 8.  Mas afinal, para que tantas etapas na execução de um programa?  O esquema abaixo mostra um dos problemas que ocorreriam caso as instruções das linguagens em alto nível fossem executadas sem todas essas etapas m C Pascal Cobol C++ ..... n Pentium 4 I7 Xeon AMD ..... 8
  • 9.  Note que, para cada linguagem diferente, seria necessária uma maneira diferente de fazer suas instruções serem executadas. Isso para cada processador  Para cada nova linguagem ou novo processador, já haveria uma nova necessidade para que o programa fosse executado  No total, teríamos m*n necessidades diferentes! 9
  • 10.  Todas aquelas etapas servem então para que, utilizando o conceito de divisão e conquista, os processadores não precisem “se preocupar” com linguagens, e vice-versa  As instruções complexas são reduzidas a instruções em uma linguagem simples, entendida por todos os processadores m C Pascal Cobol C++ ..... n Pentium 4 I7 Xeon AMD ..... 10
  • 11.  Agora, são apenas m+n maneiras diferentes de execução de programas  Intuitivamente, temos um custo maior por ter tantas etapas... mas não é bem assim. Dos níveis N5 até N3, o custo muitas vezes nem chega ao usuário, pois o software é compilado antes de chegar até ele  É importante ressaltar que uma instrução em L2 não pode nunca ser diretamente executada no nível N0  Depois de N2, não ocorre mais tradução, apenas interpretação 11
  • 12.  Na interpretação, as instruções são apenas convertidas nas ordens em que serão executadas, o que acontece de N1 para N0 no esquema apresentado anteriormente  Relembrando: Macroprogramação L2 Interpretação Microprogramação L1 Execução Circuitos digitais Instruções  A seguir, uma melhor representação das etapas de um programa até que ele esteja em L2 12
  • 13. _____________ L5 _____________ _____________ _____________ Compilação _______ _______ _______ ....... + _______ _______ + _______ _______ + _______ _______ + ....... L4 Montagem 010010101101 001010101010 L3 -> L2 + L1 O programa em L3 tem 101011100110 também os endereços de ... memória envolvidos no processo 101101010101 L2 010100101101 ... 13
  • 14. Curiosidades  Em Delphi, é possível manipular o programa no nível de montagem. Com isso, pode-se ter uma noção maior de quanto tempo levará sua execução  Atualmente, no caso de dispositivos móveis, por exemplo, programa-se em alto nível e depois acessa- se o programa em nível de montagem, para que sejam reprogramadas apenas as partes “ruins” 14
  • 15.  Com o conceito de linguagens (L1, L2, L3 etc) apresentado, temos também o conceito de máquinas virtuais. Por exemplo: Macroprogramação Máquina L2 virtual L3 Microprogramação Máquina virtual L2 L1 Máquina física Circuitos digitais Instruções 15
  • 16.  Generalizando para o topo, temos: Linguagem de programação de alto nível L5 Compilação . . . . . . . Máquina . virtual à vista . do usuário . 16
  • 17. Abstração  Considere o seguinte esquema: C Pascal Java Compilador B Compilador C Compilador D Compilador A Windows Linux Política de compatibilidade da Intel: todas as instruções Processador Processador 1 2 entendidas por um Pentium 4 são entendidas também pelo I7 (mais avançado) 17
  • 18.  Vimos anteriormente que os compiladores A, B, C e D não são necessariamente diferentes, assim como os processadores  Porém, com processadores que não sejam da Intel, é possível que sejam necessários diferentes compiladores para cada situação  A linguagem Java, teoricamente, não possui restrições de plataforma  Veremos a seguir que ela utiliza uma espécie de disfarce... 18
  • 19. Através da abstração, a JVM (Java Virtual Machine) “esconde” as complexidades que envolvem as plataformas ______________ Java ______________ ______________ _________________ _________________ _________________ _________________ Java ByteCode JVM Máquina Virtual Java 19