Compiladores. Top-Down x Bottom Up. Plano da aula. Redução exemplo 1. Redução exemplo 1. Lembrando: construir a tabela de análise LL(1) A Abc b B d

Tamanho: px
Começar a partir da página:

Download "Compiladores. Top-Down x Bottom Up. Plano da aula. Redução exemplo 1. Redução exemplo 1. Lembrando: construir a tabela de análise LL(1) A Abc b B d"

Transcrição

1 Compiladores Análise sintática ) Análise ascendente Autômatos Empilhar/Reduzir Lembrando: construir a tabela de análise LL) Como fazer? Re-escrever gramática para satisfazer condições de LL) Calcular conjuntos irst e ollow Para cada produção A α. Para cada a irstα) incluir A αem M[A,a]. Se ε irstα) incluir A αem M[A,b] para cada b em ollowa). Se ε irstα) e ollowa) incluir A αto M[A,] odas entradas não definas são erros Plano da aula ransformação de Gramática Análise bottom-up ascendente): princípios gerais Vocabulário Exemplos Analisador com pilha reduz/empilha) Gramática LR abelas LR. op-down x Bottom Up Gramática: S A B A c ε B cbb ca op-down/esquerda S AB cb ccbb ccbca S AB A c B cbb B ca Entrada: ccbca Bottom-Up/Direita ccbca Acbca AcbB AB S A c B ca B cbb S AB Redução exemplo Redução exemplo Redução = substituição do lado direito de uma produção pelo não terminal correspondente lado esquerdo)

2 Redução exemplo Redução exemplo aade handle = seqüência de símbolos do lado direito da produção, tais que suas reduções levam, no final, ao símbolo inicial da gramática Redução exemplo Redução exemplo aade aade aabe Redução exemplo Redução exemplo aade aabe E E) + S

3 Redução exemplo Redução exemplo E E) + E + E E) + E + E + E Redução exemplo Redução exemplo E E) + E + E + E E E E) + E + E + E E E E E E) Redução exemplo + E + E + E E E E E Ações bottom-up empilha-reduz) A análise Bottom-Up vai necessitar: De uma pilha para guardar os símbolos De um buffer de entrada para a sentença w a ser reconheca. Operações lícitas: empilha ): coloca no topo da pilha o símbolo que está sendo lo e avança o cabeçote de leitura na string reduz reduce): substitui o handle no topo da pilha pelo não terminal correspondente aceita: reconhece que a sentença foi gerada pela gramática erro: ocorrendo erro de sintaxe, chama uma subrotina de atendimento a erros

4 Ações bottom-up: problemas Problema : Como decir qual lado direito de produção trocar pelo lado esquerdo redução)? Ações bottom-up: problemas Problema : Como decir qual lado direito de produção trocar pelo lado esquerdo redução)? Ler entrada da esquerda para direita Em algumas situações uma escolha aparece:. ler mais um caractere da entrada ou Análise. aplicar redução a S abc a ab abc S Entrada abc bc c Ação Ler Ler Ler Redução Aceitar Ações bottom-up: problemas Problema : Como decir qual lado direito de produção trocar pelo lado esquerdo redução)? - conflito reduce/reduce Problema : Como escolher entre ler ou aplicar a redução? Conflito Shift / Reduce Problema : Como guardar o substring que está sendo analisando? Pode ser uma combinação de ou mais símbolos terminais ou não-terminais) Pilha E E E) Pilha E E+ E+ E+E E E E EE E Entrada Ação Reduce E Reduce E Reduce Reduce E Reduce aceita! Ações em Parsing Empilha-Reduz Reduz Se: γα está na pilha A α existe um β tal que S γa β γαβ Então: Pode-se remover o handle α; Reduz-se γβ paraγa na pilha γα é um prefixo viável Ele pode derivar numa seqüência de terminais Shift empilha) Empilhar o terminal, avançar entrada Erro Aceitar Várias soluções para o parsing Bottom-Up O parsing bottom-up é mais poderoso do que o parsing op-down Regras aplicadas em reverso Pode adiar decisões de reduções Pode usar mais de um símbolo na entrada para tomar a decisão. Vários algoritmos para o parsing Shift-Reduce empilha-reduz): LR) Hoje SLR) LR) Próxima aula LALR)

5 Parser baseado em tabelas Lê a entrada de esquerda para direita L) Cria derivações mais a direita R) Usa um autômato finito com pilha Cada estado representa produções da gramática ransições são feitas a cada terminal/não terminal Pilha s t Parsing LR Parser LR Ação Estruturas de dados: Pilha de estados {s} e símbolos abela de ações: Action[s,t]; t abela de transições: Goto[s,X]; X N Goto Buffer de entrada abela Saída abela Ação/ransição LR) Ação: A partir de um estado s e de um terminal t, Ação[s, t] indica: Se se faz um S empilha) ou um Reduce R reduz) ao ler o símbolo a na entrada. Caso S: indica também o estado a empilhar; azer: empilhar o estado e avançar na leitura. Caso R: indica também a regra a reduzir e, a seguir, aplica uma ransição. azer: depilhar tantos estados como símbolos reduzos; empilhar o estado alvo do Gototopo Pilha, Símbolo reduzo). ransição goto): a partir de um estado s e de um nãoterminal X, Goto[s, X] indica o próximo estado a empilhar. Exemplo de uso de tabela Ação/ransição Gramática usada: S ) abela Ações/ransições Ações ) S Ok! S S R R R R R Goto E abela Ações/ransições Ações erminais Goto Não-erminais abela Ações/ransições Ações erminais Goto Não-erminais Estados S S R R ) S R R Ok! R E Estados S S R R ) S R R Ok! R E Shift e empilha

