Análise Sintáctica Descendente

Documentos relacionados
Gramáticas Regulares. Capítulo Gramáticas regulares

Faculdade de Computação

Análise Sintática I: Analisadores Descendentes com Retrocesso

<S> ::= <L><C> <L> ::= l <C> ::= l<c> n<c> n l λ. L(G 1 ) = {a n b 2m n>0 m 0} L(G 2 ) = {lw w {l, n} * } L(G 3 ) = {a n b 2m n>0 m 0}

Linguagens Formais Capítulo 5: Linguagens e gramáticas livres de contexto

Modelos de Computação -Folha de trabalho n. 2

LRE LSC LLC. Autômatos Finitos são reconhecedores para linguagens regulares. Se não existe um AF a linguagem não é regular.

3. Seja Σ um alfabeto. Explique que palavras pertencem a cada uma das seguintes linguagens:

Linguagens Formais e Autômatos (LFA)

DCC-UFRJ Linguagens Formais Primeira Prova 2008/1

Dep. Matemática e Aplicações 27 de Abril de 2011 Universidade do Minho 1 o Teste de Teoria das Linguagens. Proposta de resolução

Teoria de Linguagens 2 o semestre de 2014 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 23/10.

Aula 8: Gramáticas Livres de Contexto

Bhaskara e sua turma Cícero Thiago B. Magalh~aes

Linguagens Regulares e Autômatos de Estados Finitos. Linguagens Formais. Linguagens Formais (cont.) Um Modelo Fraco de Computação

Draft-v Autómatos mínimos. 6.1 Autómatos Mínimos

Elementos de Análise - Lista 6 - Solução

Hierarquia de Chomsky

Apostila 02 - Linguagens Regulares Exercícios

MÉTODO DA POSIÇÃO FALSA EXEMPLO

1. Sejam R e S duas relações entre os conjuntos não vazios E e F. Então mostre que

operation a b result operation a b MUX result sum i2 cin cout cout cin

3.3 Autómatos finitos não determinísticos com transições por ε (AFND-ε)

Quadratura por interpolação Fórmulas de Newton-Cotes Quadratura Gaussiana. Integração Numérica. Leonardo F. Guidi DMPA IM UFRGS.

Analisadores Sintáticos. Análise Recursiva com Retrocesso. Análise Recursiva Preditiva. Análise Recursiva Preditiva 05/04/2010

Capítulo III INTEGRAIS DE LINHA

UNIVERSIDADE FEDERAL DE PERNAMBUCO. Resumo. Nesta aula, utilizaremos o Teorema Fundamental do Cálculo (TFC) para o cálculo da área entre duas curvas.

Teoria da Computação. Unidade 3 Máquinas Universais (cont.) Referência Teoria da Computação (Divério, 2000)

Faculdade de Computação

Desigualdades - Parte II. n (a1 b 1 +a 2 b a n b n ) 2.

I. LINGUAGENS REGULARES E AUTÔMATOS FINITOS

Pontifícia Universidade Católica de Campinas Centro de Ciências Exatas, Ambientais e de Tecnologias Faculdade de Engenharia de Computação

16.4. Cálculo Vetorial. Teorema de Green

Comprimento de arco. Universidade de Brasília Departamento de Matemática

GRUPO I. Espaço de rascunho: G 2 10

xy 1 + x 2 y + x 1 y 2 x 2 y 1 x 1 y xy 2 = 0 (y 1 y 2 ) x + (x 2 x 1 ) y + (x 1 y 2 x 2 y 1 ) = 0

Capítulo IV. Funções Contínuas. 4.1 Noção de Continuidade

3 Teoria dos Conjuntos Fuzzy

Compiladores. Exemplo First/Follow. proc Follow(B N) Gramática LL(1) proc First(α: string of symbols) Observações First/Follow

Módulo 02. Sistemas Lineares. [Poole 58 a 85]

Propriedades das Linguagens Regulares

Notação. Se u = u(x, y) é uma função de duas variáveis, representamos por u, ou ainda, por 2 u a expressão

Marcone Jamilson Freitas Souza. Departamento de Computação. Programa de Pós-Graduação em Ciência da Computação

INTEGRAL DEFINIDO. O conceito de integral definido está relacionado com um problema geométrico: o cálculo da área de uma figura plana.

Matemática para Economia Les 201. Aulas 28_29 Integrais Luiz Fernando Satolo

Análise Léxica. Construção de Compiladores. Capítulo 2. José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto

Resolução Numérica de Sistemas Lineares Parte I

EQUAÇÕES E INEQUAÇÕES POLINOMIAIS

Adriano Pedreira Cattai

