Marcos Castilho. DInf/UFPR. 21 de março de 2019

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

Download "Marcos Castilho. DInf/UFPR. 21 de março de 2019"

Transcrição

1 21 de março de 2019

2 Análise sintática: introdução Dada uma gramática G e uma palavra w Σ, como saber se w L(G)? Isto é, como saber se S = G w?

3 Derivações à esquerda e ambiguidade w L(G) se S = G w; Sabemos que podem haver várias derivações distintas para uma mesma palavra; Teoricamente, qualquer uma delas basta; Mas, para o computador, deve haver uma maneira de reduzir o espaço de busca; Para isto, o teorema seguinte é importante.

4 Teorema Seja G = (V, Σ, P, S) uma gramática livre de contexto. Uma palavra w L(G) se, e somente se, existe uma derivação mais à esquerda de w a partir de S. Prova A parte é trivial, pois se existe uma derivação mais à esquerda então existe uma derivação... A outra parte é mais complicada, conforme veremos a seguir.

5 Prova, continuação Seja S w 1 w 2... w n 1 w n = w uma derivação qualquer de w, não necessariamente mais à esquerda. Vamos mostrar como obter a partir desta uma que seja mais à esquerda. Seja w k a primeira forma sentencial nesta derivação para a qual a regra aplicada não tenha sido mais à esquerda Se não há este w k então não há nada mais a provar Logo, k < n. Vamos mostrar como obter a uma nova derivação de w, de tamanho n, de tal maneira que a primeira regra que não foi aplicada mais à esquerda ocorra após k. Seguinte esta ideia no máximo n k vezes obteremos uma derivação mais à esquerda de w.

6 Prova, continuação Assim, temos: S w 1... w k w k+1... w n = w Por construção, S = w k é uma derivação mais à esquerda Também por construção, w k = u 1 Au 2 Bu 3, onde: u 1 Σ w k+1 foi obtido por uma regra do tipo B v Portanto: S = w k = u 1 Au 2 Bu 3 u 1 Au 2 vu 3 = w k+1 = wn = w

7 Prova, continuação Mas w Σ, portanto em algum momento entre k + 1 e n 1 uma regra do tipo A p foi aplicada Seja este momento representado por j + 1, assim: w j = u 1 Aq u 1 pq = w j+1, na derivação original! De tal maneira que as regras aplicadas nos passos k + 2 até j transformaram a palavra u 2 vu 3 em q Finalmente, na derivação original certamente ocorreu que w j+1 = wn = w. Agora, com tudo isto detalhado, uma derivação mais a esquerda será construída.

8 Prova, continuação S k = w k = u 1 Au 2 Bu 3, que por construção é mais à esquerda u 1 pu 2 Bu 3, aplicando A p u 1 pu 2 vu 3, aplicando B v j k 1 ==== u 1 pq = w j+1, pois u 2 vu 3 n j 1 === w n = w, pois w j+1 = wn = q Esta derivação é mais à esquerda.

9 Observações O teorema só se aplica para palavras w Σ Pode-se mostrar um teorema equivalente para derivações mais à direita v = L w e v w = R são, respectivamente, as derivações mais à esquerda e mais à direita de w.

10 Observação Não é necessariamente verdade que existe uma única derivação mais à esquerda para uma palavra w. A consequência deste fato é a noção de ambiguidade Exemplo de frase ambígua: João ganhou o livro do Drummond do Drummond pode modificar o verbo (objeto indireto); ou pode modificar o nome (adjunto adnominal)

11 Em resumo Uma mesma árvore de derivação pode ter sido obtida por duas (ou mais) derivações mais à esquerda Como um compilador baseia-se na árvore de derivação para gerar código, é preciso definir gramáticas para linguagens de programação que não sejam ambíguas.

12 Definição Uma Gramática Livre de Contexto G é ambígua se existe uma palavra w L(G) que pode ser derivada por duas derivações mais à esquerda distintas. Se G não é ambígua, dizemos que ela é não ambígua.

13 Exemplo Seja G a gramática dada pelas regras: S as Sa a G é ambígua, pois as duas derivações abaixo são mais à esquerda para a palavra aa: S as aa S Sa aa Notar que L(G) = a +, que pode ser gerada pela gramática regular: S as a

14 Observações Portanto, ambiguidade é uma propriedade de gramáticas e não de linguagens! No entanto, existem linguagens que são inerentemente ambíguas, para as quais não é possível definir uma gramática não ambígua.

