Você está na página 1de 11

Compiladores

Introdução

1
Etapas de Desenvolvimento

2
Etapas de Programação

Programa Fonte

Editor

Código Tradutor
de
Máquina

Problema?
Processadores:
Editor, tradutor e
Interpretador.
Interpretador
3
Níveis de Linguagens de Programação

Programa Fonte Linguagens de Alto Nível


Fáceis de ler, escrever e editar
Solução representada por um
Editor Texto que “esconde” os
Detalhes da máquina

Tradutor

Código
de
Máquina Linguagens de Baixo-nível:
Difíceis de ler, escrever e editar.
Programas pequenos: trabalhoso
Programas grandes: Impossível

Interpretador 4
Exemplo
s = (a+b+c)/2
Ar = sqrt (s*(s-a)(s-b)(s-c))
s(s-a)(s-b)(s-c)
Onde
s=(a+b+c)/2
Tradutor

Editor
LOAD R1,a; add R1, b; add R1, c;
DIV R1 #2;
LOAD R2, R1;
LOAD R3, R1; SUB R3, a; MULT R2, R3;
LOAD R3, R1; SUB R3, b; MULT R2, R3;
LOAD R3, R1; SUB R3, c; MULT R2, R3;
LOAD R0, R2; CALL sqrt 5
Mecanismos de Alto-Nível

 Expressões: regra para calcular um valor


 Tipos de Dados: primitivos e compostos
 Estruturas de Controle: seleção e repetição
 Declarações: identificação de entidades (valores,
variáveis, funções, procedimentos e tipos)
 Abstrações: separam o que uma computação faz, de como
ela é feita(procedimentos e funções)
 Encapsulação (abstração de dados): agrupa declarações,
com escolha de quais são visíveis

6
Processadores de Linguagens
de Programação
 Editor: permite a criação, modificação e armazenagem
em arquivos de um programa.
 Tradutor: traduz um texto de uma linguagem para outra.
– Compilador: traduz um programa de uma linguagem de alto-
nível para uma linguagem de baixo-nível.
 Interpretador: executa um programa escrito em uma
linguagem de programação.
 Podem ser encontrados de forma separada: ferramentas
de software, ou
 de forma integrada, tornando-se opções dentre de um
único sistema

7
Exemplo:Ferramentas de Software

Editor
Notepad

Jogo.java

Compilador
javac

Interpretador
Java
Jogo.class
8
Exemplo:Processador Integrado

Editor
Comandos: Dedicado
Abrir
Compilador
Editar
JBuilder Javac
Compilar

Executar Interpretador
Java
9
Especificação de Linguagem

Aprendo a
Crio uma Implemento os Escrever
Linguagem Processadores Programas
C-- de C-- Em C--

Projetista Implementador Programador

Especificação da Linguagem C--


10
Aspectos da Especificação

Especificação
Sintaxe: forma dos FORMAL: notação
programas Precisa (não ambígüa,
Consistente e completa)
 BNF
Retrições Contextuais
Linguagem (semântica estática):
De Regras de escopo das
Programação Declarações e regras de Especificação
Tipos inferência do INFORMAL
Tipo de cada expressão Escrita em
Linguagem natural
Semântica: significado dos
Programas (denotacional e
Operacional) Revisão
Leitura Obrigatória
11
Capítulo 1 Intro

Você também pode gostar