III – Análise sintáctica

Slides:



Advertisements
Apresentações semelhantes
Software Básico Silvio Fernandes
Advertisements

Tópicos em Compiladores
Listas Lineares Estrutura que permite representar um conjunto de dados de forma a preservar a relação de ordem linear. Uma lista linear é composta de nós,
Compiladores Claudio Benossi
II – Análise léxica DEI Papel do analisador léxico.
II – Análise léxica DEI Conversão de expressões regulares em autómatos finitos determinísticos mínimos Bibliografia aconselhada: Aho, Sethi e Ullman –
III – Análise sintáctica
III – Análise sintáctica
II – Análise léxica DEI lex: linguagem de especificação para analisadores léxicos Implementação de simuladores de autómatos finitos Bibliografia aconselhada:
III – Análise sintáctica
I - Noções dum compilador
III – Análise sintáctica
III – Análise sintáctica Parsers ascendentes Instruções shift-reduce Bibliografia aconselhada: –Aho, Sethi e Ullman – secção 4.5 LFA 1999/ Jorge.
I - Noções dum compilador
IV – Análise semântica DEI Associação de regras semânticas a produções
I - Noções dum compilador Partes dum compilador Ferramentas de construção de compiladores Bibliografia aconselhada: –Aho, Sethi e Ullman – Cap. 1 LFA 1999/2000.
III – Análise sintáctica
III – Análise sintáctica
V – Geração de código Chamada de funções Organização de memória Passagem de parâmetros Representação de código intermédio Bibliografia aconselhada: –Aho,
III – Análise sintáctica Geradores de parsers Bibliografia aconselhada: –Aho, Sethi e Ullman – secção 4.9 LFA 1999/ Jorge Morais.
IV – Análise semântica DEI Implementação da tabela de símbolos
I - Noções dum compilador
VI – Optimização de código Blocos básicos Optimização de ciclos Bibliografia aconselhada: –Apontamentos LFA 1999/ Jorge Morais.
Linguagens Formais e Autómatos
Compiladores I Cristiano Damiani Vasconcellos
Introdução à Computação - Jorge Macêdo
Forma Normal de Chomsky
Resolução.
Análise Dada uma cadeia de terminais w, queremos saber se wL(G) ou não. Se for o caso, poderemos querer achar uma derivação de w. Um algoritmo que pode.
Análise Sintática Ascendente
Universidade Federal da Paraíba Departamento de Informática Construção de Compiladores Verificação de Tipos.
Construção de Compiladores
Construção de Compiladores
Prof. Bruno Moreno Aula 4 – 11/03/2011
Análise léxica e sintática
Lex Linguagem (e compilador) para especificar analisadores léxicos.
Ferramentas para a Construção de Compiladores: Lex & Yacc
Determinar o tipo de gramática
Compiladores, Aula Nº 11 João M. P. Cardoso
Compiladores, Aula Nº 19 João M. P. Cardoso
Compiladores, Aula Nº 9 João M. P. Cardoso
Compiladores, Aula Nº 10 João M. P. Cardoso
Sintaxe e Semântica Prof.: Gláucya Carreiro Boechat
Análises léxica e sintática
Análise Léxica e Sintática
Esquemas de Tradução Prof. Alexandre Monteiro
Capítulo II Gramáticas e Linguagens
Analise sintática aula-07-analise-sintática.pdf.
Análise Sintática LR Prof. Alexandre Monteiro
Análises léxica e sintática
Projeto de Tradutor Preditivo. Introdução Introdução Esquemas L-atribuidos são reconhecidos por analisadores Top-Down. Entre estes analisadores, se encontra.
Aula prática 2 Operadores e Expressões Comandos de Decisão Comentários
Aula 12 1 Análise Sintáctica Compiladores, Aula Nº 12 João M. P. Cardoso.
Compiladores.
Análise Sintática Prof. Alexandre Monteiro
Tradução Dirigida por Sintaxe
Árvores Binárias Profa. Patrícia A. Jaques Luiz Gonzaga Jr
Revisão Compiladores – AP2
Análise Sintática de Descida Recursiva
Linguagens Livres de Contexto
Compiladores Análise Sintática
COMPILADORES 04 Prof. Marcos.
Um Tradutor Dirigido por Sintaxe Simples
VII – Conceitos avançados Garbage Collection Linguagens orientadas a objectos Bibliografia aconselhada: –Apontamentos LFA 1999/ Jorge Morais.
Sintaxe de uma Linguagem
Analisador sintático: Tipos de análises sintáticas
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.
Faculdade Pernambuca - FAPE Compiladores Abril/2007 Compiladores Abril/2007.
Informática Teórica Engenharia da Computação. Teoria da Computação Contexto do que vamos começar a estudar As linguagens também podem ser definidas formalmente.
Transcrição da apresentação:

III – Análise sintáctica DEI Eliminação de ambiguidade Eliminação de recursividade à esquerda Factorização à esquerda Bibliografia aconselhada: Aho, Sethi e Ullman – secções 4.2 e 4.3 Jorge Morais LFA 1999/2000 - 1

Ambiguidade de gramáticas DEI Uma gramática diz-se ambígua se existirem duas derivações diferentes para uma mesma sequência Exemplo: E  E + E id + id +id Jorge Morais LFA 1999/2000 - 2

Ambiguidade do if-then-else DEI Inst  if Expr then Inst | if Expr then Inst else Inst | resto... Gramática ambígua Exemplo: if E1 then if E2 then S1 else S2 Jorge Morais LFA 1999/2000 - 3

Eliminação de ambiguidade DEI Associar cada else com o then não associado mais próximo Inst  InstA | InstNA InstA  if Expr then InstA else InstA | resto InstNA  if Expr then Inst | if Expr then InstA else InstNA Jorge Morais LFA 1999/2000 - 4

Precedência de operadores DEI Consideremos a gramática: E  E + E | E - E | E * E | E / E | ( E ) | id Pode-se eliminar a ambiguidade determinando a precedência de operadores: E  E + T | E - T | T T  T * F | T / F | F F  ( E ) | id Jorge Morais LFA 1999/2000 - 5

Recursividade à esquerda DEI Uma gramática diz-se recursiva à esquerda se existe uma variável A tal que existe uma derivação A + A  Exemplo: A  A  |  Eliminação da recursividade à esquerda A   A’ A’   A’ |  Jorge Morais LFA 1999/2000 - 6

Eliminação da Recursividade DEI A  A 1 | A 2 | ... | A m | 1 | 2 | ... | n onde nenhum i começa por A Podemos reescrever como A  1 A’ | 2 A’ | ... | n A’ A’  1 A’ | 2 A’ | ... | m A’ |  Esta regra só elimina derivações de um passo Jorge Morais LFA 1999/2000 - 7

Exemplo DEI E  E + T | E - T | T T  T * F | T / F | F F  ( E ) | id E  T E’ E’  + T E’ | - T E’ |  T  F T’ T’  * F T’ | / F T’ |  F  ( E ) | id Jorge Morais LFA 1999/2000 - 8

Factorização à esquerda DEI A factorização à esquerda é uma transformação útil para parsers preditivos A   1 |  2 | ... |  n |  A   A’ |  A’  1 | 2 | ... | n Jorge Morais LFA 1999/2000 - 9