Prova 1 Soluções MA-602 Análise II 27/4/2009 Escolha 5 questões

Material Teórico - Módulo Teorema de Pitágoras e Aplicações. Algumas demonstrações do Teorema de Pitágoras - Parte 2. Nono Ano

MTDI I /08 - Integral de nido 55. Integral de nido

Objetivo. Conhecer a técnica de integração chamada substituição trigonométrica. e pelo eixo Ox. f(x) dx = A.

TÓPICO. Fundamentos da Matemática II DERIVADA DIRECIONAL E PLANO TANGENTE8. Licenciatura em Ciências USP/ Univesp. Gil da Costa Marques

Linguagens Formais e Autômatos (LFA)

Lic. Ciências da Computação 2009/10 Exercícios de Teoria das Linguagens Universidade do Minho Folha 6. δ

Integral. (1) Queremos calcular o valor médio da temperatura ao longo do dia. O valor. a i

2.4 Integração de funções complexas e espaço

Resumo com exercícios resolvidos do assunto: Aplicações da Integral

Vectores Complexos. Prof. Carlos R. Paiva

dx f(x) dx p(x). dx p(x) + dx f (n) n! i=1 f(x i) l i (x) ), a aproximação seria então dada por f(x i ) l i (x) = i=1 i=1 C i f(x i ), i=1 C i =

Teorema Fundamental do Cálculo - Parte 1

4. Teorema de Green. F d r = A. dydx. (1) Pelas razões acima referidas, a prova deste teorema para o caso geral está longe

Introdução ao estudo de equações diferenciais

Teorema Fundamental do Cálculo - Parte 2

Eletromagnetismo I. Eletromagnetismo I - Eletrostática. Equação de Laplace (Capítulo 6 Páginas 119 a 123) Eq. de Laplace

Modelos Teóricos para Análise de Transformadores Baseados em Modelos Simplificados de Impedância e de Elementos Concentrados

Integrais Duplas em Regiões Limitadas

Autômato Finito. Autômato Finito Determinístico. Autômato Finito Determinístico

FUNÇÃO DO 2º GRAU OU QUADRÁTICA

PARTE I - Circuitos Resistivos Lineares

Autômatos determinísticos grandes

x u 30 2 u 1 u 6 + u 10 2 = lim (u 1)(1 + u + u 2 + u 3 + u 4 )(2 + 2u 5 + u 10 )

Exemplos de autómatos finitos

Introdução à Integral Definida. Aula 04 Matemática II Agronomia Prof. Danilene Donin Berticelli

CONJUNTOS NUMÉRICOS NOTAÇÕES BÁSICAS. : Variáveis e parâmetros. : Conjuntos. : Pertence. : Não pertence. : Está contido. : Não está contido.

Função Modular. x, se x < 0. x, se x 0

Aula de solução de problemas: cinemática em 1 e 2 dimensões

Física Geral e Experimental I (2011/01)

Área entre curvas e a Integral definida

3. LOGARITMO. SISTEMA DE LOGARITMO

INTEGRAIS DEFINIDAS. Como determinar a área da região S que está sob a curva y = f(x) e limitada pelas retas verticais x = a, x = b e pelo eixo x?

INTEGRAIS DEFINIDAS. Como determinar a área da região S que está sob a curva y = f(x) e limitada pelas retas verticais x = a, x = b e pelo eixo x?

Autômato Finito. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1

Lista de Problemas H2-2002/2. LISTA DE PROBLEMAS Leia atentamente as instruções relativas aos métodos a serem empregados para solucionar os problemas.

Aula 10 Estabilidade

Fundamentos de Matemática I EFETUANDO INTEGRAIS. Licenciatura em Ciências USP/ Univesp. Gil da Costa Marques

INTRODUÇÃO AOS MÉTODOS NUMÉRICOS

1. Prove a chamada identidade de Lagrange. u 1,u 3 u 2,u 3. u 1 u 2,u 3 u 4 = u 1,u 4 u 2,u 4. onde u 1,u 2,u 3 e u 4 são vetores em R 3.

ÁLGEBRA LINEAR Equações Lineares na Álgebra Linear EQUAÇÃO LINEAR SISTEMA LINEAR GEOMETRIA DA ESQUAÇÕES LINEARES RESOLUÇÃO DOS SISTEMAS

Técnicas de Análise de Circuitos

1 ÁLGEBRA MATRICIAL 1.1 TIPOS ESPECIAIS DE MATRIZES. Teorema. Sejam A uma matriz k x m e B uma matriz m x n. Então (AB) T = B T A T

x = x 2 x 1 O acréscimo x é também chamado de diferencial de x e denotado por dx, isto é, dx = x.