6 Estados abela Ações/ransições Ações erminais Goto Não-erminais ) E S Ok! Shift e empilha S S R R R R R Reduce a a regra Productions ) Análise de ) /) Stack Input ) ) ) ) ) Action Shift Shift Reduz, pop, goto [,]= Reduz, pop, goto [,]= Shift S Reduz ), pop, goto [,]= Reduz pop, goto [,]= Análise de ) /) Construindo tabelas LR Stack Input Action Reduz, pop, goto [,]= Shift S Shift Reduz, pop, goto [,]= Reduz pop, goto [,]= Aceitar Para montar as tabelas, precisa-se: Definir os estados, Definir os Gotos/Ações Os estados devem capturar o andamento na análise de quais símbolos podem ser reduzos. Vai-se dever calcular quais conjuntos de símbolos podem ser conserados como handles. Noção de ponto / fechamento. Os gotos e as açoes vão ser definos graças ao cálculo das transições entre os estados. endo analisado que tenho um handle, quais símbolos podem aparecer depois? Sucessor.) Cálculo dos conjuntos de itens canônicos LR A tabela pre-calcula todas as derivações possíveis a partir de um dado ponto de análise Left -> Right da entrada. Parte de noção de configuração ou ítem LR) associado a uma regra ou conjunto de regras) = uma regra da gramática com um ponto em algum lugar à direita. Exemplo: a regra possui quatro ítens: conjunto canônico de ítens O ponto representa até onde foi feita a análise Quer-se calcular os conjuntos canônicos de ítens = todos os ítens alcançáveis a partir de um conjunto de regras da gramática. Cada conjunto será um estado do parser LR Similar à conversão de AND para AD Cálculo dos conjuntos Propriedade de echamento: Se X X i X i+ X n está em um conjunto, e X i+ é um não-terminal que deriva emαi.e.: existe a regra X i+ α), então também entra no conjunto: X i+ α Itera-se essa operação Calcula-se o conjunto como um ponto fixo Ponto inicial: Acrecenta-se um não-terminal S à gramática Adiciona-se uma produção S S Conjunto de ítens Inicial é: fechamentos S)

7 Exemplo: fechamentos ) SucessorC,X) S ) S ) Estado É o segundo procedimento útil para montar a tabela LR Pega em argumento um conjunto de ítens C e um símbolo X Retorna um conjunto de ítens Informalmente: mover o ponto pelo símbolo X Cálculo do sucessor a partir do estado e ao ler X:. mover ponto para direita em todos os ítens de e onde o ponto precede X Para todas as regras A α X β em C, retorna A αx β. Calcular o fechamento deste conjunto de ítens.. Esse novo estado será sucessore,x) Sucessore, )) =? echamento )) = { Exemplo de Sucessor e = Estado = {S,,,, ) } ),,, ) } S ) Construção dos Conjuntos de Ítens amília de conjuntos de ítens Cada conjunto será um estado do parser proc itemsg ) C = fechamento{s S}); do foreach I C do foreach X N ) do C = C SucessorI, X); while C é modificado; Productions ) : S ) Reduz : : ) ) Reduz Aceitar : S : ) : ) Reduz : : Reduz : ) ) S S : S R R R ) ) S Reduz : : ) ) S R Reduce R ) S S R R R R R A Aceitar : S : ) A : ) Reduz : : Reduz : ) )

8 Construção abela LR). Construir = {I, I, I n } I é o estado inicial. a) Se {S S } I i então ação[i,] = aceitar b) Se {A α } I i e A!= S então ação[i,_] = reduzir A α c) Se {A α aβ} I i e SucessorI i,a)=i j então ação[i,a] = j. Se SucessorI i,a) == I j então goto[i,a] = j. odas as entradas não definas são erros Observações LR) sempre reduz se {A α } I i, sem lookahead Ítens Shift e Reduce podem estar no mesmo conjunto de configurações Pode haver mais de um ítem reduce por conjunto Problema com A Є LR) é fraco, consere: Sumário S ) = : = Conflito Shift/reduce! : Conflito Reduce/Reduce! A análise bottom-up usa: Handles, para determinar qual cadeia reduzir; abelas LR Goto/ransições) para determinar quais reduções e s efetuar. Usa-se um autômato de estados finitos, com uma pilha, para reconhecer uma sentença. Construído a partir dos itens canônicos echamento + propagação Vimos o LR) que é limitado. Como melhorar o algoritmo?

Análise Bottom-Up. Compiladores. Parsing LR. Tabela Ações/Transições. Análise LR. Construindo tabelas LR

Análise Bottom-Up. Compiladores. Parsing LR. Tabela Ações/Transições. Análise LR. Construindo tabelas LR Análise Bottom-Up Compiladores Análise sintática 5) Gramáticas SLR), LR) e LALR String Entrada -> Símbolo Inicial Regras aplicadas em reverso adiar decisões mais poderoso Noção de handle, redução, uso

Leia mais

Analisadores Ascendentes ou Empilha-Reduz. Mais um exemplo... Mais um exemplo... Top-Down x Bottom Up. Conteúdo da aula. Analisadores Ascendentes

