100 likes | 241 Views
Teoria dos Compiladores. Filippe Jabour 2004 Versão 1.0.1. 1 – Introdução - Conceito.
E N D
Teoria dos Compiladores Filippe Jabour 2004 Versão 1.0.1
1 – Introdução - Conceito • Conceito: Compilador é um programa que aceita como entrada um texto de programa em uma certa linguagem (fonte) e produz como saída um texto de programa em outra linguagem (alvo), enquanto preserva o significado deste texto (sua semântica). • Exemplo: • Programa fonte e C compilado para código de máquina para processador da série Pentium.
1 – Introdução - Conceito Texto Fonte Front-end (análise) Represen-tação Semântica Back-end (síntese) Texto Fonte OU Back-end de Interpretação
1 – Introdução - Interpretação • Vantagens do uso de Interpretação: • Maior portabilidade. • Projeto menos trabalhoso que o de um back-end que gere o código objeto. • Depuração. • Segurança. • Exemplo: Java.
1.1 O modelo de compilação Análise e Síntese • Análise: Divide o programa fonte nas partes constituintes e cria uma representação intermediária. • Síntese: Constrói o programa alvo a partir da representação intermediária. • Análise gera a árvore sintática.
:= total + valorBase * incr 40 1.1 - O modelo de compilação Análise e Síntese total := valorBase + incr * 40 Os nós representam operações e seus filhos os argumentos da operação Árvore sintática para a expressão acima
1.1 O modelo de compilação Análise e Síntese • Editores de estrutura: Auxiliam na geração do código fonte. • Pretty printers: Formatação sugestiva. • Verificadores estáticos: Antever erros sem executar o programa. • Formatadores de textos: são compiladores. • Compiladores de silício: Geram circuitos. • Interpretadores de queries: Interpretam requisições de acesso a bancos de dados.
1.1.1 - O contexto de um compilador • Ver páginas 3 e 4, Capítulo 1, Notas de aula 2 (Word), até figura 1.3. • 1.2 – Análise do programa fonte • Ver 1.2 de “Notas de aula 2 (Word)”. • 1.3 – As fases de um compilador • Ver 1.3 de “Notas de aula 2 (Word)”.
Referências [GRUNE] Projeto Moderno de Compiladores Implementação e Aplicações. Dick Grune, Henri E. Bal, Ceriel J. H. Jacobs, Koen G. Langendoen. Rio de Janeiro: Campus, 2001. ISBN: 85-352-0876-3. [AHO] Compiladores Princípios, Técnicas e Ferramentas. Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman. LTC, 1995.