Aula 4©João M. P. Cardoso 1 Anatomia de um Compilador Compiladores, Aula Nº 4 João M. P. Cardoso.

Slides:



Advertisements
Apresentações semelhantes
gerador de código intermediário
Advertisements

Capítulo II – Algoritmos e Programas
I - Noções dum compilador
Seminários de Compiladores
Introdução da Disciplina
Aula Prática usando o NetBeans
Software Básico Silvio Fernandes
Algoritmos e Programação Linguagens de Programação Teoria Aula 5 (05/05) Universidade Federal do Vale do São.
Conteúdo: - Portugol.
Introdução à Compilação Prof. Leandro Magno Slides adaptados a partir do material cedido pelos professores Heloise Manica Paris Teixeira, Yandre M. G.
Teoria dos Compiladores
JavaCC e JJTree Geração de compiladores implementados em Java
Linguagem C Estruturas de Controle de Fluxos
Lex e Yacc.
Construção de Compiladores
Tradutores de Linguagens
André Luis Meneses Silva
Introdução a Linguagem de Programação C
O Portal do Estudante de Computação
Alocação de Registos (exercício) Compiladores João M. P. Cardoso.
Análise Semântica e Representação Intermédia
Análise Semântica e Representação Intermédia
Análise léxica e sintática
Aula prática - análise contextual
Ferramentas para a Construção de Compiladores: Lex & Yacc
Conversão de um NFA para um DFA com um exemplo
Do alto-nível ao assembly
Compiladores, Aula Nº 5 João M. P. Cardoso
Aula 3©Universidade do Algarve 1 Do alto-nível ao assembly Compiladores, Aula Nº 3 João M. P. Cardoso.
Compiladores, Aula Nº 11 João M. P. Cardoso
Compiladores, Aula Nº 7 João M. P. Cardoso
Compiladores, Aula Nº 9 João M. P. Cardoso
Aula 17 1 Análise Sintáctica Compiladores, Aula Nº 17 João M. P. Cardoso.
Compiladores, Aula Nº 10 João M. P. Cardoso
Professor Mário Dantas
Compiladores Prof. Claudio Benossi.
Geração de Código Teoria e Implementação de Linguagens Computacionais – IF688 Jobson Ronan Jeronimo da Silva
Análise Léxica Primeira fase de um compilador
Mayerber Carvalho Neto
Professor José Rui Aula 10
02/08/2011 Professor Leomir J. Borba- –
Aula 1 - Fundamentos Java SE Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Gilmar Medeiros – Agosto/2009.
Análise Léxica.
Aula 14 1 Análise Sintáctica Compiladores, Aula Nº 14 João M. P. Cardoso.
Analise sintática aula-07-analise-sintática.pdf.
Geração de Código aula-12-geração-de-código.pdf.
Execução de programas Cap. VIII.
Análise Léxica Prof. Alexandre Monteiro
Analise Semântica aula-10-analise-semântica.pdf.
Analisador Léxico Prof. Alexandre Monteiro
Projeto de Linguagens de Programação
Programação Orientada a Objetos - Java
Aula 12 1 Análise Sintáctica Compiladores, Aula Nº 12 João M. P. Cardoso.
FRASE ORAÇÃO PERÍODO Frase – é todo enunciado de sentido completo.
Back-End Compilação aula-11-back-end.pdf.
Analisador Léxico.
AST no ANTLR Teoria e Implementação de Linguagens Computacionais - IF688 Allan J. Souza
Revisão Compiladores – AP1
Aula de SableCC Teoria e Implementação de Linguagens Computacionais (Compiladores) - IF688 – Artur Ribeiro de Aquino – ara Allan Jefferson – ajss.
COMPILADORES 04 Prof. Marcos.
Compiladores – IF688 Professor: André Santos
Computabilidade e Linguagens Formais
CIn-UFPE1 Recuperação Inteligente de Informação O Apache Lucene João dos Prazeres Flávia Barros (revisora)
Faculdade Pernambuca - FAPE
Aula 6 1 Análise Lexical Compiladores, Aula Nº 6 João M. P. Cardoso.
Análise Semântica e Representação Intermédia
Compilador Software que traduz o texto (linguagem fonte) que representa um programa para código máquina(linguagem alvo) capaz de ser executado pelo.
COMPILADORES 03 Prof. Marcos.
Análise Contextual Mauro Araújo Teoria e Implementação de Linguagens Computacionais - IF688 Centro de Informática – CIn Universidade Federal de Pernambuco.
Circuitos Lógicos Sequenciais
Transcrição da apresentação:

Aula 4©João M. P. Cardoso 1 Anatomia de um Compilador Compiladores, Aula Nº 4 João M. P. Cardoso

Aula 4©João M. P. Cardoso 2 Viagem Do texto que representa o programa até ao código máquina Duas fases: Análise Reconhecimento dos enunciados no código fonte e armazenamento em estruturas internas Síntese Geração do código assembly a partir das estruturas internas

Aula 4©João M. P. Cardoso 3 Análise Lexical Lexical Analyzer (Scanner) Cadeia de Tokens Programa (cadeia de caracteres)

Aula 4©João M. P. Cardoso 4 Análise Lexical /* uma expressão simples */ y = b*x +c; // atribui a y ID(y) EQ ID(b) TIMES ID(x) PLUS ID(c) SEMICOLON EOF Lexical Analyzer (Scanner)

Aula 4©João M. P. Cardoso 5 Análise Lexical /* exemplo Int sum(int A[], int N) { Int i, 5sum = 0; For(i=0; i<N; i++) { sum = sum + A[i]; } return sum; } Tratamento de erros Não é uma palavra reservada nem um identificador Falta terminar comentário */

Aula 4©João M. P. Cardoso 6 Análise Sintáctica Syntax Analyzer (Parser) Árvore sintáctica Syntax Analyzer (Parser) Lexical Analyzer (Scanner) Cadeia de Tokens Programa (cadeia de caracteres)

Aula 4©João M. P. Cardoso 7 Análise Sintáctica b x * = y y = b*x + c + c Árvore Sintáctica (concreta)

Aula 4©João M. P. Cardoso 8 Análise Sintáctica bx y = + * c Árvore Sintáctica (abstracta): AST y = b*x + c

Aula 4©João M. P. Cardoso 9 Análise Sintáctica Tratamento de erros Int sum(int A[], int N)) { Int i, sum = 0; For(i=0; i<N; i++) { sum = sum + A[i] } retur sum; } Falta ‘;’ Não é palavra reservada Chaveta a mais Parêntesis a mais

Aula 4©João M. P. Cardoso 10 Análise Semântica Semantic Analyzer Syntax Analyzer (Parser) Árvore sintáctica Syntax Analyzer (Parser) Lexical Analyzer (Scanner) Cadeia de Tokens Programa (cadeia de caracteres) Representação intermédia tmp1 = b*x; tmp2 = tmp1 + c;

Aula 4©João M. P. Cardoso 11 Análise Semântica Tratamento de erros boolean sum(int A[], N) { Int i, sum; For(i=0; i<N; i++) { sum1 = sum + A[i]; } return sum; } Tipo não definido Não foi atribuído valor inicial a sum Tipo da variável retornada não confere com a declaração do cabeçalho da função Variável não declarada

Aula 4©João M. P. Cardoso 12 Optimização de código Code Optimizer Representação intermédia optimizada Representação intermédia Semantic Analyzer Syntax Analyzer (Parser) Árvore sintáctica Syntax Analyzer (Parser) Lexical Analyzer (Scanner) Cadeia de Tokens Programa (cadeia de caracteres)

Aula 4©João M. P. Cardoso 13 Geração de código assembly Code Generator Código Assembly Code Generator Code Optimizer Representação intermédia optimizada Representação intermédia Semantic Analyzer Syntax Analyzer (Parser) Árvore sintáctica Syntax Analyzer (Parser) Lexical Analyzer (Scanner) Cadeia de Tokens Programa (cadeia de caracteres) mult $t4, $t1,$t2; Add $t4, $t4, $t3;

Aula 4©João M. P. Cardoso 14 TPC Apresente os resultados de cada etapa de compilação para a expressão: y = a*x*x+b*x+c;