(x, y) dy. (x, y) dy =

Escola Secundária/2,3 da Sé-Lamego Ficha de Trabalho de Matemática A Ano Lectivo 2011/12 Distribuição de probabilidades 12.º Ano

Diogo Pinheiro Fernandes Pedrosa

ROTAÇÃO DE CORPOS SOBRE UM PLANO INCLINADO

x 0 0,5 0,999 1,001 1,5 2 f(x) 3 4 4,998 5,

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano.

Transcrição:

Cpítulo 4 nálise intáctic Descendente Os utomátos finitos presentdos no cpítulo nterior são suficientes pr trtr os elementos léxicos de um lingugem de progrmção, o trtmento d estrutur sintáctic de um lingugem de progrmção está, em gerl, for do lcnce de tis métodos, sendo necessário construir reconhecedores pr lingugens independentes do contexto ms não necessrimente regulres Neste cpítulo vmos estudr um clsse de reconhecedores pr lingugens independentes do contexto, os reconhecedores descendentes, sendo que no próximo cpítulo trtr-se-á dos reconhecedores scendentes 41 Reconhecimento Descendente de Lingugens Não-Regulres Um reconhecedor descendente efectu o reconhecimento de um frse construindo um árvore de derivção prtindo d riz e terminndo ns folhs, crindo os nós d árvore segundo um trvessi descendente d esquerd pr direit Este processo pode tmém ser visto, pr este tipo de lingugens, como derivção pel esquerd de um dd frse Vejmos um exemplo: Exemplo 41 Considere-se seguinte grmátic: G = ({,, c}, {I,, B}, I, P ) com P o seguinte conjunto de produções: 1 (Versão 18) I B 47

48 CPÍTULO 4 NÁLIE INTÁCTIC DECENDENTE c B B e frse c Est frse é reconhecid com sucesso trvés d seguinte árvore de derivção: I c frse reconhecid (ou reconhecer) é dd pels folhs d árvore, sendo que os nós interiores vão ser ocupdos por não-terminis Definição 41 (Árvore de Derivção) ej G = (T, N, I, P ) um grmátic independente do contexto e α 1 α n P, então existe um árvore de derivção cuj riz é e cujs su-árvores são 1,, n (nest ordem) em que: i consiste num único nó ssocido o símolo α i, com α i T ; i é um árvore de derivção cuj riz é α i, com α i N Exemplo 42 Considere-se seguinte grmátic: G = ({,, c}, {I,, B}, I, {I, I B, c,, B c}) e sej c frse reconhecer Temos que plicção ds diferentes regrs de produção vi-nos permitir construir seguinte árvore de derivção: α 1 = α 2 = α 3 = c I c c fronteir coincide com frse reconhecer, temos então um reconhecimento feito com sucesso No entnto, e pr este mesmo exemplo, podemos gerr s árvores

42 GRMÁTIC LL(1) 49 α 1 = α 2 = α 3 = c I No qul o reconhecimento não é feito com sucesso, árvore já está fechd e ind há símolos n frse reconhecer Ou então: α 1 = I B B No qul o reconhecimento tmém não é feito com sucesso, árvore não está fechd ms chegou-se um ponto em que não é possível continur su construção Temos então que um reconhecedor cpz de lidr com ests situções teri de ser cpz de recur sore decisões errds pr tentr outrs soluções té esgotr tods s soluções, ou té ser em sucedido num dels N prátic não se vão implementr reconhecedores com recuo ( cktrcking ) ddo não serem eficientes 42 Grmátics LL(1) Pr grntir que nunc surgem miguiddes n escolh d produção utilizr empregm-se grmátics em que tods s produções d form: α 1 α 2 α n derivm frses cujos símolos iniciis são todos diferentes Ou sej temse um conjunto de produções pr s quis st olhr pr o primeiro símolo pr ser qul é escolh correct No entnto podem surgir situções em que não st conhecer os primeiros símolos de cd um ds produções do tipo referido cim pr evitr situções mígus É esse o cso qundo se tem que um ddo símolo (primeiro símolo de um dd produção) é um símolo nulável, isto é um símolo prtir do qul se deriv frse nul, formlmente: Definição 42 (ímolo nulável) Um símolo não terminl diz-se nulável se existe ɛ

