Vous êtes sur la page 1sur 22

Linguagens, Nveis e Mquinas Virtuais

THIAGO WERLLEY BANDEIRA DA SILVA


INTRODUO
O que o computador digital?
uma mquina que soluciona problemas;
Uma sequncia de instrues programa;
executa programas, que so um conjunto de
instrues que descrevem como realizar uma tarefa.

Fonte: [https://goo.gl/bQZpCb]
INTRODUO
Os circuitos de um computador (Hardware)
reconhecem e executam um conjunto limitado e simples
de instrues linguagem de mquina.
Como exemplo:
soma, comparao, transferncia de dados de uma parte
da memria para outra parte.

Fonte: [https://goo.gl/uF7s6v]
INTRODUO

Instrues da linguagem de mquina (implementadas por


um projetistas de computadores) devem ser:
simples;
compatvel com o uso da mquina;
compatvel com a performance requerida;
ter custo e complexidade reduzidos.
INTRODUO

A linguagem de mquina de baixo nvel (binria) est muito


distante de uma linguagem natural alto nvel (humana).

(Linguagem Humana)
O que as pessoas precisam fazer complexo

X
(Linguagem Mquina)
o conjunto de instrues do computador simples
INTRODUO

Exemplo: o usurio quer calcular a correo trajetria de


um foguete at a lua
Como o usurio pode fazer isso em linguagem de
mquina? Trabalho difcil e tedioso para os humanos
Soluo:
Criar uma hierarquia de abstraes de nveis mais
altos baseadas nos nveis mais baixos.
Criar uma organizao estruturada de computadores
para facilitar a comunicao homem-mquina
Linguagens, Nveis e Mquinas Virtuais

Supondo a existncia das linguagens:


L1: linguagem natural, do usurio (alto nvel e
complexa);
L0: linguagem de mquina (baixo nvel e simples).

Como compatibilizar L1 com L0? Tm-se duas solues:


usar um tradutor;
usar um interpretador.
Linguagens, Nveis e Mquinas Virtuais

TRADUTOR:
Cada instruo de L1 substituda por um conjunto de
instrues equivalentes de L0;
Processador executa programa em L0;
Todo programa em L0 carregado em memria e
executado;
Programa pode ser traduzido uma nica vez e
executado vrias vezes.
Linguagens, Nveis e Mquinas Virtuais

INTERPRETADOR:
Cada instruo de L1 substituda por um conjunto de
instrues equivalentes de L0;
Processador executa instruo de L1 (transformada para
L0) antes de executar prxima instruo;
Cada instruo de L1, transformada para L0, carregada
na memria e executada;
No criado um programa em L0;
Programa deve ser novamente interpretado para ser
executado.
Linguagens, Nveis e Mquinas Virtuais
Observao: Pode ser utilizada uma metodologia hbrida:
TRADUTOR + INTERPRETADOR

Ao invs de pensar em traduo ou interpretao, pode-se imaginar


a existncia de um computador hipottico, ou de uma mquina
virtual M1, cuja linguagem de mquina seja L1 (e uma mquina real
M0 com linguagem L0)
Os programas poderiam ser escritos em L1, para a mquina M1 e:
serem executados diretamente em M1 se esta mquina fosse de
custo de construo baixo, ou
serem traduzidos ou interpretados para L0 e executados em M0
Linguagens, Nveis e Mquinas Virtuais

Na prtica se implementa a soluo 2 acima. As pessoas


escrevem programas para mquinas virtuais como se elas
realmente existissem.
Muitos nveis de mquinas virtuais podem ser
implementados. Cada linguagem usa a sua linguagem
antecessora como base, de modo que um computador
que use essa tcnica pode ser visto como um conjunto de
camadas ou nveis um em cima do outro
Linguagens, Nveis e Mquinas Virtuais
Programas em Ln so interpretados
Mquina Real Mn, com
Nvel n linguagem de mquina Ln
por um interpretador que roda em

... uma mquina de nvel inferior, ou


so traduzidos para a linguagem
de mquina de uma mquina de
nvel inferior
Mquina Real M3, com
Nvel 3 linguagem de mquina L3

Mquina Real M2, com


Programas em L2 so interpretados
Nvel 2 linguagem de mquina L2 por interpretadores que rodam em
M1 ou M0, ou so traduzidos para
L1 ou L0

Mquina Real M1, com Programas em L1 so interpretados


Nvel 1 linguagem de mquina L1 por um interpretador que roda em
M0, ou so traduzidos para L0

Programas em L0 podem ser


Mquina Real M0, com
Nvel 0 linguagem de mquina L0 executados diretamente pelos
circuitos eletrnicos

Fonte: [TANENBAUM, 2006]


Mquinas Multinveis Contemporneas
Nvel de Linguagem Orientada para problemas
Nvel 5 (Linguagens de ALTO NVEL)

Traduo (Compilador)
Nvel de MONTADOR ou ASSEMBLER
Nvel 4 (Mnemnicos)

Traduo (Montador)

Nvel do SISTEMA OPERACIONAL


Nvel 3
Interpretao parcial (sistemas
operacional)
Nvel convenciona de mquina
Nvel 2 (Linguagem MQUINA)
Cdigo binrio

Interpretao (microprograma)

RISC
Nvel 1 Nvel de MICROPROGRAMAO
(CISC)
Os microprogramas executados
diretamente pelo hardware
Nvel 0 Nvel de LGICO DIGITAL

Fonte: modificada de [TANENBAUM, 2006]


Mquinas Multinveis Contemporneas

Nvel 0: Nvel da Lgica Digital


Nvel mais baixo da estrutura
Objetos de interesse so conhecidos como portas
lgicas
Cada porta lgica tem 1 ou mais entradas digitais
(aceitam 0 ou 1) e calculam funes lgicas simples
sobre essas entradas. Exemplo: AND, OR, XOR,...
Portas lgicas so combinadas para formar o
Processador - principal dispositivo do computador
Mquinas Multinveis Contemporneas

Nvel 1: Nvel da Microarquitetura


Enxergamos uma memria local (8 a 32 registradores) e
a UAL (Unidade Aritmtica Lgica) que realiza
operaes aritmticas muito simples
Os registradores so conectados a UAL formando o
caminho dos dados
Operaes so controladas por um microprograma ou
diretamente por hardware
Microprograma um interpretador para as instrues do
nvel 2. (ver exemplo no livro)
Mquinas Multinveis Contemporneas
Nvel 2: Nvel da Arquitetura do Conjunto de Instrues (nvel ISA -
Instruction Set Architeture)
Definida pelo fabricante e dependente da arquitetura da mquina
Fabricantes disponibilizam "Manual de Referncia da Linguagem
de Mquina" ou "Princpios de operao do Computador Modelo
XYZ4W), ou algo similar.
Manuais descrevem como as instrues so executadas
interpretativamente pelo microprograma ou como elas so
executadas diretamente pelo hardware.
Essas informaes so necessrias para os desenvolvedores de
sistemas operacionais.
Mquinas Multinveis Contemporneas
Nvel 3: Nvel do Sistema Operacional
Instrues da linguagem deste nvel tambm podem conter
instrues do nvel ISA.
Suporta uma organizao diferente de memria
Suporta capacidade de rodar 2 ou mais programas
simultaneamente
Suporta sistemas de comandos ou de janelas (windows)
Programadores deste nvel, e tambm dos nveis mais baixos,
so conhecidos como programadores de sistema. Os
programadores dos nveis mais altos que este so chamados
programadores de aplicao.
Mquinas Multinveis Contemporneas

Nvel 4: Nvel da linguagem do montador ou de montagem


(Assembly language)
Linguagem de montagem: forma simblica de
representao das linguagens do nvel mais baixo.
Programas nessa linguagem so primeiro traduzidos
para as linguagens dos nveis 1, 2 e 3 e depois
interpretados pela mquina virtual apropriada ou pela
prpria mquina real.
Programa que realiza essa traduo chamado de
montador
Mquinas Multinveis Contemporneas

Nvel 5: Nvel das linguagens orientadas para soluo dos


problemas
Conhecidas como linguagens de alto nvel. Exemplos
Basic, C, Pascal, Java, LISP, ....
Programas so geralmente traduzidos para os nveis 3
e 4 por compiladores
Alguns so interpretados: Exemplo: programas em
Java, MatLab, ...
Mquinas Multinveis Contemporneas
Observaes finais importantes:
Computadores so projetados como uma srie de nveis, cada um
deles construdos em cima de seus precursores.
Cada nvel representa uma abstrao distinta, com diferentes objetos
e operaes
A abstrao permite ignorar, "abstrair", temporariamente detalhes
irrelevantes, de nveis mais baixos, reduzindo uma questo complexa
a algo muito mais fcil de ser entendido.
O conjunto de tipos de dados, operaes e caractersticas de cada um
dos nveis chamado arquitetura do nvel.
So parte da arquitetura, as caractersticas que um programador do
nvel deve enxergar, por exemplo, a disponibilidade de memria
Exerccios

1) Explique:
A) Tradutor;
B) Interpretador;
C) Mquina real.
2) Qual a diferena entre interpretao e traduo?
BIBLIOGRAFIA

Tanenbaum, A. S. Organizao Estruturada de Computadores. 5


edio. Pearson Education do Brasil

Vous aimerez peut-être aussi