Profª Katia C. Lage dos Santos · Interpretador O programa conversor recebe a primeira instrução...

Post on 07-Nov-2018

216 views 0 download

Transcript of Profª Katia C. Lage dos Santos · Interpretador O programa conversor recebe a primeira instrução...

Compiladores

Profª Katia C. Lage dos Santos

Universidade Federal de Itajubá

katia.lage@unifei.edu.br

Tópicos da disciplina

Introdução a CompiladoresAnálise LéxicaAnálise SintáticaFerramentas para construção de compiladoresAnálise SemânticaGeração de Código Intermediário

Sobre a disciplina

O material com todas as informações da disciplina serão postados em:

http://www.slideshare.net/katialageDatas importantes:

Prova 1: 26/04Entrega do trabalho individual: 26/04Entrega e apresentação do trabalho em grupo: 14/06Prova 2: 21/06

Bibliografia

Compiladores: Princípios, Técnicas e Ferramentas. A. V. Aho, R. Sethi e J. D. Ullman. Editora Livros Técnicos e Científicos, 2007.Implementação de Linguagens de Programação: Compiladores. Ana M. de A. Price & Simão S. Toscani. Série Livros Didáticos No. 9. Editora Sagra Luzzatto, 2000.Compiladores: Princípios e Práticas. Kenneth C. Louden. Pioneira Thomson Learning, 2004.

Interpretador x Compilador

O computador deve converter os comandos dados em linguagem de alto nível para linguagem de máquina (códigos binários)Existem dois métodos básicos de abordagem na tradução de linguagem de alto nível para linguagem de máquina:

INTERPRETADORCOMPILADOR

Interpretador

O programa conversor recebe a primeira instrução do programa fonte, confere para ver se está escrita corretamente, converte-a em linguagem de máquina e então ordena ao computador que execute esta instrução. Depois repete o processo para a segunda instrução, e assim sucessivamente, até a última instrução do programa fonte. Quando a segunda instrução é trabalhada, a primeira é perdida, isto é, apenas uma instrução fica na memória em cada instante.

Interpretador

Se este programa fonte for executado uma segunda vez, novamente haverá uma nova tradução, comando por comando, pois os comandos em linguagem de máquina não ficam armazenados para futuras execuções.

O que é um compilador?

Principais Compiladores:Java

Principais Compiladores:C/C++

Diferenças entre Compiladores e Interpretadores

Definindo um compilador

Filtro (Conversor de Linguagem)

Pré-processador

Bibliotecas

Funções do Compilador

Diagrama da Compilação

Gerenciador da Tabela de Símbolos

Tratador de Erros

Fases da Compilação

Fases da Compilação

Front-end ou Análise

Análise Léxica

Análise Léxica

Análise Sintática(Parsing)

Análise Sintática

Análise Semântica

Análise Semântica

Geração de Código Intermediário

Geração de Código Intermediário

Back-end ou síntese

Otimização de códigointermediário

Otimização de códigointermediário

Geração de Código Alvo

Geração de Código Alvo

Ferramentas para Construção de Compiladores

Ferramentas para Construção de Compiladores

Ferramentas para Construção de Compiladores

Aplicações