50 CPÍTULO 4 NÁLIE INTÁCTIC DECENDENTE Então, nestes csos é necessário ser qul o símolo que vêm seguir (símolo nulável) pr deste modo poder evitr situções mígus s grmátics livres do contexto que evitm estes dois prolems designmse por grmátics LL(1), de: L Left scn leitur d esquerd pr direit L Leftmost derivtion derivção pel esquerd (1) Um símolo ntecipável Pr podermos definir s condições que um grmátic independente do contexto tem de verificr pr ser um grmátic LL(1) é necessário definir ntes lgums funções uxilires ão els: First: define o conjunto de símolos que inicim derivções prtir de um sequênci d símolos terminis e não-terminis First N define o conjunto de símolos que inicim derivções prtir de um símolo não-terminl Follow define o conjunto de símolos que se podem seguir derivr por um ddo símolo não terminl Definição 43 (First) função First define-se como: F irst : (N T ) 2 T α F irst(α) tl que, pr todo o T e α (N T ) tem-se:, α = ɛ {}, α = α F irst(β F irst(α) = i ), α = α e β 1 β n e 1 i n β i ɛ pr todo o 1 i n F irst(α ) F irst(β i ), α = α e β 1 β n e 1 i n β i ɛ pr um ddo 1 i n Exemplo 43 Pr grmátic, G = ({,, c}, {I,, B}, I, {I B Bc Bc; ɛ; B c}) tem-se: F irst(b) = {} F irst(bc) = F irst() F irst(c) (B ɛ) = {} {c} = {, c} F irst(bc) = F irst() F irst(ɛ) F irst(bc) ( ɛ) = {} F irst() F irst(c) = {} {} {c} = {,, c}