15 Exemplo 1 Seja G a gramática: S bs Sb a Evidentemente, L(G) = b ab. Existem duas derivações para bab: S bs bsb bab S Sb bsb bab Mas as gramáticas G 1 e G 2 abaixo são tais que L(G) = L(G 1 ) = L(G 2 ) e são não ambíguas. G 1 : { S bs aa A ba λ G 2 : { S bs A A Ab a

16 Exemplo 2 Seja G a gramática: S asb asbb λ L(G) = {a n b m 0 n m 2n}. G é ambígua, pois: S asb aasbbb aabbb S asbb aasbbb aabbb A estratégia para definir uma gramática G 1 que não seja ambígua é primeiro gerar os a s que casam com um b e somente depois gerar os a s que casam com dois b s: G 1 : { S asb A λ A aabb abb

17 O grafo de uma gramática Definiremos um grafo onde os nodos são formas sentenciais obtidas por derivações mais à esquerda (forma sentencial à esquerda), e as arestas são definidas assim: Se v = L w em G então w é adjacente a v no grafo.

18 Definição Seja G = (V, Σ, P, S) uma gramática livre de contexto. O grafo mais à esquerda da gramática G, denotado g(g), é o grafo dirigido rotulado (N, P, A) assim definido: N = {w (V Σ) S = L w} A = {[v, w, r] N N P v = L w por uma aplicação da regra r}.

19 Observações Um caminho de S até w em g(g) representa uma derivação de w a partir de S em G O rótulo do arco de v a w especifica a regra que foi aplicada em v para obter-se w Assim, para sabermos se w L(G), basta resolvermos o problema de encontrar um caminho de S até w em g(g). Isto pode ser feito recorrendo-se à Teoria do Grafos!

20 Definição Um grafo em que cada nodo tem um número finito de filhos é dito localmente finito, ainda que tenha um número infinito de nodos. É o caso de várias gramáticas livre de contexto interessantes.

21 Exemplo S S as S λ S bb as λ bb S as S bb S λ B ab B bs B bc aas abb a bab bbs bbc.....

22 Observações Se toda palavra no grafo tem apenas uma derivação mais à esquerda, o grafo é uma árvore; Se tem ciclos, a gramática é ambígua.

23 Observações Técnicas padrão de busca em grafos são empregadas, mas o grafo não precisa ser totalmente definido, pois é infinito; Usa-se a noção de grafo impĺıcito, que é obtido passo a passo, enquanto os caminhos são examinados; Assim, o mínimo possível do grafo é construído.

24 Observações Pode-se definir algoritmos que iniciam com S e buscam por w, ou seja, a busca é top-down; Também pode-se iniciar com w em busca de S, ou seja, a busca é bottom-up; Ainda é possível realizar buscas em amplitude (breadth-first) ou em profundidade (depth-first).

25 Formas normais A imposição de certas restrições na forma das regras de uma Gramática Livre de Contexto garantem algumas propriedades interessantes, por exemplo para analisadores sintáticos que terminam ou algumas outras caracterizações teóricas importantes.

26 Eliminação de regras-λ Veremos como construir uma gramática G L a partir de uma gramática G de tal maneira que as produções em G L não contêm regras-λ. Na verdade, pode haver uma única. Mas antes precisamos de alguns lemas e um algoritmo.

27 Eliminação de recursividade no símbolo de partida Lema 1: Seja G = (V, Σ, P, S) uma Gramática Livre de Contexto. Existe uma outra GLC G = (V, Σ, P, S ) que satisfaz: (i) L(G) = L(G ) (ii) As regras de P são da forma A w, onde A V e w ((V {S }) Σ)

28 Prova Se S não ocorre no lado direito de nenhuma regra de G então G = G. Portanto, considere que S é recursiva. Devemos fazer a seguinte alteração: G = (V {S }, Σ, P {S S}, S ) Onde S é o novo símbolo de partida (S V ). S serve apenas para iniciar a derivação. Obviamente L(G) = L(G ) pois se w L(G) então S = G w. Mas S 1 = G S = G w.

29 Exemplo S as AB AC A aa λ G : B bb bs C cc λ G : S S S as AB AC A aa λ B bb bs C cc λ

30 Observações Uma propriedade interessante para GLC s é que as derivações sempre aumentem de tamanho, ou que pelo menos mantenha o tamanho das formas sentenciais; Um tipo de regra que permite reduzir o tamanho das formas sentenciais é uma regra-λ; Chamamos de variáveis que constituem produções λ, ou produções vazias: Inicialmente, as produções-λ (A λ) Sucessivamente, as variáveis que geram λ indiretamente (por exemplo B A; A λ) Uma GLC que não contém estas variáveis é chamada de não contrativa (do inglês non contracting).

31 Eliminação de regras-λ Algoritmo para obtenção do conjunto de variáveis que constituem produções vazias: Entrada: Uma GLC G = (V, Σ, P, S) NULL := {A A λ P} REPEAT PREV := NULL FOR toda variável A V DO IF existe A w P E w PREV THEN NULL := NULL {A} UNTIL NULL = PREV

32 Exemplo S ACA A aaa B C G : B bb b C cc λ Iteração NULL PREV 0 {C} 1 {A, C} {C} 2 {S, A, C} {A, C} 3 {S, A, C} {S, A, C}

33 Lema Seja G = (V, Σ, P, S) uma Gramática Livre de Contexto. O algoritmo anterior gera o conjunto de variáveis que constituem produções vazias.

34 Prova Mostrar que, ao final do algoritmo, toda variável em NULL deriva λ; Mostrar que toda variável que constitui produções λ será inserida em NULL.

35 Prova, continuação A prova do primeiro ponto é por indução no número de iterações. Base: Suponha que uma variável A seja inserida em NULL no passo 1 do algoritmo. Então G contém A λ e a derivação é A λ. HI: Suponha que todas as variáveis que pertencem à NULL após n iterações do algoritmo constituem produções vazias. Passo indutivo: Seja A uma variável inserida em NULL na iteração n + 1.

36 Prova, continuação Então, por construção, existe uma regra do tipo: A A 1 A 2... A k Onde cada A i PREV na iteração n + 1. Mas A i i = 1,... k, pela HI. = λ, para Assim: A A 1 A 2... A k = A2... A k =... = Ak = λ O que mostra que A constitui produções vazias.

37 Prova, continuação Agora provaremos a parte 2, isto é, que toda variável que constitui produções λ será inserida em NULL. Suponha que A n = λ. Vamos mostrar que A é inserida em NULL no máximo na iteração n. De fato, por indução no tamanho da derivação: BASE: Se A 1 = λ, então A é inserida em NULL no passo 1 do algoritmo. HI: Suponha agora que todas as variáveis que derivam λ em no máximo n aplicações da regra foram inseridas em NULL no máximo na iteração n.

38 Prova, continuação Passo indutivo: Seja A uma variável que deriva λ em uma derivação de tamanho n + 1, isto é: A A 1 A 2... A k n = λ. Cada A i deriva λ em no máximo n passos (por construção). Logo, cada A i satisfaz a HI e assim está em NULL antes da iteração n + 1. Seja m n a iteração em que todos os A i s estão em NULL. Na iteração m + 1 a regra A A 1 A 2... A k permite inserir A em NULL.

39 Exemplo S as AB AC A aa λ G : B bb bs C cc λ NULL = {S, A, C} G 1 : S S S as AB AC A aa λ B bb bs C cc λ NULL = {S, S, A, C}

40 Lema 2 Seja G = (V, Σ, P, S) uma Gramática Livre de Contexto: Se A = G w, então G = (V, Σ, P {A w}, S) é equivalente à G (L(G) = L(G )). Prova Toda produção de G está em G. Assim, é fácil ver que L(G) L(G ). Veremos agora a prova de que L(G ) L(G)

41 Prova, continuação Seja w L(G ) e que a produção A w foi usada na derivação. Podemos obter w em G assim: S = G A = G w. Portanto, w L(G).

42 Aplicação do lema Uma gramática sem regras-λ é não contrativa. Suponha que B V constitui produções λ; Suponha uma regra do tipo: A BAa; Se B pode derivar λ, então: A BAa = Aa = w; Assim, basta substituir as regras-λ por A Aa; Se temos outra regra do tipo A BABa, basta substituir por quatro outras regras: A BABa; A ABa; A BAa e A Aa.

43 Teorema Seja G = (V, Σ, P, S) uma gramática livre de contexto. Existe um algoritmo que constrói uma GLC G L = (V L, Σ, P L, S L ) tal que: (i) L(G L ) = L(G) (ii) S L não é recursiva (iii) A λ P L se, e somente se, λ L(G) e A = S L.

44 Prova Aplica-se a técnica do lema 1, resolvemos (ii). Assim, V L = V {S } ou V L = V. Quanto às produções de G L, construimos: (i) Se λ L(G), então S L λ P L (ii) Seja A w P. Suponha que w = w 1 A 1 w 2 A 2... w k A k w k+1, onde A 1, A 2,..., A k são subconjuntos do conjunto de variáveis que constituem produções vazias que ocorrem em w. Assim: A w 1 w 2... w k w k+1 P L. (iii) A λ P L apenas se λ L(G) e A = S L. Devemos provar que a gramática G L assim construída é tal que L(G) = L(G L ).

45 Prova, continuação ( ) L(G L ) L(G), pois as derivações em G L usam regras de G e outras criadas em (ii), e cada uma destas regras é derivável em G.

46 Prova, continuação ( ) L(G) L(G L ), pois toda palavra não nula em L(G) é derivável em L(G L ). Seja A = n w uma derivação em G tal que G w Σ +. Se n = 1, A w P e como w λ também está em P L, assuma que toda palavra derivável a partir de A por n ou menos regras pode ser derivada a partir de A em G L. Seja A == n+1 w w Σ +. Isto é: G A w 1 A 1 w 2 A 2... w k A k w k+1 n = G w, onde A i V e w i Σ.

47 Prova, continuação Pelo lema da aula anterior: w = w 1 p 1 w 2 p 2... w k p k w k+1, Onde A i m = G p i, m n. Para cada p i Σ +, a hipótese de indução garante que A i = GL p i. Se p j = λ, A j constitui produção vazia e a construção (ii) gera a regra: A w 1 A 1 w 2 A 2... w k A k w k+1, em que cada A j que deriva λ é deletado. Uma derivação em G L pode ser construída começando-se por esta regra e derivando cada p i Σ + usando as derivações que existem dada a hipótese de indução.

48 Exemplo S ACA A aaa B C G : B bb b C cc λ NULL = {S, A, C}, portanto, por (i), S L λ P L (ii) C cc, onde {C} NULL, assim, C c P L A aaa, onde {A} NULL, assim, A aa P L S ACA, onde {A, C} NULL, assim, S AC CA AA A C P L C λ, mas C S L, portanto deleta a regra!

49 Exemplo, continuação G L : Exemplo de derivação em G para aba: S ACA aaaca abaca abaca abaa abac aba S L S λ S ACA AC CA AA C A A aaa aa B C B bb b C cc c Exemplo de derivação em G L para aba: S A aaa aba aba

50 Exemplo 2: a b c S ABC A aa λ G : B bb λ C cc λ G L : S L S λ S ABC AB AC BC A B C A aa a B bb b C cc c

51 Eliminação de regras de cadeia Regras de cadeia são as que têm a forma A B Exemplo: G: A aa a B B bb b c G 1 : A aa a bb b c B bb b c

52 Construção do conjunto cadeia(a) Entrada: Uma GLC G = (V, Σ, P, S) essencialmente não contrativa 1. cadeia(a) := {A} 2. PREV := 3. REPEAT 3.1 NEW := cadeia(a) PREV 3.2 PREV := cadeia(a) 3.3 FOR toda variável B NEW DO FOR toda regra B C DO cadeia(a) := cadeia(a) {C} UNTIL cadeia(a) = PREV

53 Lema Seja G = (V, Σ, P, S) uma Gramática Livre de Contexto essencialmente não contrativa. O algoritmo anterior gera o conjunto de variáveis que são deriváveis de A apenas usando regra de cadeia.

54 Teorema Seja G = (V, Σ, P, S) uma Gramática Livre de Contexto essencialmente não contrativa. Existe um algoritmo que constrói uma GLC G c tal que: (i) L(G c ) = L(G); (ii) G c não tem regras de cadeia.

55 Prova Construímos P c assim: Para cada variável A V, acrescentamos em P c as regras: Se existe uma variável B tal que: (i) B cadeia(a) (ii) B w P (iii) w V. Ainda: Mostraremos que L(G) = L(G c ) A w V c = V, Σ c = Σ, S c = S.

56 Prova, continuação O lema 2 garante que as palavras deriváveis em G c são também deriváveis em G. Seja w L(G) e A = B uma sequência maximal de regras de G cadeia usadas na derivação de w: S = G uav = G ubv = G upv = G w. Onde B p é uma regra que não é de cadeia. A regra A p pode substituir a sequência de derivações em cadeia. Usando-se esta técnica repetidas vezes, podemos remover todas as aplicações em cadeia na derivação de w, obtendo uma derivação de w em G c.

57 Exemplo S ACA CA AA AC A C λ A aaa aa B C G : B bb b C cc c G c é essencialmente não contrativa, portanto: cadeia(s) = {S, A, B, C} cadeia(a) = {A, B, C} cadeia(b) = {B} cadeia(c) = {C}

58 Exemplo, continuação Portanto: S ACA CA AA AC A C λ A aaa aa B C G : B bb b C cc c S ACA CA AA AC aaa aa bb b cc c λ A aaa aa bb b cc c P c : B bb b C cc c

59 Observações Eliminar regras de cadeia aumenta o número de regras, mas reduz o tamanho das derivações; G c também é essencialmente não contrativa; Cada regra em G c tem uma das seguintes formas: (i) S λ (ii) A a (iii) A w, onde w (V Σ) e w 2. Os analisadores bottom-up são completos para verificar se w L(G c ).

60 Símbolos inúteis Definição: Seja G uma Gramática Livre de Contexto. Um símbolo x (V Σ) é útil se existe uma derivação S = G uxv = G w, Onde u, v (Σ V ) e w Σ. Um símbolo que não é útil é inútil.

61 Exemplo: L(G) = b + G : S AC BS B A aa af B CF b C cc D D ad BD C E aa BSA F bb b

62 Algoritmo para encontrar as variáveis que geram terminais Entrada: Uma GLC G = (V, Σ, P, S) 1. TERM := {A existe A w P tal que w Σ } 2. REPEAT 2.1 PREV := TERM 2.2 FOR toda variável A V DO IF existe A w e w (PREV Σ) THEN TERM := TERM {A} UNTIL PREV = TERM

63 Teorema Seja G = (V, Σ, P, S) uma gramática livre de contexto. Existe um algoritmo que constrói uma GLC G T = (V T, Σ, P T, S) tal que: (i) L(G T ) = L(G) (ii) Toda variável em G T deriva uma palavra terminal em G T.

64 Prova P T é obtido assim: remove-se as regras que contêm variáveis de G que estão em V TERM. V T = TERM P T = {A w P A TERM e w (TERM Σ) } Σ T = {a Σ A uav P T } Resta provar a dupla inclusão: L(G T ) L(G) e L(G) L(G T )

65 Prova, continuação ( ) L(G T ) L(G). Seja w L(G T ). Então S P T P, e portanto S = G w. = GT w. Mas

66 Prova, continuação ( ) L(G) L(G L ). Seja w L(G). Então S = G contradição, que S = w. GT w. Suponha, por Então existe A (V TERM) que ocorre em um passo intermediário da derivação de w (em G). Mas uma derivação de A não pode gerar uma palavra terminal, pela construção do algoritmo. Assim, todas as regras aplicadas na derivação estão em P T e portanto w L(G T ).

67 Exemplo G : S AC BS B A aa af B CF b C cc D D ad BD C E aa BSA F bb b iteração TERM PREV 0 {B, F } 1 {B, F, A, S} { B,F } 2 {B, F, A, S, E} { B,F,A,S } 3 {B, F, A, S, E} { B,F,A,S,E }

68 Exemplo, continuação G : S AC BS B A aa af B CF b C cc D D ad BD C E aa BSA F bb b G T : S BS B A aa af B b E aa BSA F bb b

69 Algoritmo para encontrar as variáveis atingíveis Entrada: Uma GLC G = (V, Σ, P, S) 1. REACH := {S} 2. PREV := 3. REPEAT 3.1 NEW := REACH PREV 3.2 PREV := REACH 3.3 FOR A NEW DO FOR A w P DO adiciona variáveis em w a REACH UNTIL REACH = PREV

70 Lema Seja G = (V, Σ, P, S) uma Gramática Livre de Contexto O algoritmo anterior gera o conjunto de variáveis atingíveis a partir de S. Prova (I) Toda variável em REACH é derivável de S (II) Toda variável atingível a partir de S é adicionada ao conjunto REACH.

71 Prova, continuação I- Indução no número de iterações do algoritmo. BASE: na linha 1, REACH = {S}, e S é derivável a partir de S. HI: Suponha que todas as variáveis em REACH após n iterações são deriváveis de S. Passo indutivo: Seja B uma variável adicionada em REACH após n + 1 iterações. Então existe A ubv P A REACH após n iterações. Pela HI, existe uma derivação tal que S = xay. Aplicando a regra A ubv mostramos a derivação de B.

72 Prova, continuação II- Se S n = uav então A é adicionada em REACH no máximo na iteração n. Se A é atingível por uma derivação de tamanho zero, então ela entra em S no passo 1 do algoritmo. Suponha que se uma variável é atingível por uma derivação de tamanho n (ou menos) então A REACH na derivação n (ou antes). Seja S n = xay xubvy uma derivação de G. Pela HI, A REACH na derivação n e B é adicionado na iteração seguinte.

73 Teorema Seja G = (V, Σ, P, S) uma GLC. Existe um algoritmo que produz uma GLC G U tal que: (i) L(G U ) = L(G); (ii) G U não tem símbolos inúteis. Prova Construa G T a partir de G. Elimine de G T as variáveis que não são atingíveis de S, e consequentemente as regras que as contêm, assim obtendo G U.

74 Exemplo, continuação G : S AC BS B A aa af B CF b C cc D D ad BD C E aa BSA F bb b G T : S BS B A aa af B b E aa BSA F bb b { S BS B G U : B b

75 Observação A ordem de aplicação dos algoritmos é relevante. Primeiro deve-se eliminar as variáveis não geram terminais, e somente então encontrar os símbolos que não são atingíveis a partir de S. O exemplo a seguir ilustra este fato.

76 Exemplo { S a AB G : A b G T : { S a A b G T : { S a AB A b G U : { S a G U : { S a A b

Aula 8: Gramáticas Livres de Contexto

Aula 8: Gramáticas Livres de Contexto Teoria da Computação Primeiro Semestre, 2015 Aula 8: Gramáticas Livres de Contexto DAINF-UTFPR Prof. Ricardo Dutra da Silva Veremos agora maneira de gerar as strings de um tipo específico de linguagem,

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

COMPILADORES. Revisão Linguagens formais Parte 02. Prof. Geovane Griesang

COMPILADORES. Revisão Linguagens formais Parte 02. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Revisão Linguagens formais Parte 02 Prof. geovanegriesang@unisc.br Legenda: = sigma (somatório) = delta ε = epsilon λ =

Leia mais

Linguagens Formais - Preliminares

Linguagens Formais - Preliminares Linguagens Formais - Preliminares Regivan H. N. Santiago DIMAp-UFRN 25 de fevereiro de 2007 Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Formais - Preliminares 25 de fevereiro de 2007 1 / 26 Algumas

Leia mais

Gramá3ca Livre de Contexto (GLC)

Gramá3ca Livre de Contexto (GLC) Linguagens Formais e Autômatos Gramá3ca Livre de Contexto (GLC) Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hep://dcc.ufmg.br/~nvieira) Sumário Gramá4cas livres de

Leia mais

Gramática regular. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz Universidade de São Paulo

Gramática regular. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz Universidade de São Paulo Gramática regular IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 41 Frase do dia Através de três métodos

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

Gramática Livre de Contexto

Gramática Livre de Contexto Gramática Livre de Contexto Prof. Yandre Maldonado - 1 Árvore de derivação Ambigüidade Simplificação de Gramática Forma Normal de Chomsky (FNC) Forma Normal de Greibach (FNG) Prof. Yandre Maldonado e Gomes

Leia mais

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br

Leia mais

Automata e Linguagens Formais

Automata e Linguagens Formais Automata e Linguagens Formais 5 Prof. Carlos H. C. Ribeiro carlos@ita.br Gramáticas A Hierarquia de Chomsky Tipos de gramáticas e linguagens Pré-normalização de GLCs Formas Normais: Chomsky e Greibach

Leia mais

Linguagens Formais e Autômatos. Simplificação de Gramáticas Livre do Contexto (GLC)

Linguagens Formais e Autômatos. Simplificação de Gramáticas Livre do Contexto (GLC) Linguagens Formais e Autômatos Simplificação de Gramáticas Livre do Contexto (GLC) Cristiano Lehrer, M.Sc. Gramática Simplificada Gramática simplificada é uma gramática livre do contexto que não apresenta

Leia mais

Gramáticas e Linguagens independentes de contexto

Gramáticas e Linguagens independentes de contexto Capítulo 6 Gramáticas e Linguagens independentes de contexto 6.1 Gramáticas Nesta secção vamos introduzir gramáticas formais para caracterização das linguagens, estudando fundamentalmente as gramáticas

Leia mais

Teoria da Computação Gramáticas, Linguagens Algébricas e Autómatos de Pilha

Teoria da Computação Gramáticas, Linguagens Algébricas e Autómatos de Pilha Teoria da Computação Gramáticas, Linguagens Algébricas e Autómatos de Pilha Simão Melo de Sousa 12 de Outubro de 2011 Conteúdo 1 Gramáticas e Definições básicas 1 2 Gramáticas e Linguagens 4 2.1 Gramáticas

Leia mais

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br

Leia mais

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO LICENCIATURA EM CIÊNCIAS DA COMPUTAÇÃO TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO José Carlos Costa Dep. Matemática e Aplicações Universidade do Minho Braga, Portugal 31 de Maio de 2010

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

Gramática Livre de Contexto

Gramática Livre de Contexto Prof. Yandre Maldonado - 1 Gramática Livre de Contexto Árvore de derivação Ambigüidade Simplificação de Gramática Forma Normal de Chomsky (FNC) (FNG) Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br

Leia mais

Apostila 03 - Linguagens Livres de Contexto Exercícios

Apostila 03 - Linguagens Livres de Contexto Exercícios Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND) DEP. INFORMÁTICA - UNIVERSIDADE DA BEIRA INTERIOR Teoria da Computação Eng. Informática 1º Semestre Exame 2ª chamada - Resolução 2h + 30min 07/Fev/2011 Pergunta A.1 A.2 A.3 B.1 B.2 B.3a B.3b C.1 C.2 D.1

Leia mais

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 27 de Fevereiro de 2018

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 27 de Fevereiro de 2018 27 de Fevereiro de 2018 Definição: Concatenação Sejam u, v Σ. A concatenação de u e v, denotado por uv é a operação binária sobre Σ assim definida (i) BASE: Se tamanho(v) = 0 então v = λ e uv = u. (ii)

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

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

Gramáticas Livres de Contexto

Gramáticas Livres de Contexto Gramáticas Livres de Contexto IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 42 Frase do dia Quando vires

Leia mais

Expressões Regulares e Gramáticas Regulares

Expressões Regulares e Gramáticas Regulares Universidade Católica de Pelotas Escola de informática 053212 Linguagens Formais e Autômatos TEXTO 2 Expressões Regulares e Gramáticas Regulares Prof. Luiz A M Palazzo Março de 2007 Definição de Expressão

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

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 Matemática Discreta para Ciência da Computação - P. Blauth Menezes

Leia mais

Capítulo 3: Gramáticas

Capítulo 3: Gramáticas Capítulo 3: Gramáticas Já vimos que procedimentos podem ser usados para definir linguagens de duas maneiras essenciais: como geradores, procedimentos que enumeram os elementos da linguagem, e como reconhecedores

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

Gramáticas e Linguagens Independentes de Contexto

Gramáticas e Linguagens Independentes de Contexto Gramáticas e Linguagens Independentes de Contexto 6.1 Responde às uestões seguintes considerando a gramática independente de contexto G = (V, {a, b}, P, R), onde o conjunto de regras P é: R XRX S S at

Leia mais

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND) DEP. INFORMÁTICA - UNIVERSIDADE DA BEIRA INTERIOR Teoria da Computação Eng. Informática 1º Semestre Exame 1ª chamada - Resolução 2h + 30min 31/Jan/2011 Pergunta A.1 A.2 A.3 B.1 B.2 B.3a B.3b C.1 C.2 D.1

Leia mais

Propriedades das Linguagens Livres do Contexto

Propriedades das Linguagens Livres do Contexto Capítulo 7 Propriedades das Linguagens Livres do Contexto As linguagens livres do contexto ocupam uma posição central na hierarquia das linguagens formais. Por um lado, as linguagens livres do contexto

Leia mais

IBM1088 Linguagens Formais e Teoria da

IBM1088 Linguagens Formais e Teoria da IBM1088 Linguagens Formais e Teoria da Computação Linguagens e Gramáticas Evandro Eduardo Seron Ruiz evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 47 Frase do dia Sofremos muito com

Leia mais

Conceitos básicos de Teoria da Computação

Conceitos básicos de Teoria da Computação Folha Prática Conceitos básicos de 1 Conceitos básicos de Métodos de Prova 1. Provar por indução matemática que para todo o número natural n: a) 1 + 2 + 2 2 + + 2 n = 2 n+1 1, para n 0 b) 1 2 + 2 2 + 3

Leia mais

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Apostila 05 Assunto: Linguagens dos tipos 0 e 1 Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

Capítulo Métodos para transformar gramáticas ái Duas formas Normais (Chomsky e Greibach) ADC/TC/Cap.6/ /LEI/DEIFCTUC 268

Capítulo Métodos para transformar gramáticas ái Duas formas Normais (Chomsky e Greibach) ADC/TC/Cap.6/ /LEI/DEIFCTUC 268 Capítulo 6 Simplificação de gramáticas livres de contexto e Formas Normais 61 6.1. Métodos para transformar gramáticas ái 62 6.2. Duas formas Normais (Chomsky e Greibach) 268 6.1. Métodos para transformar

Leia mais

As linguagens regulares são I.C Proposição Qualquer linguagem regular é independente de contexto.

As linguagens regulares são I.C Proposição Qualquer linguagem regular é independente de contexto. As linguagens regulares são I.C Proposição 16.1. Qualquer linguagem regular é independente de contexto. Dem. Seja L Σ uma linguagem regular, e seja r uma expressão regular tal que L = L(r).Por indução

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

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

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Revisão Linguagens formais Parte 01 geovanegriesang@unisc.br Legenda: = sigma (somatório) = delta ε = épsilon λ = lambda

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

Definições Exemplos de gramáticas

Definições Exemplos de gramáticas Definições Exemplos de gramáticas 1 Gramáticas Conceito introduzido pela lingüística Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas Fracasso da tradução por volta dos anos

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

Formas Normais sobre GLC's

Formas Normais sobre GLC's Linguagens Formais e Autômatos Formas Normais sobre GLC's Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hcp://dcc.ufmg.br/~nvieira) Sumário Formas Normais Chomsky Greibach

Leia mais

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha (versão 2)

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha (versão 2) SCC-505 - Capítulo 2 e (versão 2) João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação - Universidade de São Paulo http://www.icmc.usp.br/~joaoluis

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

Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem

Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem Conceitos Básicos Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem Alfabeto ou Vocabulário: Conjunto finito não vazio de símbolos. Símbolo é um elemento qualquer de um alfabeto.

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

Gramáticas ( [HMU00], Cap. 5.1)

Gramáticas ( [HMU00], Cap. 5.1) Gramáticas ( [HMU00], Cap. 5.1) Vimos que a seguinte linguagem não é regular L = {0 n 1 n n 0} Contudo podemos fácilmente dar uma definição indutiva das suas palavras: 1. ɛ L 2. Se x L então 0x1 L L é

Leia mais

Construção de Compiladores

Construção de Compiladores Construção de Compiladores Parte 1 Introdução Linguagens e Gramáticas F.A. Vanini IC Unicamp Klais Soluções Motivação Porque compiladores? São ferramentas fundamentais no processo de desenvolvimento de

Leia mais

Expressões e Gramáticas Regulares e Autómatos Finitos

Expressões e Gramáticas Regulares e Autómatos Finitos Folha Prática Expressões e Gramáticas Regulares e Autómatos Finitos 1 Expressões e Gramáticas Regulares e Autómatos Finitos Expressões Regulares e Autómatos Finitos 1. Determine e implemente computacionalmente

Leia mais

Transformações úteis para GLC: (1) eliminação de produções nulas; (2) eliminação de produções unitárias; (3) Eliminação de símbolos estéreis e

Transformações úteis para GLC: (1) eliminação de produções nulas; (2) eliminação de produções unitárias; (3) Eliminação de símbolos estéreis e Transformações úteis para GLC: (1) eliminação de produções nulas; (2) eliminação de produções unitárias; (3) Eliminação de símbolos estéreis e inacessíveis; Forma Normal de Chomsky (FNC) e Forma Normal

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERIDADE DA EIRA INTERIOR Teoria da Computação Eng. Informática 2º emestre Frequência 2 (7 valores) Resolução 30/maio/2017 A. Expressões regulares e autómatos finitos 1. [1.25] Usando o método de eliminação

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

Segunda Lista de Exercícios 2004/2...

Segunda Lista de Exercícios 2004/2... + + UFLA Universidade Federal de Lavras Departamento de Ciência da Computação COM162 Linguagens Formais e Autômatos Prof. Rudini Sampaio Monitor: Rodrigo Pereira dos Santos Segunda Lista de Exercícios

Leia mais

Faculdade de Computação

Faculdade de Computação UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação - 1 0 Semestre 007 Professora : Sandra Aparecida de Amo Solução da Lista de Exercícios n o 1 Exercícios de Revisão

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

Os movimentos do reconhecedor correspondem ao uso de derivações mais à esquerda; A árvore de sintaxe é montada de cima para baixo (da raiz em direção

Os movimentos do reconhecedor correspondem ao uso de derivações mais à esquerda; A árvore de sintaxe é montada de cima para baixo (da raiz em direção Os movimentos do reconhecedor correspondem ao uso de derivações mais à esquerda; A árvore de sintaxe é montada de cima para baixo (da raiz em direção às folhas); Caracteriza a classe das gramáticas (e

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

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

Formas normais. Forma normal de Greibach (FNG) todas as produções são da forma

Formas normais. Forma normal de Greibach (FNG) todas as produções são da forma Formas normais Em muitas aplicações, é útil que as GIC tenham regras de tipos especiais. Para tal é necessário que se possa transformar qualquer gramática numa equivalente (isto é que gere a mesma linguagem)

Leia mais

Teoria da Computação Aula 02 Introdução

Teoria da Computação Aula 02 Introdução Teoria da Computação Aula 02 Introdução Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Alfabeto Um alfabeto é um conjunto finito de símbolos ou caracteres, representado pela letra sigma ( ). Portanto:

Leia mais

Árvores (ordenadas) Departamento de Ciência de Computadores da FCUP MC Aula 11 1

Árvores (ordenadas) Departamento de Ciência de Computadores da FCUP MC Aula 11 1 Árvores (ordenadas) Recordemos que, uma árvore é grafo (não dirigido) em que o número de vértices excede em 1 o número de arcos. Um vértice é acessível a todos os outros: a raiz. Os vértices que são acessíveis

Leia mais

Linguagens, Reconhecedores e Gramáticas

Linguagens, Reconhecedores e Gramáticas Linguagens, Reconhecedores e Gramáticas Já vimos que Linguagem é um conjunto de cadeias de símbolos sobre um alfabeto/vocabulário, V. É um subconjunto específico de V*. Estas cadeias são denominadas sentenças

Leia mais

Definições Hierarquia de Chomsky Exemplos de gramáticas. Gramáticas. Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas

Definições Hierarquia de Chomsky Exemplos de gramáticas. Gramáticas. Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas Definições Hierarquia de Chomsky Exemplos de gramáticas 1 Gramáticas Conceito introduzido pela lingüística Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas Fracasso da tradução

Leia mais

Expressões regulares

Expressões regulares Expressões regulares IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 38 Frase do dia A vida é uma luta inteira

Leia mais

Exemplo preliminar. Considere a linguagem dos Palíndromos Lpal:

Exemplo preliminar. Considere a linguagem dos Palíndromos Lpal: a n b n 1 Exemplo preliminar Considere a linguagem dos Palíndromos Lpal: radar, Roma é amor, 0110, 11011,... ou seja, quando w = w r Lpal é regular? usando o Lema do Bombeamento: Suponha Lpal regular,

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

Hierarquia de Chomsky Exemplos de gramáticas

Hierarquia de Chomsky Exemplos de gramáticas Hierarquia de Chomsky Exemplos de gramáticas 1 Formalmente, as gramáticas são caracterizadas como quádruplas ordenadas G = ( Vn, Vt, P, S) onde: Vn representa o vocabulário não terminal da gramática. Este

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

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

SCC Capítulo 1 Linguagens Regulares e Autômatos Finitos

SCC Capítulo 1 Linguagens Regulares e Autômatos Finitos SCC-505 - Capítulo 1 Linguagens Regulares e Autômatos Finitos João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Universidade Federal de Alfenas Linguagens Formais e Autômatos Aula 12 Linguagens Livres do Contexto humberto@bcc.unifal-mg.edu.br Linguagens Livres do Contexto Para as LLC, temos as Gramáticas Livres

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

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

Linguagens e Gramáticas. Linguagens Formais Hierarquia de Chomsky

Linguagens e Gramáticas. Linguagens Formais Hierarquia de Chomsky Linguagens e Gramáticas Linguagens Formais Hierarquia de Chomsky Já vimos que Linguagem é um conjunto de cadeias de símbolos sobre um alfabeto/vocabulário, V. É um subconjunto específico de V*. Estas cadeias

Leia mais

Gramática. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1

Gramática. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Prof. Yandre Maldonado - 2 Mecanismo gerador que permite definir formalmente uma linguagem; Através de uma gramática

Leia mais

Gramática. Gramática. Gramática

Gramática. Gramática. Gramática Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Prof. Yandre Maldonado - 2 Mecanismo gerador que permite definir formalmente uma linguagem; Através de uma gramática

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

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 2 BNF e Grafo Sintático Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir

Leia mais

Alfabeto, Cadeias, Operações e Linguagens

Alfabeto, Cadeias, Operações e Linguagens Linguagens de Programação e Compiladores - Aula 3 1 Alfabeto, Cadeias, Operações e Linguagens 1.Conjuntos Para representar um determinado conjunto é necessário buscar uma notação para representá-lo e ter

Leia mais

Linguagens livres de contexto e autômatos de pilha

Linguagens livres de contexto e autômatos de pilha Capítulo 6: Linguagens livres de contexto e autômatos de pilha José Lucas Rangel, maio 1999 6.1 - Introdução. Os aceitadores, ou reconhecedores, das linguagens livres de contexto são os chamados autômatos

Leia mais

Marcos Castilho. DInf/UFPR. 5 de abril de 2018

Marcos Castilho. DInf/UFPR. 5 de abril de 2018 5 de abril de 2018 Autômatos com Pilha Não-Determinísticos Um Autômato com Pilha Não-Determinístico (APN) é uma sêxtupla (Q, Σ, Γ, δ, Q 0, F ), onde: Q, Σ, Γ, F são como nos APD s; δ : Q (Σ {λ}) (Γ {λ})

Leia mais

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação Universiae e São Paulo Instituto e Ciências Matemáticas e e Computação Curso e Ciências e Computação SCC-205 TEORIA DA COMPUTAÇÃO E LINGUAGENS FORMAIS Turma A 2º. Semestre e 2010 Prof. João Luís Lista

Leia mais

Linguagens e Programação Gramáticas. Paulo Proença

Linguagens e Programação Gramáticas. Paulo Proença Linguagens e Programação Gramáticas Gramáticas Ferramenta para a descrição e análise de linguagens; Baseada num conjunto de regras que especificam o modo de construção das frases válidas na linguagem;

Leia mais

INE5317 Linguagens Formais e Compiladores. AULA 4: Gramáticas

INE5317 Linguagens Formais e Compiladores. AULA 4: Gramáticas INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticas bas eado em material produzido pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br URL:

Leia mais

Draft-v0.2. Gramáticas Independentes do Contexto O funcionamento de uma CFG Derivação de uma palavra

Draft-v0.2. Gramáticas Independentes do Contexto O funcionamento de uma CFG Derivação de uma palavra 10 Gramáticas Independentes do Contexto Como vimos nos capítulos anteriores, apesar da classe das Linguagens Regulares serem particularmente bem comportadas tanto em termos de complexidade dos seus algoritmos

Leia mais

Fundamentos da Teoria da Computação

Fundamentos da Teoria da Computação Fundamentos da Teoria da Computação Terceira Lista de Exercícios - Aula sobre dúvidas Sérgio Mariano Dias 1 1 Mestrando em Ciência da Computação Departamento de Ciência da Computação Universidade Federal

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

Gramáticas Livres de Contexto

Gramáticas Livres de Contexto Gramáticas Livres de Contexto 25 de novembro de 2011 Definição 1 Uma Regra (ou produção) é um elemento do conjunto V (V Σ). Sendo que V é um conjunto finito de elementos chamados de variáveis e Σ um conjunto

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

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 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

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos Soluções para a Lista 4 Universidade Federal do ABC Aritanan Gruber aritanan.gruber@ufabc.edu.br http://professor.ufabc.edu.br/ aritanan.gruber Os exercícios marcados com

Leia mais

Aula 7: Autômatos com Pilha

Aula 7: Autômatos com Pilha Teoria da Computação Segundo Semestre, 2014 Aula 7: Autômatos com Pilha DAINF-UTFPR Prof. Ricardo Dutra da Silva Vamos adicionar um memória do tipo pilha ao nossos autômatos para que seja possível aceitar

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

Gramáticas Livres de Contexto Parte 1

Gramáticas Livres de Contexto Parte 1 Universidade Estadual de Feira de Santana Engenharia de Computação Gramáticas Livres de Contexto Parte 1 EXA 817 Compiladores Prof. Matheus Giovanni Pires O papel do Analisador Sintático É responsável

Leia mais

Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA)

Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA) Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA) Análise Léxica A primeira fase da compilação Recebe os caracteres de entrada do programa e os converte em um fluxo de

Leia mais

Compiladores - Gramáticas

Compiladores - Gramáticas Compiladores - Gramáticas Fabio Mascarenhas 2018.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Sintática A análise sintática agrupa os tokens em uma árvore sintática de acordo com a estrutura do programa

Leia mais