Sie sind auf Seite 1von 19

Docente: Domingos Filipe

de Oliveira

Introduo
Informtica
Conferncia n 11 Compiladores e Interpretadores

Introduo
Linguagens:
Homem: natural + notaes (como a
matemtica)
Mquina: nvel muito atmico (dgitos,
binrios, registradores, memria etc)

Soluo proposta: linguagem de Alto

Nvel
Programa

Tradutor

Programa
Objeto

Fonte

Tradutor: Compilador ou Interpretador


2

Docente: Domingos Filipe de


Oliveira

Linguagem de programao
Mtodo

padronizado para expressar


instrues para um computador;

Conjunto

de regras sintticas e
semnticas usadas para definir um
programa de computador.

Docente: Domingos Filipe de


Oliveira

Programao de Alto
Nvel
Linguagens de programao com um

nvel de abstrao relativamente


elevado, longe do cdigo de mquina e
mais prximo linguagem humana.
Ex.:

Docente: Domingos Filipe de


Oliveira

Programao de Baixo
Nvel
Linguagem

de programao mais
prxima ao cdigo da mquina e,
portanto, menos abstrata. Possui forte
relao
entre
as
operaes
implementadas pela linguagem e as
operaes
implementadas
pelo
hardware.

Ex.: Assembly.
5

Docente: Domingos Filipe de


Oliveira

Tradutores de Linguagens
Recebem um texto expresso em uma

linguagem fonte e geram um texto


semanticamente equivalente em uma
linguagem destino.
Chins para ingls
Java para C

Docente: Domingos Filipe de


Oliveira

linguagens de
programao
Programa

que recebe como entrada um


programa escrito em uma linguagem de
programao (chamada linguagem fonte) e
produz
como resultado as instrues deste
programa
traduzidas
para
linguagem
de
mquina (chamada linguagem objeto);

Se

a linguagem do programa fonte uma


linguagem de montagem (Assembly) o tradutor
chamado de Montador (Assembler);

Traduzem os programas escritos em duas classes:

compiladores e interpretadores
7

Docente: Domingos Filipe de


Oliveira

Compiladores

Tem a finalidade de converter uma linguagem fonte


de fcil escrita e leitura para os programadores numa
linguagem alvo ou objecto, que possa ser executada
pelas mquinas;

O cdigo executvel gerado pelo compilador


dependente do sistema operacional e da
linguagem de mquina para o qual o cdigo
fonte foi traduzido.

A enorme variedade de compiladores existentes bem


vinda, visto que existem milhares de linguagens fontes,
e as linguagem alvo so tambm muito variadas.
8

Docente: Domingos Filipe de


Oliveira

Fluxo / Iterao Compilao

Cdigo Fonte

Dados

Compilador
Compilador

Arquivo Executvel

Sada

Docente: Domingos Filipe de


Oliveira

Exemplos de Compiladores

10

Docente: Domingos Filipe de


Oliveira

Interpretador

Um interpretador, no momento da execuo do programa,


traduz cada instruo do programa e a executa em
seguida.

o tradutor transforma uma L.P. numa linguagem simplificada,


chamada Cdigo intermedirio, que pode ser diretamente
executado usando um programa chamado interpretador.

Recebem um programa fonte escrito em uma linguagem fonte, e


o executam imediatamente.

L, analisa e executa as instrues do programa fonte, uma de


cada vez.

Resultados imediatos, sem a traduo do programa para cdigo


objeto antes da execuo.
11

Docente: Domingos Filipe de


Oliveira

Fluxo / Iterao Interpretao

Programa Fonte

Interpretado
Interpretado
rr

Sada

Dados

12

Docente: Domingos Filipe de


Oliveira

Uso de Interpretadores
Programador trabalha em modo interativo, e quer ver o

resultado de uma instruo antes de entrar a prxima;

Programas descartveis, em que velocidade de execuo no

to importante;

Execuo de instrues apenas um vez, ou raramente;


Formato de instrues simples, podendo ser analisada fcil e

eficientemente.

Execuo (de linguagem de alto nvel) at 100 vezes mais lenta que
a verso compilada;

Inadequado quando o programa vai ser executado em produo, ou


executado frequentemente, ou instrues tem formato complicado,
difcil de ser analisado.
13

Docente: Domingos Filipe de


Oliveira

Interpretadores
Em alguns casos, a prpria linguagem fonte

pode ser a linguagem intermediria. Por ex, a


maioria das linguagens de comandos, na qual
nos comunicamos diretamente com o sistema
Operacional, so interpretadas sem nenhuma
traduo prvia (Ex. DOS).
Os Interpretadores so em geral, menores
que os Compiladores e facilitam as
implementaes mais completas de L.P.
A principal desvantagem que o tempo de
execuo de um programa interpretado
em
Docente: Domingos Filipe de
Oliveira
geral, maior que o 14de um correspondente

Como funcionam os
interpretadores ?
O funcionamento dos interpretadores muito

parecido ao dos compiladores, mas


O interpretador traduz o cdigo linha a linha.
O cdigo fonte no totalmente traduzido antes

de ser executado.
No existem fases distintas nem se produz cdigo

intermedirio.
Passa o tempo todo lendo e traduzindo cdigo.

15

Docente: Domingos Filipe de


Oliveira

Exemplos de interpretadores
SmallTalk;
AutoLisp;
Prolog(algumas verses);
Matlab;
Lisp.

16

Docente: Domingos Filipe de


Oliveira

Comparao
Vantagens
Execuo mais rpida
Compiladores

Desvantagens
Vrias
traduo

etapas

de

Permite
estruturas
de Programao
final

programao
mais maior,
necessitando
completas
mais memria para sua
execuo
Permite a optimizao do Processo de correo de
cdigo fonte
erros e depurao mais
demorado
Depurao do programas Execuo do programa
Interpretadores mais simples
mais lenta
Consome menos memria
Resultado
programa

Estruturas
de
dados
demasiado simples

imediato
do Necessrio
fornecer
Docente: Domingos
Filipe de o
17
ou
rotina programa
fonteOliveiraao

Interpretive Compiler
Combina caractersticas de interpretadores

e compiladores.

Compila

para
uma
linguagem
intermediria, e interpreta esta linguagem.

Linguagem intermediria: simples e rpido

de traduzir para ela, e simples e rpida de


interpretar.

Exemplo: Java, no JDK

18

Docente: Domingos Filipe de


Oliveira

Duvidas ???
Docente: Domingos

No existe perguntas bobas, existe


pessoas bobas que no
perguntam !!!