42 GRMÁTIC LL(1) 51 Definição 44 (First N ) função First N define-se como: F irst N : N 2 T X F irst N (X) = (X α i ) F irst(α i ) Exemplo 44 Usndo grmátic G definid no exemplo nterior temos: F irst N (I) = F irst(b) F irst(bc) F irst(bc) = {} {, c} {,, c} = {,, c} F irst N () = F irst() F irst(ɛ) = {} F irst N (B) = F irst() F irst(c) = {, c} Definição 45 (Follow) função Follow define-se como: F ollow : N 2 T X F ollow(x) tl que, pr todo o Y N ( e α, β (N { T ) tem-se:, se X ɛ F ollow(x) = F irst(β) F ollow(y ), se X ɛ (Y αxβ) ) Exemplo 45 Usndo grmátic G definid no exemplo nterior temos: F ollow(i) = F ollow() = F irst(c) F irst(bc) (F irst(ɛ) F ollow()) = {, c} F ollow(b) = F irst() F irst(c) F irst(c) = {} {, c} {c} = {, c} Podemos gor definir condição LL(1) Definição 46 (Condição LL(1)) Um grmátic G = (T, N, I, P ) stisfz condição LL(1) se, pr tod produção α 1 α 2 α n P, se verificrem s seguintes condições: 1 Pr ɛ então: F irst(α i ) F irst(α j ) = i j, 1 i, j n ie o conjunto de símolos que inicim frses derivds de dois ldos direitos de produções com o mesmo ldo esquerdo devem ser disjuntos

52 CPÍTULO 4 NÁLIE INTÁCTIC DECENDENTE 2 Pr ɛ então: então F irst N () F ollow() = ie no cso de símolos nuláveis, o conjunto de símolos que inicim derivções prtir de, tem de ser disjunto do conjunto de símolos que se possm seguir qulquer sequênci gerd por Exercício 41 Ddo grmátic G com: G = ({,, c, d, e}, {I,, B, C}, I, P ) P = {I B, ɛ, B cc d, C e} verifique se G é LL(1) condição LL(1) pode-se reescrever trvés de um outr função uxilir que de lgum form sintetiz s nteriores Definição 47 (Lookhed) função Lookhed define-se como: Lookhed : P 2 T {, se α ɛ ( α) F irst(α) F ollow(), se α ɛ Exemplo 46 Pr grmátic, G = ({,, c}, {I,, B}, I, {I B Bc Bc; ɛ; B c}) tem-se: Lookhed( ) = F irst() = {} Lookhed( ɛ) = F irst(ɛ) F ollow() = {,, c} Usndo função Lookhed é então possível redefinir condição LL(1), sendo que ms s vrintes são equivlentes entre si Definição 48 (Condição LL(1)) Um grmátic G = (T, N, I, P ) stisfz condição LL(1) se pr quisquer produções α 1, α 2 se tenh: Lookhed( α 1 ) Lookhed( α 2 ) =

42 GRMÁTIC LL(1) 53 Exercício 42 Dd grmátic G = ({,, c, d, e}, {I,, B, C}, I, P ) com P o seguinte conjunto de produções: I B ɛ B cc d C e verifique (usndo função Lookhed ) que G stisfz condição LL(1) 421 Trnsformções Essenciis à Condição LL(1) Existem váris situções típics onde se verificm conflitos LL(1), isto é, situções de não cumprimento d condição LL(1) 1 Grmátics mígus; 2 Grmátics recursivs à esquerd Pr cd um dests dus situções existem trnsformções que podem ser feits ns produções de form trnsform um dd grmátic num outr que verifique condição LL(1) Vejmos mos os csos de seguid Grmátic mígus, grmátics com produções com o mesmo ldo esquerdo e cujos ldos direitos têm o mesmo prefixo, por exemplo: Considere-se s seguintes produções: αβ αγ existe um conflito LL(1) ddo que: Lookhed( αβ) Lookhed( αγ) F irst(α) solução consiste em efectur um fctorizção à esquerd α β γ correcção dest trnsformção demonstr-se trvés d álger de expressões regulres αβ αγ = αβ + αγ = α(β + γ) α = α β + γ = β + γ

54 CPÍTULO 4 NÁLIE INTÁCTIC DECENDENTE Grmátic recursivs à esquerd Considere-se s seguintes produções: temos que α β F irst N () = F irst(α) F irst(β) existe um conflito LL(1) n medid que: Lookhed( α) Lookhed( β) F irst(β) solução pss por eliminr recursividde à esquerd reescrevendo grmátic com recursividde à direit β α ɛ novmente é fácil de demonstrr correcção dest trnsformção α β = α + β = β + α = βα = (βα )ɛ = β(α ɛ) β = β α ɛ = ɛ + α Exercício 43 Fç s trnsformções necessáris pr que grmátic G = ({x, y, z}, {I, X, Y }, I, P ) com P o seguinte conjunto de produções: verifique condição LL(1) I zx zy X Xx x Y yy ɛ Pode-se dizer em relção os reconhecedores descendentes que: su implementção é simples; trnsformção de um grmátic de form que el psse verificr condição LL(1) fz que: sej necessário introduzir novos símolos;

43 RECONHECEDOR RECURIVO DECENDENTE 55 o reconhecimento de um frse sej feito trvés de um sequênci de derivção com um mior número de pssos; árvore de derivção que se otém durnte o reconhecimento não represent fielmente su estrutur sintáctic implementção de um reconhecedor descendente pode ser feit utilizndo dus estrtégis distints: Reconhecedor Recursivo Descendente; Reconhecedores Dirigidos por um Tel 43 Reconhecedor Recursivo Descendente Um reconhecedor recursivo descendente (RRD) de um lingugem L definid pel grmátic G = (N, T, I, P ) constrói-se ssocindo cd símolo X N um procedimento de reconhecimento O reconhecedor pr L otém-se por cominção de todos os procedimentos definição dos procedimentos pode ser feit trvés de dus proximções distints: escrever os procedimentos tendo por se os grfos de sintxe d lingugem; escrever os procedimentos tendo por se s produções d grmátic Vmos explorr somente primeir dests dus proximções possíveis 431 Construção de um RRD prtir dos Grfos de intxe Como pré-condição é necessário verificr que grmátic verific condição LL(1) trnsformção de um grfo de sintxe num reconhecedor vi-se processr trvés d ssocição cd estrutur ásic de um grfo de sintxe um procedimento de reconhecimento, com posterior cominção dos diferentes procedimentos Vi-se ssumir que: os símolos reconhecer são crcteres, est simplificção é plusível ddo podermos ver o reconhecimento sintácticos como um segundo psso já pós o reconhecimento léxico; existe um vriável glol sim qul contém o próximo símolo reconhecer; o vnço pr o próximo símolo é feito trvés d função ler(); o resultdo do reconhecimento é ddo por T (α)

56 CPÍTULO 4 NÁLIE INTÁCTIC DECENDENTE x se sim==x ent~o sim = ler() sen~o erro fimse α T(α); α 1 α i α n T(α 1); T(α i); T(α n); α 1 α i α n cso sim sej First(α 1) : T(α 1); First(α i) : T(α i); First(α n) : T(α n); noutros csos erro fimcso α enqunto sim First(α) T(α); fimenqunto Exercício 44 Fç construção de um reconhecedor pr lingugem L definid pelo seguinte grfo

43 RECONHECEDOR RECURIVO DECENDENTE 57 I c Os reconhecedores RRD são stnte simples de desenvolver, no entnto su estrutur recursiv pode levntr prolems de eficiênci Pr resolver esse prolem existe um outr estrtégi de construção de um reconhecedor de grmátics, designdos por Reconhecedores Dirigidos por um Tel (RDT), estes reconhecedores sustituem recursão pel utilizção de um pilh Por questões de tempo não se vi proceder qui o estudo desse tipo de reconhecedores