Analisadores Ascendentes ou Empilha-Reduz. Mais um exemplo... Mais um exemplo... Top-Down x Bottom Up. Conteúdo da aula. Analisadores Ascendentes Conteúdo da aula Analisadores Ascendentes ou mpilha-reduz Marcelo Johann Analisadores Ascendentes uncionamento Analisadores de Precedência de Operadores Analisadores LR(k) SLR - Simple LR (estudaremos

Leia mais

Análise sintática. Análise sintática ascendente. Parte-se dos símbolos terminais em direção ao símbolo inicial da gramática. Derivação mais à direita

Análise sintática. Análise sintática ascendente. Parte-se dos símbolos terminais em direção ao símbolo inicial da gramática. Derivação mais à direita Análise sintática Função, interação com o compilador Análise descendente e ascendente Especificação e reconhecimento de cadeias de tokens válidas Implementação Tratamento de erros Prof. Thiago A. S. Pardo

Leia mais

Análise Sintática (Cap. 04) Análise Sintática Ascendente Analisador Sintático LR

Análise Sintática (Cap. 04) Análise Sintática Ascendente Analisador Sintático LR Análise Sintática (Cap. 04) Análise Sintática Ascendente Analisador Sintático LR Análise Sintática LR Analisadores sintáticos LR(k): L, verificação da entrada da esquerda para direita R, constrói a derivação

Leia mais

Compiladores - Análise Ascendente

Compiladores - Análise Ascendente Compiladores - Análise Ascendente Fabio Mascarenhas - 2013.2 http://www.dcc.ufrj.br/~fabiom/comp Análise Descendente vs. Ascendente As técnicas de análise que vimos até agora (recursiva com retrocesso,

Leia mais

Análise Sintáctica. Definições: Conjuntos First() e Follow() Compiladores, Aula Nº 19 João M. P. Cardoso. Conjunto First(β)

Análise Sintáctica. Definições: Conjuntos First() e Follow() Compiladores, Aula Nº 19 João M. P. Cardoso. Conjunto First(β) Análise Sintáctica Compiladores, Aula Nº 19 João M. P. Cardoso 1 Definições: Conjuntos First() e Follow() 2 Notação T é terminal, NT é nãoterminal, S é terminal ou não-terminal, e α e β representam sequências

Leia mais

Compiladores - Análise Ascendente

Compiladores - Análise Ascendente Compiladores - Análise Ascendente Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Descendente vs. Ascendente As técnicas de análise que vimos até agora (recursiva com retrocesso,

Leia mais

Reduce: reduz o que está imediatamente à esquerda do foco usando uma produção

Reduce: reduz o que está imediatamente à esquerda do foco usando uma produção Shift e reduce Shift: move o foco uma posição à direita A B C x y z A B C x y z é uma ação shift Reduce: reduz o que está imediatamente à esquerda do foco usando uma produção Se A x y é uma produção, então

Leia mais

Compiladores. Exemplo. Caraterísticas de Gramáticas. A αβ 1 αβ 2. A αx X β 1 β 2. Lembrando... Gramáticas Livres de Contexto

Compiladores. Exemplo. Caraterísticas de Gramáticas. A αβ 1 αβ 2. A αx X β 1 β 2. Lembrando... Gramáticas Livres de Contexto Compiladores Análise sintática (2) Análise Top-Down Lembrando... Gramáticas Livres de Contexto Análise sintática = parsing. Baseada em GLCs Gramática: S A B Top-Down Bottom-Up S AB cb ccbb ccbca S AB A

Leia mais

Análise Sintática Bottom-up

Análise Sintática Bottom-up MAB 471 2011.2 Análise Sintática Bottom-up http://www.dcc.ufrj.br/~fabiom/comp Recapitulando parsers top-down Constróem árvore sintática da raiz até as folhas Recursão à esquerda faz parsers entrarem em

Leia mais

Analisadores Sintáticos LR

Analisadores Sintáticos LR FACULDADE ANGLO AMERICANO FOZ DO IGUAÇU Curso de Ciência da Computação 7º Periodo Disciplina: Compiladores Prof. Erinaldo Sanches Nascimento Analisadores Sintáticos LR SLR LR Canônicos LALR Analisadores

Leia mais

Análise sintática. Questão. E se a análise sintática pudesse ser modelada por autômatos?

Análise sintática. Questão. E se a análise sintática pudesse ser modelada por autômatos? Análise sintática Função, interação com o compilador Análise descendente e ascendente Especificação e reconhecimento de cadeias de tokens válidas Implementação Tratamento de erros Prof. Thiago A. S. Pardo

Leia mais

Análise sintática. Prof. Thiago A. S. Pardo. Análise sintática ascendente

Análise sintática. Prof. Thiago A. S. Pardo. Análise sintática ascendente Análise sintática Função, interação com o compilador Análise descendente e ascendente Especificação e reconhecimento de cadeias de tokens válidas Implementação Tratamento de erros Prof. Thiago A. S. Pardo

Leia mais

INE5317 Linguagens Formais e Compiladores. AULA 10: Anális e S intática

INE5317 Linguagens Formais e Compiladores. AULA 10: Anális e S intática INE5317 Linguagens Formais e Compiladores AULA 10: Anális e S intática baseado em material produzido pelo prof Paulo B auth Menezes e pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC

Leia mais

Construção de Compiladores Aula 18 - Análise Sintática Ascendente

Construção de Compiladores Aula 18 - Análise Sintática Ascendente Construção de Compiladores Aula 18 - Análise Sintática Ascendente Bruno Müller Junior Departamento de Informática UFPR 10 de Novembro de 2014 Bruno Müller 5 Implementação Junior Departamento de Informática

Leia mais

Analisadores Descendentes Tabulares; Cjs First Follow

Analisadores Descendentes Tabulares; Cjs First Follow Conteúdo da aula nalisadores Descendentes Tabulares; Cjs First Follow Marcelo Johann nalisadores Descendentes Recursivos com Retrocesso Recursivos Preditivos Conjunto FIRT e Implementação nalisador Preditivo

Leia mais

V Teoria de Parsing. Termos Básicos: Parser Analisador Sintático Parsing Analise Sintática Parse Representação da analise efetuada

V Teoria de Parsing. Termos Básicos: Parser Analisador Sintático Parsing Analise Sintática Parse Representação da analise efetuada V Teoria de Parsing Termos Básicos: Parser Analisador Sintático Parsing Analise Sintática Parse Representação da analise efetuada Ascendentes: S + x (* Seq. Invertida Reducao *) dir Exemplo: Descendentes:

Leia mais

Plano da aula. Compiladores. Top-Down x Bottom Up. Redução Exemplo 1. Redução Exemplo 1. Redução Exemplo 1. A Abc b B d.

Plano da aula. Compiladores. Top-Down x Bottom Up. Redução Exemplo 1. Redução Exemplo 1. Redução Exemplo 1. A Abc b B d. Plano da aula Compiladores Análise bottom-up AKA: Analisador ascendente Analisador empilhar/reduzir Análise sintática (4) Análise Bottom-Up Autômatos mpilhar/reduzir xemplos Handle Operações básicas IQuestões

Leia mais

INE5318 Construção de Compiladores. AULA 4: Análise Sintática

INE5318 Construção de Compiladores. AULA 4: Análise Sintática INE5318 Construção de Compiladores AULA 4: Análise Sintática Ricardo Azambuja Silveira INE CTC UFSC E Mail: silveira@inf.ufsc.br URL: www.inf.ufsc.br/~silveira Definições preliminares Parser (Analisador

Leia mais

Introdução Análise Sintática Descendente Análise Sintática Ascendente. Aula Prática. Fernando Antônio Asevedo Nóbrega

Introdução Análise Sintática Descendente Análise Sintática Ascendente. Aula Prática. Fernando Antônio Asevedo Nóbrega Análise Sintática Aula Prática Fernando Antônio Asevedo Nóbrega Instituto de Ciências Matemáticas e de Computação USP SCC-206 Introdução à Compilação 9 de maio de 2012 1 / 16 Agenda 1 Introdução 2 Análise

Leia mais

Análise sintática. Análise sintática ascendente. Bottom-up, ascendente ou redutiva. Analisadores de precedência de operadores Analisadores LR

Análise sintática. Análise sintática ascendente. Bottom-up, ascendente ou redutiva. Analisadores de precedência de operadores Analisadores LR Análise sintática Função, interação com o compilador Análise descendente e ascendente Especificação e reconhecimento de cadeias de tokens válidas Implementação Tratamento de erros Prof. Thiago A. S. Pardo

Leia mais

COMPILADORES. Análise sintática. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática

COMPILADORES. Análise sintática. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPIADORES Análise sintática Analisadores Sintáticos R mais poderosos - R canônico, e - AR Prof. geovanegriesang@unisc.br Toda gramática

Leia mais

COMPILADORES. Análise sintática. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática

COMPILADORES. Análise sintática. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Análise sintática Parte 05 Prof. geovanegriesang@unisc.br Data Conteúdo 23/09/2013 3. Análise Sintática: 3.1 analisadores

Leia mais

Compiladores - Análise SLR

Compiladores - Análise SLR Compiladores - Análise SLR Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Um exemplo que funciona Todo estado com um item de redução e algum outro item causa conflito LR(0)! A técnica LR(0)

Leia mais

Compiladores Analisador Sintático. Prof. Antonio Felicio Netto Ciência da Computação

Compiladores Analisador Sintático. Prof. Antonio Felicio Netto Ciência da Computação Compiladores Analisador Sintático Prof. Antonio Felicio Netto antonio.felicio@anhanguera.com Ciência da Computação 1 Análise Sintática - A Análise Sintática constitui a segunda fase de um tradutor de uma

Leia mais

Análise Sintática II. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 34

Análise Sintática II. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 34 Análise Sintática II Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Outubro, 2016 1 / 34 Sumário 1 Introdução 2 Ambiguidade 3 Análise sintática descendente 4

Leia mais

Revisão. Fases da dacompilação

Revisão. Fases da dacompilação 1 Revisão Prof. Julio Arakaki Julio Arakaki 1 Fases da dacompilação Código fonte Análise Léxica tokens e lexemas Análise Sintática Árvore Sintática Abstrata (ASA) Análise Semântica ASA decorada Geração

Leia mais

Construção de Compiladores Aula 16 - Análise Sintática

Construção de Compiladores Aula 16 - Análise Sintática Construção de Compiladores Aula 16 - Análise Sintática Bruno Müller Junior Departamento de Informática UFPR 25 de Setembro de 2014 1 Introdução Hierarquia de Chomsky Reconhecedores Linguagens Livres de

Leia mais

V Análise Sintática. V.1.1 Gramáticas Livres de Contexto Definições de GLC

V Análise Sintática. V.1.1 Gramáticas Livres de Contexto Definições de GLC V Análise Sintática V.1 Fundamentos Teóricos V.1.1 G.L.C V.1.2 Teoria de Parsing V.2 Especificação Sintática de Ling. de Prog. V.3 - Implementação de PARSER s V.4 - Especificação Sintática da Linguagem

Leia mais

Linguagens Livres de Contexto

Linguagens Livres de Contexto Linguagens Livres de Contexto 1 Roteiro Gramáticas livres de contexto Representação de linguagens livres de contexto Formas normais para gramáticas livres de contexto Gramáticas ambíguas Autômatos de Pilha

Leia mais

Compiladores - Análise LL(1)

Compiladores - Análise LL(1) Compiladores - Análise LL(1) Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Gramáticas LL(1) Uma gramática é LL(1) se toda predição pode ser feita examinando um único token à frente Muitas

Leia mais

Análise Sintática. Fabiano Baldo

Análise Sintática. Fabiano Baldo Compiladores Análise Sintática Fabiano Baldo Gramáticas Livre de Contexto (GLC) É utilizada na especificação formal lda sintaxe de uma linguagem de programação. É um conjunto de produções ou regras gramaticais

Leia mais

Compiladores - Análise LL(1)

Compiladores - Análise LL(1) Compiladores - Análise LL(1) Fabio Mascarenhas 2017.1 http://www.dcc.ufrj.br/~fabiom/comp Gramáticas LL(1) Uma gramática é LL(1) se toda predição pode ser feita examinando um único token à frente Muitas

Leia mais

BNF (Backus-Naur Form) Gramática Livres de Contexto / Estruturas Recursivas

BNF (Backus-Naur Form) Gramática Livres de Contexto / Estruturas Recursivas Sintae => Usualmente Gramática Livre do Conteto (GLC) BNF (Backus-Naur Form) Gramática Livres de Conteto / struturas Recursivas comando => IF epressao THN epressao LS epressao epressao => (epressao) OR

Leia mais

Processamento de Linguagens I LESI + LMCC (3 o ano)

Processamento de Linguagens I LESI + LMCC (3 o ano) Processamento de Linguagens I LESI + LMCC (3 o ano) 4 o Ficha Prática Ano Lectivo de 05/06 1 Objectivos Este ficha prática contém exercícios para serem resolvidos nas aulas teórico-práticas com vista a

Leia mais

Compiladores Aula 4. Celso Olivete Júnior.

Compiladores Aula 4. Celso Olivete Júnior. Aula 4 Celso Olivete Júnior olivete@fct.unesp.br Na aula de hoje... Revisão: gramáticas Relações em uma gramática: Cabeça, Último, Primeiro (First) e Seguinte (Follow) Capítulo 4 (seção 4.4.2) do livro

Leia mais

LL Parser ( TOP-DOWN)

LL Parser ( TOP-DOWN) LL Parser ( TOP-DOWN) CT-200 Thiago Silva de Oliveira Duarte Marcus Kimura Lopes TOP DOWN x BOTTON UP PARSER TOP DOWN Algoritmo começa do símbolo de início aplicando produções até alcançar a string desejada

Leia mais

Plano da aula. Compiladores. Os erros típicos são sintáticos. Análise Sintática. Usando Gramáticas. Os erros típicos são sintáticos

Plano da aula. Compiladores. Os erros típicos são sintáticos. Análise Sintática. Usando Gramáticas. Os erros típicos são sintáticos Plano da aula Compiladores Análise sintática (1) Revisão: Gramáticas Livres de Contexto 1 Introdução: porque a análise sintática? Noções sobre Gramáticas Livres de Contexto: Definição Propriedades Derivações

Leia mais

Compiladores. Análise Sintática

Compiladores. Análise Sintática Compiladores Análise Sintática Análise Sintática Vejamos um exemplo, seja a seguinte instrução de atribuição: posicao = inicial + incremento * 60 Na análise sintática tenta-se construir uma frase correta

Leia mais

Problemas decidíveis para LICs

Problemas decidíveis para LICs Problemas decidíveis para LICs Dada uma gramática independente de contexto G, L(G) =? Dada uma gramática independente de contexto G, L(G) é finita? Dada uma gramática independente de contexto G, L(G) é

Leia mais

Um Compilador Simples. Definição de uma Linguagem. Estrutura de Vanguarda. Gramática Livre de Contexto. Exemplo 1

Um Compilador Simples. Definição de uma Linguagem. Estrutura de Vanguarda. Gramática Livre de Contexto. Exemplo 1 Definição de uma Linguagem Linguagem= sintaxe + semântica Especificação da sintaxe: gramática livre de contexto, BNF (Backus-Naur Form) Especificação Semântica: informal (textual), operacional, denotacional,

Leia mais

Compiladores. Parser LL 10/13/2008

Compiladores. Parser LL 10/13/2008 Compiladores Fabiano Baldo Usa uma pilha explícita ao invés de chamadas recursivas para realizar a análise sintática. LL(k) parsing significa que ktokensà frente são utilizados. O primeiro L significa

Leia mais

Automata e Linguagens Formais

Automata e Linguagens Formais Automata e Linguagens Formais 6 Prof. Carlos H. C. Ribeiro carlos@ita.br Análise Sintática (Parsing) GLCs ambíguas Grafos de GLCs Estratégias para parsing Exemplos de parsers Análise Sintática (Parsing)

Leia mais

Análise Sintática LL(1)

Análise Sintática LL(1) FACULDADE ANGLO AMERICANO FOZ DO IGUAÇU Curso de Ciência da Computação 7º Periodo Disciplina: Compiladores Prof. Erinaldo Sanches Nascimento Análise Sintática LL(1) Análise Sintática Descendente Introdução

Leia mais

COMPILADORES. Análise sintática. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática

COMPILADORES. Análise sintática. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Análise sintática Parte 02 Prof. geovanegriesang@unisc.br Data Conteúdo 23/09/2013 3. Análise Sintática: 3.1 analisadores

Leia mais

Análise Sintática I. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 42

Análise Sintática I. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 42 Análise Sintática I Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Abril, 2017 1 / 42 Sumário 1 Introdução 2 Derivações 3 Ambiguidade 4 Análise sintática descendente

Leia mais

Análise Sintática (Cap. 04) Análise Sintática Descendente

Análise Sintática (Cap. 04) Análise Sintática Descendente (Cap. 04) Análise Sintática Descendente Análise Sintática Análise sintática descendente Constrói a árvore de derivação de cima para baixo, da raíz para as folhas, criando os nós da árvore em pré ordem

Leia mais

Problemas decidíveis para LICs

Problemas decidíveis para LICs Problemas decidíveis para LICs Dada uma gramática independente de contexto G, L(G) =? Dada uma gramática independente de contexto G, L(G) é finita? Dada uma gramática independente de contexto G, L(G) é

Leia mais

COMPILADORES. Análise sintática. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática

COMPILADORES. Análise sintática. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Análise sintática Parte 04 Prof. geovanegriesang@unisc.br Data Conteúdo 23/09/2013 3. Análise Sintática: 3.1 analisadores

Leia mais

Análise Sintática - Final

Análise Sintática - Final MAB 471 2011.2 Análise Sintática - Final http://www.dcc.ufrj.br/~fabiom/comp LR(k ) vs LL(k ) Encontrando o próximo passo em uma derivação LR(k) Cada redução na análise detectável com o contexto esquerdo

Leia mais

Análise Sintática II: Analisadores Descendentes Preditivos

Análise Sintática II: Analisadores Descendentes Preditivos Análise Sintática II: Analisadores Descendentes Preditivos Exercícios LL(1) = Left to right, Left-most derivation, 1 símbolo look-ahead 1. LL(1): definição 2. Para toda produção A -> α β Se β =>* λ, então

Leia mais

Tokens, Padroes e Lexemas

Tokens, Padroes e Lexemas O Papel do Analisador Lexico A analise lexica e a primeira fase de um compilador e tem por objetivo fazer a leitura do programa fonte, caracter a caracter, e traduzi-lo para uma sequencia de símbolos lexicos

Leia mais

Capítulo 5 Análise sintática

Capítulo 5 Análise sintática Capítulo 5 1. Objetivo 2. Estratégias gerais de parsing 3. descendente (top-down) 3.1. Analisador sintático com retrocesso (backtracking) 3.2. Analisador sintático predicativo recursivo 3.3. Analisador

Leia mais

Vantagens de uma Gramática. Sintaxe de uma Linguagem. Analisador Sintático - Parser. Papel do Analisador Sintático. Tiposde Parsers para Gramáticas

Vantagens de uma Gramática. Sintaxe de uma Linguagem. Analisador Sintático - Parser. Papel do Analisador Sintático. Tiposde Parsers para Gramáticas Sintaxe de uma Linguagem Cada LP possui regras que descrevem a estrutura sintática dos programas. specificada através de uma gramática livre de contexto, BNF (Backus-Naur Form). 1 Vantagens de uma Gramática

Leia mais

Compilação: Erros. Detecção de Erros: * Analisadores Top-Down - Preditivo Tabular (LL) - Feito a mão. * Analisadores Botton-Up: - Shift-Reduce (SLR)

Compilação: Erros. Detecção de Erros: * Analisadores Top-Down - Preditivo Tabular (LL) - Feito a mão. * Analisadores Botton-Up: - Shift-Reduce (SLR) Compilação: Erros Detecção de Erros: * Analisadores Top-Down - Preditivo Tabular (LL) - Feito a mão * Analisadores Botton-Up: - Shift-Reduce (SLR) * Erros no Lex * Erros no Yacc * Erros na Definição da

Leia mais

Compiladores I. Caracterizar um método de análise bottom-up. Compreender os mecanismos básicos envolvidos no processo de análise LR.

Compiladores I. Caracterizar um método de análise bottom-up. Compreender os mecanismos básicos envolvidos no processo de análise LR. Compiladores I Gerson Geraldo Homrich Cavalheiro Caracterizar um método de análise bottom-up Compreender oecanismos básicos envolvidos no processo de análise LR Oferecer as bases para utilização de uma

Leia mais

INE5317 Linguagens Formais e Compiladores AULA 9: Propriedades e Reconhecimento das Linguagens Livres do Contexto

INE5317 Linguagens Formais e Compiladores AULA 9: Propriedades e Reconhecimento das Linguagens Livres do Contexto INE5317 Linguagens Formais e Compiladores AULA 9: Propriedades e Reconhecimento das Linguagens Livres do Contexto baseado em material produzido pelo prof Paulo Bauth Menezes e pelo prof Olinto José Varela

Leia mais

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática Linguagens Formais Aula 01 - Conceitos Básicos Prof. Othon Batista Mestre em Informática Sumário Introdução à Linguagem Alfabeto Cadeias de Símbolos, Palavras Tamanho de Palavra Prefixo, Sufixo ou Subpalavra

Leia mais

LINGUAGENS FORMAIS E AUTÔMATOS

LINGUAGENS FORMAIS E AUTÔMATOS LINGUAGENS FORMAIS E AUTÔMATOS O objetivo deste curso é formalizar a idéia de linguagem e definir os tipos de sintaxe e semântica. Para cada sintaxe, analisamos autômatos, ue são abstrações de algoritmos.

Leia mais

Compiladores Aula 6. Celso Olivete Júnior.

Compiladores Aula 6. Celso Olivete Júnior. Aula 6 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Analisadores Sintáticos Descendentes ASD com retrocesso ASD preditivo recursivo não-recursivo 2 ASD Preditivo Recursivo Projeto Parte 2

Leia mais

LINGUAGENS FORMAIS E AUTÔMATOS. Prova 2-10/06/ Prof. Marcus Ramos

LINGUAGENS FORMAIS E AUTÔMATOS. Prova 2-10/06/ Prof. Marcus Ramos LINGUAGENS FORMAIS E AUTÔMATOS Prova 2-10/06/2011 - Prof. Marcus Ramos NOME: _ Colocar seu nome no espaço acima; A prova pode ser feita à lápis ou caneta; A duração é de três horas; As questões da parte

Leia mais

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE CIÊNCIAS EXATAS E NATURAIS FACULDADE DE COMPUTAÇÃO CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof.

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

IV Gramáticas Livres de Contexto

IV Gramáticas Livres de Contexto IV Gramáticas Livres de Contexto Introdução Definições de GLC 1 G = (Vn, Vt, P, S) onde P = {A α A Vn α (Vn Vt) + } 2 GLC ε - LIVRE : S ε pode pertencer a P, desde que: S seja o símbolo inicial de G S

Leia mais

Aula de 28/10/2013. sticas; Implementação. em Ruby

Aula de 28/10/2013. sticas; Implementação. em Ruby Linguagens Formais e Autômatos (LFA) Aula de 28/10/2013 Propriedades Formais Relevantes das LLC s; Lema do Bombeamento; Linguagens LL e LR; Gramáticas LC Determinísticas sticas; Implementação em Ruby 1

Leia mais

Análise sintática. Análise sintática. Top-down ou descendente. Com retrocesso: por tentativa e erro. Preditiva: para gramáticas LL(1) 09/04/2012

Análise sintática. Análise sintática. Top-down ou descendente. Com retrocesso: por tentativa e erro. Preditiva: para gramáticas LL(1) 09/04/2012 Análise sintática Função, interação com o compilador Análise descendente e ascendente Especificação e reconhecimento de cadeias de tokens válidas Implementação Tratamento de erros Prof. Thiago A. S. Pardo

Leia mais

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. José Lucas Rangel 9.1 - Introdução. Como já vimos anteriormente, a classe das linguagens sensíveis ao contexto (lsc) é uma

Leia mais

Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador

Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador Estrutura de um compilador programa fonte Compiladores Análise lexical () Expressões Regulares analisador léxico analisador sintático analisador semântico análise gerador de código intermediário otimizador

Leia mais

Como construir um compilador utilizando ferramentas Java

Como construir um compilador utilizando ferramentas Java Como construir um compilador utilizando ferramentas Java p. 1/2 Como construir um compilador utilizando ferramentas Java Aula 6 Análise Sintática Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir

Leia mais

Parsing Preditivo. Antes de ser abordado o Parsing Preditivo, será apresentado o Analisador Sintático Descendente Recursivo.

Parsing Preditivo. Antes de ser abordado o Parsing Preditivo, será apresentado o Analisador Sintático Descendente Recursivo. UPE Caruaru Sistemas de Informação Disciplina: Compiladores Prof.: Paulemir G. Campos Parsing Preditivo Antes de ser abordado o Parsing Preditivo, será apresentado o Analisador Sintático Descendente Recursivo.

Leia mais

Análise Sintática Introdução

Análise Sintática Introdução Análise Sintática Introdução Renato Ferreira Linguagens e Automatas Linguagens formais são importantes em Computação Especialmente em linguagens de programação Linguagens regulares A linguagem formal mais

Leia mais

Se o símbolo inicial não fizer parte do conjunto de símbolos férteis, a linguagem gerada pela gramática é vazia.

Se o símbolo inicial não fizer parte do conjunto de símbolos férteis, a linguagem gerada pela gramática é vazia. Transformações em G.L.C Uma vez que existem métodos de análise, cada qual exigindo gramáticas com características específicas é importante que uma gramática possa ser transformada, porém, sem perder a

Leia mais

MAB Análise Sintática. Wednesday, April 4, 12

MAB Análise Sintática.  Wednesday, April 4, 12 MAB 471 2012.2 Análise Sintática http://www.dcc.ufrj.br/~fabiom/comp O Front End Código fonte Scanner tokens Parser IR Erros Parser Verifica a corretude gramatical da sequência de palavras e categorias

Leia mais

QUESTÃO 1 (0,6 ponto) Classifique os processadores de linguagens com relação aos tipos das linguagens-fonte e objeto.

QUESTÃO 1 (0,6 ponto) Classifique os processadores de linguagens com relação aos tipos das linguagens-fonte e objeto. COMPILADORES Prof. Marcus Ramos Prova 1 07 de março de 2012 QUESTÃO 1 (0,6 ponto) Classifique os processadores de linguagens com relação aos tipos das linguagens-fonte e objeto. Tanto a linguagem-fonte

Leia mais

Linguagens Formais e Autômatos (LFA)

Linguagens Formais e Autômatos (LFA) Linguagens Formais e Autômatos (LFA) Aula de 16/09/2013 Conversões e Transformações 1 Conversões de Gramáticas LR em LL e vice-versa Qual é a ideia? S S a a a = a b c b c ε ε a a Seja GRD uma gramática

Leia mais

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios 1. Escreva a expressão regular para as seguintes linguagens sobre o alfabeto {0, 1}: strings começando

Leia mais

MAB Análise Sintática. Wednesday, August 31, 11

MAB Análise Sintática.  Wednesday, August 31, 11 MAB 471 2011.2 Análise Sintática http://www.dcc.ufrj.br/~fabiom/comp O Front End Código fonte Scanner tokens Parser IR Erros Parser Verifica a corretude gramatical da sequência de palavras e categorias

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferencia-se das máquinas de Turing e Post principalmente pelo fato de possuir a memória de entrada separada

Leia mais

Análise Sintática (Cap. 04) Analisador Sintático LR canônico e LALR

Análise Sintática (Cap. 04) Analisador Sintático LR canônico e LALR Análise Sintática (Cap. 04) Analisador Sintático LR canônico e LALR Análise Sintática LR O método LR (canônico LR) usa símbolos de lookahead para tomar decisões de shift reduce O método LALR (LR com lookahead)

Leia mais

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba Questão 01 No processo de construção de compiladores, é essencial compreender e manipular as expressões regulares e suas equivalências. Dentro desse contexto, seja o alfabeto = {a, b, c, d, e} e a seguinte

Leia mais

Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes

Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes Questões do POSCOMP 2011 A resposta certa está assinalada em vermelho. Por que é correta e por que as demais alternativas são incorretas?

Leia mais

Compiladores. Análise Sintática

Compiladores. Análise Sintática Compiladores Análise Sintática Cristiano Lehrer, M.Sc. Introdução (1/3) A análise sintática constitui a segunda fase de um tradutor. Sua função é verificar se as construções usadas no programa estão gramaticalmente

Leia mais

Construção de Compiladores Aula 17 - Análise Sintática Descendente

Construção de Compiladores Aula 17 - Análise Sintática Descendente Construção de Compiladores Aula 17 - Análise Sintática Descendente Bruno Müller Junior Departamento de Informática UFPR 3 de Novembro de 2014 1 Análise Sintática Descendente Eliminação de retrocessos Converter

Leia mais

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO LINGUAGEM LIVRE DE CONTEXTO As Linguagens Livres de Contexto é um reconhecedor de linguagens, capaz de aceitar palavras corretas (cadeia, sentenças) da linguagem. Por exemplo, os autômatos. Um gerador

Leia mais

Introdução Definição Conceitos Básicos de Linguagem

Introdução Definição Conceitos Básicos de Linguagem Introdução Definição Conceitos Básicos de Linguagem Introdução Desenvolvida originalmente em 1950 Objetivo: Desenvolver teorias relacionadas com a Linguagem natural Logo verificou-se a importância para

Leia mais

Linguagens Livres do Contexto. Adaptado de H. Brandão

Linguagens Livres do Contexto. Adaptado de H. Brandão Linguagens Livres do Contexto Adaptado de H. Brandão Linguagens Livres do Contexto Para as LLC, temos as Gramáticas Livres do Contexto; Linguagens Livres do Contexto Para as LLC, temos as Gramáticas Livres

Leia mais

Compiladores - JACC. Fabio Mascarenhas

Compiladores - JACC. Fabio Mascarenhas Compiladores - JACC Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp JACC Gerador de analisadores sintáticos LALR que gera código Java Sintaxe baseada na sintaxe do YACC (e de muitos outros

Leia mais

Linguagens de Programação Aula 5

Linguagens de Programação Aula 5 Aula 5 Celso Olivete Júnior olivete@fct.unesp.br Na aula anterior Ambiguidade Análise léxica Exercício calculadora 2/@ Na aula anterior AF calculadora 3/@ Na aula de hoje Análise léxica implementação Gramática

Leia mais

Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL)

Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL) Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL) 1 Gramática Sensível ao Contexto Definição: Uma gramática G é sensível ao contexto se

Leia mais

Análise Sintática. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 18

Análise Sintática. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 18 Análise Sintática Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Outubro, 2016 1 / 18 Sumário 1 Introdução 2 Derivações 2 / 18 1 Introdução 2 Derivações 3 /

Leia mais

Linguagens Livres de Contexto

Linguagens Livres de Contexto Universidade Católica de Pelotas Centro Politécnico Bacharelado em Ciência da Computação 364018 Linguagens Formais e Autômatos TEXTO 4 Linguagens Livres de Contexto Prof. Luiz A M Palazzo Maio de 2011

Leia mais

Linguagens de Programação Aula 4

Linguagens de Programação Aula 4 Aula 4 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada... Autômatos finitos AF:exemplos... Cadeia de caracteres a,b,c 2/82 Na aula passada... Autômatos finitos AF:exemplos... Números inteiros(com

Leia mais

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior. LFA Aula 02 Linguagens regulares - introdução 28/09/2015 Celso Olivete Júnior olivete@fct.unesp.br 1 Na aula passada... Visão geral Linguagens regulares expressões regulares autômatos finitos gramáticas

Leia mais

COMPILADORES. Análise sintática. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática

COMPILADORES. Análise sintática. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática Universidade de Santa Cruz do Sul UNISC Departamento de informática COPILADORES Análise sintática Parte 03 Prof. geovanegriesang@unisc.br Analisador sem recursão Analisador sintático sem recursão pode

Leia mais

LFA Aula 09. Gramáticas e Linguagens Livres de Contexto 18/01/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.

LFA Aula 09. Gramáticas e Linguagens Livres de Contexto 18/01/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior. LFA Aula 09 Gramáticas e Linguagens Livres de Contexto (Hopcroft, 2002) 18/01/2016 Celso Olivete Júnior olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Classes Gramaticais Linguagens

Leia mais

COMPILADORES. Análise semântica. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática

COMPILADORES. Análise semântica. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Análise semântica Tradução dirigida pela sintaxe Parte 02 Prof. geovanegriesang@unisc.br Sumário Data 18/11/2013 Análise

Leia mais

Apresentação. !! Familiarização com os métodos de construção de compiladores de linguagens e com as técnicas de compilação mais habituais.

Apresentação. !! Familiarização com os métodos de construção de compiladores de linguagens e com as técnicas de compilação mais habituais. Apresentação Universidade dos Açores Departamento de Matemática www.uac.pt/~hguerra/!! Aquisição de conceitos sobre a definição de linguagens de programação.!! Familiarização com os métodos de construção

Leia mais

Capítulo II Gramáticas

Capítulo II Gramáticas Capítulo II Gramáticas II.1 Motivação O que é uma Gramática? Um sistema gerador de linguagens; Um sistema de reescrita; Uma maneira finita de representar uma linguagem; Um dispositivo formal usado para

Leia mais

Avaliação de expressões. Prof: Sérgio Souza Costa

Avaliação de expressões. Prof: Sérgio Souza Costa Avaliação de expressões Prof: Sérgio Souza Costa Avaliação de expressões Como efetuar o cálculo de uma expressão em um computador? A / B * (D + C) Avaliação de expressões - Notações Avaliação de expressões

Leia mais