Linguagens Formais

3,466 views

Published on

Lâminas para um curso de 1 semestre de linguagens formais

Published in: Technology
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total views
3,466
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
183
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Linguagens Formais

  1. 1. 1 Disciplina de Linguagens Formais Prof. Carlos A. P. Campani 2 de maio de 2006
  2. 2. 2 Copyright c 2005 Carlos A. P. Campani. ´ E garantida a permiss˜o para copiar, distribuir e/ou a modificar este documento sob os termos da Licen¸a de c Documenta¸ao Livre GNU (GNU Free Documentation c˜ License), Vers˜o 1.2 ou qualquer vers˜o posterior a a publicada pela Free Software Foundation; sem Se¸oes c˜ Invariantes, Textos de Capa Frontal, e sem Textos de Quarta Capa. Uma c´pia da licen¸a ´ inclu´ na se¸ao o c e ıda c˜ intitulada “GNU Free Documentation License”. veja: http://www.ic.unicamp.br/~norton/fdl.html.
  3. 3. 3 Objetivos • Formalizar o conceito de linguagem; • Apresentar uma classifica¸ao de linguagens baseada c˜ nesta formaliza¸ao; c˜ • Fornecer ferramentas para implementar compiladores; • Relacionar a hierarquia de linguagens com o conceito de computabilidade.
  4. 4. 4 S´ mula da Disciplina u 1. Introdu¸ao ` Teoria de Linguagens Formais; c˜ a • Alfabetos, Senten¸as e Linguagens; c • Gram´ticas e Reconhecedores; a • Tipos de Gram´ticas/Linguagens (Hierarquia de a Chomsky);
  5. 5. 5 2. Gram´ticas Regulares e Autˆmatos Finitos; a o • Defini¸ao de Gram´tica Regular (GR); c˜ a • Defini¸ao de Autˆmato Finito; c˜ o • Autˆmato Finito N˜o-Determin´ o a ıstico; • Rela¸ao entre Autˆmato Finito e GR; c˜ o • Minimiza¸ao de Autˆmato Finito; c˜ o • Express˜es Regulares; o • Bombeamento para Linguagens Regulares; • M´quinas de Moore e Mealy; a
  6. 6. 6 3. Gram´ticas Livres de Contexto e Autˆmatos de a o Pilha; • Defini¸ao de GLC; c˜ ´ • Arvores de Deriva¸ao e Ambig¨idade; c˜ u • Transforma¸oes em GLC: Elimina¸˜o de S´ c˜ ca ımbolos In´teis; Transforma¸ao em uma GLC ε-Livre; u c˜ Remo¸ao de Produ¸oes Simples; Fatora¸˜o; c˜ c˜ ca Elimina¸ao de Recurs˜o ` Esquerda; c˜ a a • Formas Canˆnicas: Forma Normal de Chomsky; o Forma Normal de Greibach; • Autˆmatos de Pilha (PDA); o • Rela¸ao entre PDA e GLC; c˜
  7. 7. 7 4. Reconhecedor – Algoritmo CYK; 5. Linguagens Tipo 0 e M´quinas de Turing; a 6. Linguagens Sens´ ıveis ao Contexto e Autˆmatos de o Fita Limitada; 7. Hierarquia de Chomsky (revisitada).
  8. 8. 8 Bibliografia • Introduction to Automata Theory, Languages, and Computation, Hopcroft e Ullman; • Linguagens Formais e Autˆmatos, Paulo Blauth o Menezes.
  9. 9. 9 Links (Lˆminas) a http://www.ufpel.tche.br/~campani/lingformal.pdf (Lˆminas para impress˜o) a a http://www.ufpel.tche.br/~campani/lingformal4.ps.gz
  10. 10. 1 ¸˜ INTRODUCAO 10 1 Introdu¸˜o ca • Uma linguagem ´ um meio de comunica¸˜o utilizado e ca por elementos de uma determinada comunidade. Formada por: – Conjunto de palavras; – Conjunto de regras gramaticais; • Uma linguagem ´ formal quando pode ser e representada atrav´s de um sistema com sustenta¸˜o e ca matem´tica. Formada por: a – Sintaxe (estrutura) – foco da nossa disciplina; – Semˆntica (significado) – n˜o interessa para n´s. a a o
  11. 11. 1 ¸˜ INTRODUCAO 11 • Alfabeto (ou vocabul´rio) ´ um conjunto finito de a e s´ ımbolos. Ex: d´ıgitos, letras, etc. {a, b, c, . . . , z} {0, 1} • Senten¸a (ou palavra, ou string) sobre um alfabeto ´ c e qualquer seq¨ˆncia finita de s´ ue ımbolos do alfabeto. Ex: Seja o alfabeto V = {0, 1}, s˜o senten¸as v´lidas a c a 001, 1010, etc. • O tamanho (ou comprimento) de uma senten¸a ´c e dado pelo n´mero de s´ u ımbolos que a comp˜e. Ex: o V = {a, b, c}, senten¸a w = ab, tamanho |w| = 2; c
  12. 12. 1 ¸˜ INTRODUCAO 12 • A senten¸a que n˜o cont´m s´ c a e ımbolos (tamanho zero) ´ chamada de senten¸a vazia, sendo denotada por ε e c (|ε| = 0); • Seja V um alfabeto. Representamos por: – V ∗ – conjunto de todas as senten¸as compostas de c s´ ımbolos de V incluindo a senten¸a vazia; c – V + = V ∗ − {ε}; Exemplo: V = {0, 1}, V ∗ = {ε, 0, 1, 00, 01, 10, 11, 000, 001, 010, . . .}, V + = {0, 1, 00, 01, 10, 11, 000, 001, 010, . . .}.
  13. 13. 1 ¸˜ INTRODUCAO 13 Linguagem ´ qualquer conjunto de senten¸as sobre um e c alfabeto. ou Uma linguagem L sobre um alfabeto V ´ tal que L ⊆ V ∗ . e
  14. 14. 1 ¸˜ INTRODUCAO 14 • Tipos de linguagens: finitas, vazias e infinitas; • Representa¸ao: c˜ – Listando as palavras (s´ finita); o – Descri¸ao alg´brica. Ex: {an bn cn |n ≥ 1}. c˜ e Nota¸ao: c˜ n vezes aaa · · · a = an ; – Definindo um algoritmo que determina (sim ou n˜o) se uma senten¸a pertence a uma linguagem a c (Reconhecimento). Ex: autˆmato finito; o – Definindo um mecanismo que gera todas as senten¸as da linguagem em alguma ordem c (Gera¸˜o). Ex: gram´tica. ca a
  15. 15. 1 ¸˜ INTRODUCAO 15 • Uma gram´tica serve para definir qual o subconjunto a de senten¸as que faz parte de uma determinada c linguagem. Ela ´ um dispositivo formal para e especificar uma linguagem potencialmente infinita de uma forma finita;
  16. 16. 1 ¸˜ INTRODUCAO 16 • Nota¸˜o Formal de Gram´tica ca a Uma gram´tica G ´ definida por uma qu´drupla a e a G = (N, T, P, S) onde: N conjunto finito de n˜o-terminais; a T conjunto finito de terminais; P conjunto finito de regras de produ¸ao; c˜ S s´ ımbolo inicial da gram´tica. a Observa¸oes: N T = ∅, V = N c˜ T, S ∈ N, P = {α → β|α ∈ V + ∧ β ∈ V ∗ }.
  17. 17. 1 ¸˜ INTRODUCAO 17 Exemplo: gera n´meros inteiros u G = (N, T, P, I) N = {I, D} T = {0, 1, 2, . . . , 9} P = {I → D, I → DI, D → 0, D → 1, . . . , D → 9} ou P : I → D|DI, D → 0|1|2| · · · |9 Exerc´ıcio: Reescrever tentando evitar n´meros tipo u 0015.
  18. 18. 1 ¸˜ INTRODUCAO 18 • Conven¸oes: c˜ S´ ımbolos n˜o-terminais N = {A, B, C, . . . T }; a S´ ımbolos terminais T = {a, b, c, . . . t}; S´ ımbolo terminal ou n˜o-terminal a N T = {U, V, . . . Z}; Seq¨ˆncias de terminais T ∗ = {u, v, . . . z}; ue Seq¨ˆncias de n˜o-terminais e terminais ue a (N T )∗ = {α, β, γ, . . .}.
  19. 19. 1 ¸˜ INTRODUCAO 19 • Deriva¸˜o (⇒) ´ uma opera¸ao de substitui¸ao ca e c˜ c˜ efetuada de acordo com as regras de produ¸˜o da ca gram´tica. a Formalmente: γαδ ⇒ γβδ se α → β ∈ P e γ, δ ∈ V ∗ . Exemplo: G = ({S, A, B}, {0, 1}, {S → AB, A → 0|AB, B → 1|1B}, S), e S ⇒ AB ⇒ ABB ⇒ 0BB ⇒ 01B ⇒ 011B .
  20. 20. 1 ¸˜ INTRODUCAO 20 • Uma seq¨ˆncia de deriva¸oes com zero ou mais ue c˜ passos (⇒∗ ): Formalmente: α1 ⇒∗ αm se α1 ⇒ α2 , α2 ⇒ α3 , . . . , αm−1 ⇒ αm , α1 , α2 , . . . , αm ∈ V ∗ . • Garantindo pelo menos uma substitui¸ao (⇒+ ): c˜ Formalmente: α1 ⇒+ αm se α1 ⇒ α2 , α2 ⇒∗ αm , α1 , α2 , . . . , αm ∈ V ∗ .
  21. 21. 1 ¸˜ INTRODUCAO 21 • Uma senten¸a de uma linguagem ´ uma seq¨ˆncia c e ue formada por terminais, obtida a partir do s´ ımbolo inicial da gram´tica desta linguagem, atrav´s de a e deriva¸oes sucessivas. c˜ Formalmente: S ⇒+ u. • Uma forma sentencial ´ uma seq¨ˆncia qualquer, e ue composta de terminais e n˜o-terminais, obtida a a partir do s´ ımbolo inicial da gram´tica atrav´s de a e deriva¸oes sucessivas. c˜ Formalmente: S ⇒∗ α.
  22. 22. 1 ¸˜ INTRODUCAO 22 • A linguagem gerada por uma gram´tica a G = (N, T, P, S) ´ o conjunto de todas as senten¸as e c da linguagem obtidas da gram´tica por deriva¸oes a c˜ sucessivas. Formalmente: L(G) = {w|w ∈ T ∗ ∧ S ⇒∗ w}.
  23. 23. 1 ¸˜ INTRODUCAO 23 Ex: G = ({S}, {0, 1}, P, S) com P = {S → 0S1, S → 01}. Assim, S ⇒ 0S1 ⇒ 00S11 ⇒ 03 S13 ⇒ · · · que ´ igual a 0n 1n e para n ≥ 1. Logo, L(G) = {0n 1n |n ≥ 1}. Nota¸˜o: ca n vezes aaa · · · a = an .
  24. 24. 1 ¸˜ INTRODUCAO 24 Exerc´ ıcio: Seja a seguinte gram´tica: a G = ({S, A, B}, {0, 1}, P, S) P = {S → ASBB|BSAA|0, A → 01|01A, B → 10|10B} Obtenha as deriva¸oes para as seguintes senten¸as: c˜ c 1. 0101010; 2. 101000101010101.
  25. 25. 1 ¸˜ INTRODUCAO 25 • Tipos de Gram´ticas – segundo a hierarquia de a Chomsky existem quatro tipos: Tipo 0 ou Irrestritas P = {α → β|α ∈ V + , β ∈ V ∗ }; Tipo 1 ou Sens´ ıvel ao Contexto Se α → β ∈ P ent˜o |α| ≤ |β|. a Outra forma: P = {α1 Aα2 → α1 βα2 |α1 , α2 ∈ V ∗ , β ∈ V + , A ∈ N }; Tipo 2 ou Livre de Contexto P = {α → β|α ∈ N ∧ β = ε}; Tipo 3 ou Regular A → aB ou A → a, ou seja, P = {A → aX|A ∈ N, a ∈ T, X ∈ N ∪ {ε}}.
  26. 26. 1 ¸˜ INTRODUCAO 26 • Gram´ticas lineares: a Gram´tica linear ` direita Se todas as produ¸oes a a c˜ s˜o da forma A → wB ou A → w, com w ∈ T ∗ ; a Gram´tica linear ` esquerda Se todas as a a produ¸oes s˜o da forma A → Bw ou A → w; c˜ a Gram´tica linear unit´ria ` direita linear ` a a a a direita com |w| ≤ 1; Gram´tica linear unit´ria ` esquerda linear ` a a a a esquerda com |w| ≤ 1. • Teorema: As quatro defini¸oes de gram´ticas lineares c˜ a s˜o equivalentes. a
  27. 27. 1 ¸˜ INTRODUCAO 27 • Defini¸˜o alternativa de gram´tica regular: ca a Uma gram´tica regular ´ qualquer gram´tica linear. a e a
  28. 28. 1 ¸˜ INTRODUCAO 28 Regulares Livres de Contexto ´ Sensiveis ao Contexto Tipo 0 Tipo 3 ⊂ Tipo 2 ⊂ Tipo 1 ⊂ Tipo 0 ⊂ T ∗
  29. 29. 1 ¸˜ INTRODUCAO 29 • Ex: G = ({S, A, B}, {a, b}, P, S) P = {S → aB|bA, A → a|aS|bAA, B → b|bS|aBB} 1. Tipo da gram´tica? a 2. L(G)?
  30. 30. 1 ¸˜ INTRODUCAO 30 • Respostas: 1. Livre de contexto; 2. L(G) ´ o conjunto de todas as palavras em T ∗ que e tem o mesmo n´mero de a’s e b’s. u
  31. 31. 1 ¸˜ INTRODUCAO 31 • Linguagens classificadas segundo as gram´ticas em: a 1. Recursivamente enumer´veis ou RE a (gram´tica Tipo 0) – conjuntos recursivamente a enumer´veis est˜o relacionado com a m´quina de a a a Turing, fun¸˜es parciais recursivas e co computabilidade; 2. Linguagem sens´ ao contexto ou LSC ıvel (gram´tica Tipo 1); a 3. Linguagem livre de contexto ou LLC (gram´tica Tipo 2); a 4. Linguagem Regular ou LR (gram´tica Tipo 3). a
  32. 32. 1 ¸˜ INTRODUCAO 32 • Vamos extender as defini¸oes das gram´ticas Tipo 1 c˜ a e 2 para permitir produ¸˜es do tipo S → ε. Isto s´ ´ co oe poss´ se S n˜o aparece em lado direito de ıvel a nenhuma produ¸˜o. Assim, S → ε somente ser´ ca a utilizada para originar a senten¸a vazia; c L(G ) = L(G) {ε} • Para introduzir S → ε em gram´tica que viola a a condi¸˜o anterior, devemos transforma-la em uma ca equivalente que obede¸a a restri¸ao; c c˜ • Gram´ticas equivalentes s˜o aquelas que geram a a a mesma linguagem;
  33. 33. 1 ¸˜ INTRODUCAO 33 • Para transformar incluiremos um novo s´ ımbolo n˜o-terminal (S ) que passar´ a ser o novo s´ a a ımbolo inicial. Em seguida, incluiremos em P todas as regras que tenham o s´ ımbolo S no lado esquerdo, substituindo este por S , e incluindo ainda uma regra S → ε; Ex1: G = ({S, A}, {a}, P, S) com P = {S → aA, A → a|aA}. Obtemos G = ({S, A}, {a}, P , S) com P = {S → aA|ε, A → a|aA};
  34. 34. 1 ¸˜ INTRODUCAO 34 Ex2: G = ({S, A}, {a}, P, S) com P = {S → aA, A → a|aS}. Obtemos G = ({S , S, A}, {a}, P , S ) com P = {S → aA|ε, S → aA, A → a|aS};
  35. 35. 1 ¸˜ INTRODUCAO 35 Exerc´ ıcios: 1. Construa uma gram´tica G tal que: a (a) L(G) = {an bm |n ≥ 0 ∧ m ≥ 1}; (b) L(G) = {ai bj ci |i ≥ 0 ∧ j ≥ 1}. 2. Construa uma gram´tica regular G tal que: a L(G) = {w|w ∈ {0, 1}+ e n˜o tem 1 s consecutivos} a 3. Construa uma gram´tica livre de contexto G tal que: a L(G) = {w|w ∈ {0, 1, 2}+ e todos os zeros sejam consecutivos}
  36. 36. 1 ¸˜ INTRODUCAO 36 4. Seja G definida por: S → aS|bB, B → cB|cC, C → cS|c Pede-se: (a) determine L(G); (b) construa G tal que L(G ) = L(G) {ε}; (c) verifique se as senten¸as abaixo pertencem a L(G): c • abccc; • bccabcc; • abccbbc.
  37. 37. 1 ¸˜ INTRODUCAO 37 5. Construa uma GLC G tal que L(G) seja o conjunto de express˜es aritm´ticas v´lidas. Os terminais s˜o o e a a identificadores (id), parˆnteses (“(” e “)”), e os e operadores +, ∗, e − un´rio. a
  38. 38. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 38 2 Gram´ticas Regulares e a Autˆmato Finito o • O autˆmato finito (AF) ´ uma m´quina abstrata que o e a reconhece linguagens regulares; • Modelo matem´tico com entradas e sa´ a ıdas. Se ´ e fornecido ao AF uma seq¨ˆncia de s´ ue ımbolos como entrada, ele responder´ se esta seq¨ˆncia pertence ` a ue a linguagem ou n˜o; a • O AF pode assumir um n´mero finito de estados; u • Um estado resume os estados anteriores pelos quais passou e os s´ ımbolos que j´ foram lidos na entrada. a
  39. 39. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 39 • Defini¸˜o formal de autˆmato finito ca o Um autˆmato finito M sobre um alfabeto Σ ´ um o e sistema (K, Σ, δ, q0 , F ) onde: K – conjunto finito, n˜o vazio, de estados; a Σ – alfabeto finito de entrada; δ – fun¸ao de transi¸ao de estados, c˜ c˜ δ :K ×Σ {ε} → K ; q0 ∈ K estado inicial; F ⊂ K conjunto de estados finais.
  40. 40. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 40 Fita de entrada 0 1 0 0 1 0 1 Cabeçote Controle Finito δ(q, a) = p para q, p ∈ K e a ∈ Σ, significando que estando no estado q e lendo o s´ımbolo a na fita de entrada podemos mudar para o estado p avan¸ando o c cabe¸ote uma posi¸ao. c c˜
  41. 41. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 41 • Diagrama de Transi¸˜o ca – Outra maneira de representar um autˆmato finito; o – Grafo direcionado e rotulado; – Os v´rtices representam os estados, desenhados e como c´ ırculos; – As arestas representam as transi¸oes entre dois c˜ estados, sendo o r´tulo o s´ o ımbolo reconhecido na entrada; – O estado inicial ´ marcado com uma seta; e – Os estados finais s˜o indicados por c´ a ırculos duplos.
  42. 42. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 42 Ex: a a b q0 @ABC GFED q1 / GFED @ABC q2 / G?= @ABC 89:; FED M = ({q0 , q1 , q2 }, {a, b}, δ, q0 , {q2 }), e δ(q0 , a) = q1 , δ(q1 , a) = q1 , δ(q1 , b) = q2 . Logo, T (M ) = {an b|n ≥ 1}.
  43. 43. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 43 • Tabela de Transi¸ao de Estados c˜ – Uma terceira forma de representar um AF; – Tabela indicando na vertical os estados, e na horizontal os s´ ımbolos do alfabeto. No cruzamento est˜o as transi¸oes poss´ a c˜ ıveis; – O estado inicial ´ indicado por uma seta, e os e estados finais por asteriscos.
  44. 44. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 44 Ex1: δ a b → q0 q1 - q1 q1 q2 *q2 - - Exerc´ ıcio: 1. Descreva formalmente o AF; 2. Desenhe o diagrama de transi¸˜o equivalente. ca
  45. 45. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 45 Ex2: AF que reconhece senten¸as em {0, 1}∗ as quais n˜o c a cont´m dois ou mais 1’s consecutivos. e 0 1 + GFED q0 / GFED k @ABC ?= 89:; q1 @ABC ?= 89:; 0 M = (K, Σ, δ, q0 , F ), K = {q0 , q1 }, Σ = {0, 1}, F = {q0 , q1 }, com δ(q0 , 0) = q0 , δ(q0 , 1) = q1 , δ(q1 , 0) = q0 . Exerc´ ıcio: Apresente a tabela de transi¸ao. c˜
  46. 46. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 46 Tabela: δ 0 1 → ∗q0 q0 q1 *q1 q0 -
  47. 47. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 47 Ex3: Identificadores de linguagens de programa¸˜o ca S → L|LR, R → L|D|LR|DR, L → a|b|c · · · |z, D → 0|1|2| · · · |9 a|b|···|z|0|1|···|9 a|b|···|z q0 GFED @ABC q1 / G?= @ABC 89:; FED Exerc´ ıcios: 1. Inteiros com ou sem sinal; 2. Reais (uma casa ap´s a v´ o ırgula) com sinal opcional.
  48. 48. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 48 a ca ınio K × Σ∗ : • Extens˜o da fun¸˜o δ para o dom´ ˆ 1. δ(q, ε) = q; ˆ ˆ 2. δ(q, ua) = δ(δ(q, u), a) para u ∈ Σ∗ e a ∈ Σ; ˆ • δ(q, u) = p significa que M , iniciando no estado q e tendo a seq¨ˆncia u na fita de entrada, entrar´ no ue a estado p, ap´s o cabe¸ote mover-se para a direita |u| o c c´lulas; e c e ˆ • Uma senten¸a u ´ aceita por M se δ(q0 , u) = p para algum p ∈ F , ou seja: ˆ T (M ) = {u|δ(q0 , u) = p ∧ p ∈ F }; • Qualquer conjunto de senten¸as aceito por um AF ´ c e dito ser regular (linguagem regular ).
  49. 49. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 49 Exemplo: M = (K, Σ, δ, q0 , F ), Σ = {0, 1}, K = {q0 , q1 , q2 , q3 }, F = {q0 }. δ(q0 , 0) = q2 δ(q1 , 0) = q3 δ(q2 , 0) = q0 δ(q3 , 0) = q1 δ(q0 , 1) = q1 δ(q1 , 1) = q0 δ(q2 , 1) = q3 δ(q3 , 1) = q2
  50. 50. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 50 1 + GFED q0 @ABC GFED k ?= 89:; q1 @ABC T 1 T 0 0 0 0 1 + GFED q2 @ABC GFED k q3 @ABC 1
  51. 51. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 51 δ 0 1 → ∗q0 q2 q1 q1 q3 q0 q2 q0 q3 q3 q1 q2 Reconhecimento de 110101: (q0 , 110101) ⇒ (q1 , 10101) ⇒ (q0 , 0101) ⇒ (q2 , 101) ⇒ (q3 , 01) ⇒ (q1 , 1) ⇒ (q0 , ε). Assim, 110101 ∈ T (M ). Reconhecimento de 1011: (q0 , 1011) ⇒ (q1 , 011) ⇒ (q3 , 11) ⇒ (q2 , 1) ⇒ (q3 , ε). Assim, 1011 ∈ T (M ).
  52. 52. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 52 T (M ) = {w|w ∈ {0, 1}∗ e w cont´m um n´mero par de 0 s e 1 s}. e u
  53. 53. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 53 • Autˆmato Finito N˜o-Determin´ o a ıstico (AFND) Um autˆmato finito n˜o-determin´stico ´ um sistema o a ı e (K, Σ, δ, q0 , F ) onde: K conjunto finito, n˜o vazio, de estados; a Σ alfabeto de entrada; δ : K × Σ → Partes(K) fun¸ao de transi¸ao (n˜o c˜ c˜ a determin´ ıstico); q0 ∈ K estado inicial; F ⊂ K conjunto de estados finais.
  54. 54. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 54 • Diferen¸a entre AF e o AFND: δ(q, a) ´ um conjunto c e de estados (possivelmente vazio) ao inv´s de um e unico estado; ´ • Assim, δ(q, a) = {p1 , p2 , . . . , pk } significa que M estando no estado q e tendo a na posi¸˜o do cabe¸ote ca c na fita de entrada, move uma c´lula para a direita e e escolhe qualquer estado entre p1 , p2 , . . . , pk como pr´ximo estado. o
  55. 55. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 55 ınio K × Σ∗ : • Extendendo δ para o dom´ ˆ 1. δ(q, ε) = {q}; ˆ 2. δ(q, ua) = ˆ δ(p, a) para todo u ∈ Σ∗ e p∈δ(q,u) a ∈ Σ; • Uma senten¸a u ´ aceita por M se existe um estado c e ˆ p ∈ F e p ∈ δ(q0 , u); ˆ • T (M ) = {u|p ∈ δ(q0 , u) ∧ p ∈ F }.
  56. 56. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 56 Ex: AFND que aceita o conjunto de todas as senten¸as c bin´rias que cont´m dois 0’s ou 1’s consecutivos. a e 0|1 0 q GFED @ABC 3 q4 / G?= @ABC 89:; FED 0|1 0 }} }} } }}}} q0 e / GFED @ABC ee ee 0|1 ee 1 ee 1 q1 GFED @ABC q2 / G?= @ABC 89:; FED
  57. 57. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 57 M = ({q0 , q1 , q2 , q3 , q4 }, {0, 1}, δ, q0 , {q2 , q4 }) e δ(q0 , 0) = {q0 , q3 } δ(q1 , 0) = ∅ δ(q2 , 0) = {q2 } δ(q3 , 0) = {q4 } δ(q4 , 0) = {q4 } δ(q0 , 1) = {q0 , q1 } δ(q1 , 1) = {q2 } δ(q2 , 1) = {q2 } δ(q3 , 1) = ∅ δ(q4 , 1) = {q4 }
  58. 58. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 58 • Teorema: Se L ´ um conjunto aceito por um AFND, e ent˜o existe um autˆmato finito determin´ a o ıstico (AFD) que aceita L. (Ou seja, o n˜o determinismo n˜o acrescenta nada – a a a n˜o ser praticidade – ao AF). a
  59. 59. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 59 • Seja M = (K, Σ, δ, q0 , F ) um AFND que aceita L. Definimos o AFD M = (K , Σ, δ , q0 , F ) tal que: – Os estados de M s˜o constituidos por todos os a subconjuntos do conjunto de estados de M : K = Partes(K) e K = 2K ; – Nota¸ao: estados de M s˜o [q1 q2 q3 · · · qi ], onde c˜ a q1 , q2 , q3 , . . . , qi ∈ K; – Ex: Se K = {q0 , q1 } ent˜o K = {∅, [q0 ], [q1 ], [q0 q1 ]}; a – F ´ o conjunto de todos os estados de K contendo e um estado de F ; – q0 = [q0 ];
  60. 60. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 60 – Definimos δ ([q1 q2 q3 · · · qi ], a) = [p1 p2 p3 · · · pj ] se e somente se δ({q1 , q2 , . . . , qi }, a) = {p1 , p2 , . . . , pj } = δ(q1 , a) ∪ δ(q2 , a) ∪ · · · ∪ δ(qi , a).
  61. 61. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 61 • Prova: T (M ) = T (M ). Por indu¸˜o sobre o ca tamanho da palavra de entrada w. Devemos mostrar ˆ que δ ([q0 ], w) = [p1 · · · pi ] se e somente se ˆ δ(q0 , w) = {p1 , . . . , pi }. a ˆ 1. Base: |w| = 0, w = ε. Ent˜o, δ ([q0 ], ε) = [q0 ] se e ˆ somente se δ(q0 , ε) = {q0 }, que ´ verdadeiro por e defini¸ao; c˜ 2. Hip´tese: |w| = n, n ≥ 1. o ˆ Supor δ ([q0 ], w) = [p1 · · · pi ] se e somente se ˆ δ(q0 , w) = {p1 , . . . , pi };
  62. 62. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 62 3. Passo: |wa| = n + 1, n ≥ 1: ˆ δ ([q0 ], wa) = [q1 · · · qj ] se e somente se ˆ δ(q0 , wa) = {q1 , . . . , qj } que equivale a dizer que ˆ δ ([p1 · · · pi ], a) = [q1 · · · qj ] se e somente se ˆ δ({p1 , . . . , pi }, a) = {q1 , . . . , qj } que ´ verdade por defini¸ao. e c˜
  63. 63. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 63 Exemplo: Dado o AFND M = ({q0 , q1 }, {0, 1}, δ, q0 , {q1 }) e δ(q0 , 0) = {q0 , q1 } δ(q0 , 1) = {q1 } δ(q1 , 0) = ∅ δ(q1 , 1) = {q0 , q1 } . Construir o AFD M equivalente.
  64. 64. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 64 M = (K , {0, 1}, δ , [q0 ], F ) K = {[q0 ], [q1 ], [q0 q1 ], ∅} F = {[q1 ], [q0 q1 ]} δ(q0 , 0) = {q0 , q1 } ⇒ δ ([q0 ], 0) = [q0 q1 ] δ(q0 , 1) = {q1 } ⇒ δ ([q0 ], 1) = [q1 ] δ(q1 , 0) = ∅ ⇒ δ ([q1 ], 0) = ∅ δ(q1 , 1) = {q0 , q1 } ⇒ δ ([q1 ], 1) = [q0 q1 ]
  65. 65. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 65 δ({q0 , q1 }, 0) = δ(q0 , 0) ∪ δ(q1 , 0) = ⇒ δ ([q0 q1 ], 0) = [q0 q1 ] = {q0 , q1 } ∪ ∅ = {q0 , q1 } δ({q0 , q1 }, 1) = δ(q0 , 1) ∪ δ(q1 , 1) = ⇒ δ ([q0 q1 ], 1) = [q0 q1 ] = {q1 } ∪ {q0 , q1 } = {q0 , q1 }
  66. 66. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 66 Tabela do AFND: δ 0 1 → q0 q0 , q 1 q1 ∗q1 ∅ q0 , q 1 Tabela do AFD equivalente: δ 0 1 → [q0 ] [q0 q1 ] [q1 ] ∗[q1 ] ∅ [q0 q1 ] ∗[q0 q1 ] [q0 q1 ] [q0 q1 ]
  67. 67. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 67 • Rela¸˜o entre AF e GR ca • Teorema: Se G = (N, T, P, S) ´ uma GR (Tipo 3) e ent˜o existe um AF M = (K, T, δ, S, F ) tal que a T (M ) = L(G). • Seja M um AFND: – os estados de M s˜o as vari´veis de G, mais um a a estado adicional A, A ∈ N . Assim, K = N ∪ {A}; – estado inicial de M ´ S; e – se P tem produ¸ao S → ε ent˜o F = {S, A}, caso c˜ a contr´rio F = {A}; a
  68. 68. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 68 – transi¸oes de M : c˜ 1. δ(B, a) = A para cada B → a ∈ P ; 2. δ(B, a) = C para cada B → aC ∈ P ; 3. δ(A, a) = ∅ para todo a ∈ T . • Provar que T (M ) = L(G).
  69. 69. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 69 Exemplo: G = ({S, B}, {0, 1}, P, S), e P : S → 0B, B → 0B|1S|0 Construir um AF que aceite L(G): M = ({S, B, A}, {0, 1}, δ, S, {A}) δ(S, 0) = {B} ⇐ S → 0B δ(S, 1) = ∅ δ(B, 0) = {B, A} ⇐ B → 0B|0 δ(B, 1) = {S} ⇐ B → 1S
  70. 70. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 70 Convertendo para um AFD: M = (K , {0, 1}, δ , [S], F ) K = {∅, [S], [A], [B], [AS], [AB], [BS], [ABS]} F = {[A], [AS], [AB], [ABS]} δ ([S], 0) = [B] δ ([B], 0) = [AB] δ ([S], 1) = ∅ δ ([B], 1) = [S] δ ([AB], 0) = δ(A, 0) ∪ δ(B, 0) = ∅ ∪ {A, B} = [AB] δ ([AB], 1) = δ(A, 1) ∪ δ(B, 1) = ∅ ∪ {S} = [S] δ (∅, 0) = δ (∅, 1) = ∅
  71. 71. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 71 Eliminando os estados inacess´ ıveis: K = {[S], [B], [AB]} F = {[AB]}
  72. 72. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 72 • Teorema: Se M = (K, T, δ, q0 , F ) ´ um AF ent˜o e a existe uma gram´tica do Tipo 3, G = (N, T, P, S), tal a que L(G) = T (M ). • Para obter G: – N = K; – S = q0 ; – Produ¸oes: c˜ 1. B → aC para toda a transi¸˜o δ(B, a) = C; ca 2. B → a para toda a transi¸˜o δ(B, a) = C, ca quando C ∈ F ; – Se ε ∈ T (M ) ent˜o L(G) = T (M ); a
  73. 73. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 73 – Se q0 ∈ F ent˜o ε ∈ T (M ), e L(G) = T (M ) − {ε}. a Neste caso, construir uma L(G ) = L(G) ∪ {ε}; • Provar L(G) = T (M ).
  74. 74. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 74 Exemplo: Contruir G = (K , {0, 1}, P , [S]), K = {[S], [B], [AB]}, a partir de M do exemplo anterior: [S] → 0[B] δ ([S], 0) = [B] [B] → 0[AB] δ ([B], 0) = [AB] [B] → 0 [AB] ∈ F [AB] → 0[AB] δ ([AB], 0) = [AB] [AB] → 0 [AB] ∈ F [B] → 1[S] δ ([B], 1) = [S] [AB] → 1[S] δ ([AB], 1) = [S]
  75. 75. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 75 • Minimiza¸˜o de AF. ca Um AF M ´ m´nimo se: e ı 1. n˜o possui estados inacess´ a ıveis; 2. n˜o possui estados mortos; a 3. n˜o possui estados equivalentes. a
  76. 76. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 76 • Constru¸˜o do AF m´ ca ınimo: 1. retirar de K os estados inacess´veis, ou seja, todo ı estado q ∈ K para o qual n˜o exista senten¸a w tal a c ˆ que δ(q0 , w) = q; 2. retirar de K os estados mortos, ou seja, todo estado que n˜o sendo estado final e que n˜o conduz a a a nenhum estado final durante o reconhecimento; 3. construir todas as poss´ ıveis classes de equivalˆncia e de estados;
  77. 77. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 77 4. construir M = (K , Σ, δ , q0 , F ) conforme segue: – K ´ o conjunto das classes de equivalˆncia e e obtidas; – q0 ´ a classe de equivalˆncia que cont´m q0 ; e e e – F ´ o conjunto de todas as classes de e equivalˆncia que cont´m pelo menos um estado e e de F ; – δ ´ o conjunto de transi¸oes tais que e c˜ δ ([p], a) = [q] para toda a transi¸˜o δ(p1 , a) = q1 , ca onde p1 ∈ [p] e q1 ∈ [q].
  78. 78. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 78 • Constru¸˜o das Classes de Equivalˆncia: ca e Um conjunto de estados q1 , q2 , . . . , qj est´ em uma a mesma classe de equivalˆncia se todas as transi¸˜es e co poss´ ıveis a partir de cada estado conduz o autˆmato o aos estados qi , qi+1 , . . . , qn , estando estes ultimos ´ todos em uma mesma classe de equivalˆncia. e
  79. 79. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 79 • Algoritmo: 1. Criar um estado ∅ para representar as transi¸oes c˜ indefinidas; 2. Dividir K em duas classes de equivalˆncia iniciais, e uma contendo os estados finais e a outra todos os demais estados de K; 3. Dividir sucessivamente as classes obtidas, at´ que e nenhuma nova classe possa ser obtida.
  80. 80. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 80 Exemplo: δ a b → q0 q1 q5 q1 - q2 ∗q2 q3 q2 ∗q3 q3 q3 q4 q4 q1 q5 q5 q5
  81. 81. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 81 Aplicando: 1. estados inacess´ ıveis: q4 ; 2. estado morto: q5 ; δ a b → q0 q1 ∅ q1 ∅ q2 ∗q2 q3 q2 ∗q3 q3 q3 ∅ ∅ ∅
  82. 82. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 82 3. classes de equivalˆncia: e {q2 , q3 } {q0 , q1 , ∅} tt tt tt tt t {q0 , ∅} {q1 } t ttt ttt tt {q0 } {∅} {q2 , q3 } {q0 } {∅} {q1 } [0] [1] [2] [3]
  83. 83. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 83 4. autˆmato sem classes de equivalˆncia: o e δ a b ∗[0] [0] [0] → [1] [3] [2] [2] [2] [2] [3] [2] [0]
  84. 84. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 84 5. AF m´ ınimo: δ a b ∗[0] [0] [0] → [1] [3] - [3] - [0]
  85. 85. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 85 Exerc´ ıcios: 1. Minimize o seguinte AF: a + GFED q0 GFED k @ABC q1 @ABC a b b q2 e GFED @ABC ?= 89:; q3 GFED @ABC ?= 89:; e e } } eea} b } a }e b }}}} eee ~ q4 2 GFED @ABC ?= 89:; q5 / GFED @ABC b a
  86. 86. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 86 2. Minimize o seguinte AF: q0 GFED @ABC a q1 e GFED @ABC } ee b }}} eea }} ee } ee }} ~ b b 2 q2 f GFED o @ABC q GFED @ABC ?= 89:; 3 l a b a }} }} } }} a }} q4 GFED @ABC ?= 89:;
  87. 87. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 87 • Express˜es Regulares – s˜o esquemas para o a representar linguagens regulares; • Sintaxe: 1. Todos os s´ ımbolos do alfabeto s˜o ER; a 2. Se R1 e R2 s˜o ER, ent˜o (R1 |R2 ) ´ uma ER a a e (uni˜o); a 3. Se R1 e R2 s˜o ER, ent˜o (R1 R2 ) ´ uma ER a a e (concatena¸ao); c˜ 4. Se R1 ´ ER, ent˜o (R1 )∗ ´ uma ER (repeti¸ao). e a e c˜ + Observa¸oes: R1 = R1 (R1 )∗ e R1 = R1 |ε. c˜ ?
  88. 88. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 88 • Exemplos: – (a)∗ = a∗ = {ε, a, aa, aaa, . . .}; – a+ = {a, aa, aaa, . . .}; – (a|b)∗ = {ε, a, b, aa, ab, ba, bb, aaa, . . .}; – a|b∗ = {ε, a, b, bb, bbb, . . .}; – a(a|b)∗ = {a, aa, ab, aaa, aab, aba, abb, aaaa, . . .}; – (a(a|b))∗ = {ε, aa, ab, aaaa, abaa, aaab, . . .}; – Identificadores: l(l|d)∗ = {l, ll, ld, lll, . . .}; – Inteiro com sinal: (+|−)d+ ; – Inteiro com/sem sinal: ((+|−)d+ )|d+ .
  89. 89. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 89 • Bombeamento para Linguagens Regulares (Pumping Lemma) – serve para provar que uma dada linguagem ´ regular; e • Para provar que sim: AF, GR, ER; • Para provar que n˜o: bombeamento; a • Prova por redu¸˜o ao absurdo; ca • Seja M = (K, Σ, δ, q0 , F ) e K = n; • Considere uma entrada w tal que |w| ≥ n;
  90. 90. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 90 • Assim, o caminho no diagrama de transi¸oes deve c˜ passar por um conjunto de estados Q ⊂ K mais de uma vez (la¸o); c q0 HIJK Q qi GFED /o /o /o / ONML /o /o /o / GFED @ABC @ABC ?= 89:;
  91. 91. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 91 • Lema: Seja L uma linguagem regular. Ent˜o, existe a uma constante n tal que se z ´ uma palavra de L, e e |z| ≥ n, nos podemos dizer que z = uvw de tal forma que |uv| ≤ n, |v| ≥ 1 e, para todo i ≥ 0, uv i w est´ a em L.
  92. 92. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 92 • Aplica¸˜o do bombeamento (aplicado como um ca “jogo” contra um “advers´rio”): a 1. Selecione uma linguagem L que desejamos provar que n˜o ´ regular; a e 2. O “advers´rio” escolhe um n, a constante do Lema. a Uma vez escolhido o n ele n˜o pode muda-lo; a 3. Selecione uma string z ∈ L. Sua escolha depende do n escolhido no passo anterior; 4. O “advers´rio” quebra z nas partes u,v, e w, tal a que |uv| ≤ n e |v| ≥ 1; 5. Vocˆ encontra a contradi¸ao mostrando que para e c˜ qualquer u, v, e w escolhido pelo “advers´rio”, a existe um i para o qual uv i w n˜o est´ em L. a a
  93. 93. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 93 n2 • Ex: L = {a |n ≥ 1} n˜o ´ regular. a e 2 Solu¸˜o: Suponha z = an , z ∈ L e L ´ regular. Seja ca e z = uvw, onde 1 ≤ |v| ≤ n e uv i w ∈ L para todo i. Em particular, seja i = 2. Ent˜o, a n2 |uv 2 w| ≤ n2 + n, j´ que |uv 2 w| = |uvw| + |v|, a |uvw| = n2 . Logo, n2 |uv 2 w| ≤ n2 + n (n + 1)2 . Ou seja, o tamanho de uv 2 w fica entre n2 e (n + 1)2 e n˜o pode ser um quadrado perfeito. Assim, uv 2 w ∈ L a e L n˜o ´ regular. a e
  94. 94. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 94 • Exerc´ ıcio: Prove por bombeamento que L = {an bn |n ≥ 0} n˜o ´ regular. a e
  95. 95. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 95 Solu¸˜o: Suponha z = an bn , z ∈ L e L ´ regular. ca e Escolho uv = an , w = bn . Observe que uv i w ∈ L para i 1, j´ que, neste caso, teriamos am bn para m n. a Logo, por redu¸˜o ao absurdo, L n˜o ´ regular. ca a e
  96. 96. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 96 • AF com Sa´ (Moore e Mealy) – n˜o se restringe a ıda a aceita/rejeita, produz uma string de sa´ ıda; • M´quina de Mealy – sa´ associada `s transi¸˜es; a ıda a co M = (K, Σ, δ, q0 , F, ∆) Onde: K conjunto finito de estados; Σ alfabeto finito de entrada; δ : K × Σ → K × ∆∗ fun¸ao de transi¸ao; c˜ c˜ q0 ∈ K estado inicial; F ⊂ K conjunto de estados finais; ∆ alfabeto finito de sa´ ıda;
  97. 97. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 97 • δ(q, a) = (p, w), com p, q ∈ K, a ∈ Σ, e w ∈ ∆∗ , significa que o AF, estando no estado q e tendo a na fita de entrada, muda para o estado p e escreve a string w na fita de sa´ıda.
  98. 98. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 98 Exemplo: Seja Σ = {x} e ∆ = {a, b}. M ´ uma e m´quina de Mealy que reconhece uma palavra a w,|w| ≥ 1, tal que w = x+ e produz uma seq¨ˆncia ue v = (ab)+ , em que |v| = 2|w|. Solu¸˜o: ca q0 @ABC GFED q1 / G?= @ABC 89:; FED l (x,ab) (x,ab) Observa¸ao: arestas s˜o rotuladas com um par (x, y), c˜ a onde x ´ o s´ e ımbolo lido e y ´ a string produzida na e sa´ ıda.
  99. 99. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 99 • M´quina de Moore – sa´ associada aos estados; a ıda M = (K, Σ, δ, q0 , F, ∆, δS ) Onde: K conjunto finito de estados; Σ alfabeto finito de entrada; δ : K × Σ → K fun¸ao de transi¸ao; c˜ c˜ q0 ∈ K estado inicial; F ⊂ K conjunto de estados finais; ∆ alfabeto finito de sa´ ıda; δS : K → ∆∗ fun¸ao (total) de sa´ c˜ ıda;
  100. 100. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 100 Exemplo: o mesmo anterior (xxx · · · x ⇒ ababab · · · ab). Solu¸˜o: ca x @ABC GFED q0 ,a / GFED @ABC ?= 89:; q1 ,b / ONML HIJK @ABC GFED q2 ,ab x x Observa¸ao: os v´rtices s˜o rotulados com um par c˜ e a (x, y), onde x ´ o nome do estado e y ´ a sa´ e e ıda produzida pelo estado.
  101. 101. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 101 • Equivalˆncia das M´quinas de Moore e Mealy e a – Excetuando-se a string vazia, os dois modelos de m´quina s˜o equivalentes; a a – A m´quina de Moore sempre gera pelo menos a a palavra associada ao estado inicial, n˜o podendo a assim gerar a senten¸a vazia; c – Prova de equivalˆncia por simula¸ao m´tua (exceto e c˜ u a senten¸a vazia); c
  102. 102. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 102 – Teorema: A m´quina de Mealy simula a m´quina a a de Moore. Prova: Suponha MO = (K, Σ, δMO , q0 , F, ∆, δS ) uma m´quina de Moore. Seja: a ME = (K ∪ {qe }, Σ, δME , qe , F, ∆) uma m´quina de Mealy, onde δME ´ definido como a e segue: 1. δME (qe , a) = (δMO (q0 , a), δS (q0 )δS (δMO (q0 , a))); 2. δME (q, a) = (δMO (q, a), δS (δMO (q, a))).
  103. 103. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 103 a1 ONML HIJK q0 ,u0 / ONML HIJK q1 ,u1 V a0 qe e GFED @ABC ee ee(a1 ,u0 u1 ) (a0 ,u0 u0 ) ee ee q0 GFED @ABC q1 / GFED @ABC T (a1 ,u1 ) (a0 ,u0 )
  104. 104. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 104 – Observe que o estado qe introduzido ´ referenciado e apenas na primeira transi¸ao executada. Seu c˜ objetivo ´ garantir a gera¸ao da sa´ referente ao e c˜ ıda estado inicial q0 de MO; – Provar por indu¸ao. c˜
  105. 105. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 105 – Teorema: A m´quina de Moore simula a m´quina a a de Mealy;
  106. 106. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 106 Exerc´ ıcios: 1. Construa um AF M que aceite: (a) todas as senten¸as em {0, 1}+ que apresentem c cada “1” seguido imediatamente de dois zeros; (b) todas as senten¸as em {a, b}∗ de modo que todo c “a” apare¸a entre dois “b”; c (c) todas as senten¸as de {a, b}+ de modo que o c ultimo s´ ´ ımbolo seja “b” e o n´mero de s´ u ımbolos “a” seja par. 2. Construa a gram´tica regular equivalente a cada um a dos autˆmatos do exerc´ anterior. o ıcio
  107. 107. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 107 3. Defina a express˜o regular que representa valores a “redondos” em reais (Ex: R$1,00 ou R$200,00 ou R$1.000.000,00 ou R$3.000,00).
  108. 108. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 108 4. Seja a seguinte gram´tica regular: a S → 0S|1S|0A|0C|1B A → 0A|0 B → 1B|1 C → 0A|0 Pede-se: (a) o AFND M tal que T (M ) = L(G); (b) o AFD M tal que T (M ) = T (M ); (c) M tal que T (M ) = T (M ) e M seja m´ ınimo.
  109. 109. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 109 5. Seja G definida por: S → aB|aD B → bB|bC C → cC|cD D → d E → aB|a Pede-se: (a) o AF M tal que T (M ) = L(G); (b) Determine T (M ); (c) Minimize M .
  110. 110. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 110 6. Seja T (M ) = {abn cm d|0 ≤ n ≤ 2 ∧ m ≥ 1}. Pede-se: (a) construa M ; (b) construa G tal que L(G) = T (M ). 7. Construa o AF e a gram´tica regular equivalentes a a cada uma das ER a seguir: (a) a(b|ca)d∗ (a|b)+ ; (b) (a(b|ca)∗ (b|c)a∗ )+ .
  111. 111. 2 ´ ˆ GRAMATICAS REGULARES E AUTOMATO FINITO 111 8. Projete uma m´quina de Moore que recebendo um a valor em reais (ex: R$10.000,00) converta para d´lares (suponha rela¸ao 1-1 entre dolar e real – logo, o c˜ US$10,000.00). 9. O mesmo que o exerc´ anterior, usando m´quina ıcio a de Mealy.
  112. 112. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 112 3 Gram´tica Livre de Contexto e a Autˆmato de Pilha o • As GLC tem grande importˆncia pois atrav´s delas a e podemos definir a maioria das estruturas de linguagens de programa¸ao; c˜ • As linguagens livres de contexto representam um conjunto mais amplo de linguagens que o das linguagens regulares; • O autˆmato de pilha (PDA) ´ um autˆmato mais o e o “poderoso” que o AF; • AF PDA (PDA simula AF e AF n˜o simula PDA); a
  113. 113. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 113 • Exten¸˜o da defini¸˜o de GLC para permitir ca ca produ¸˜es na forma A → ε (chamadas ε-produ¸˜es); co co • Nova defini¸˜o: P = {A → β|A ∈ N ∧ β ∈ (N ∪ T )∗ }; ca • Uma GLC ´ ε-livre quando n˜o possui ε-produ¸oes e a c˜ ou quando possui apenas S → ε, onde S ´ o s´ e ımbolo inicial da gram´tica, e S n˜o aparece do lado direito a a de nenhuma regra de produ¸ao; c˜
  114. 114. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 114 ´ • Arvores de Deriva¸˜o para GLC’s – s˜o ca a representa¸oes gr´ficas para as deriva¸oes da GLC c˜ a c˜ (formam uma estrutura hier´rquica); a
  115. 115. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 115 • Seja G = (N, T, P, S) uma GLC. Uma ´rvore ´ uma a e a ´rvore de deriva¸˜o para G se: ca 1. todo nodo tem um r´tulo que ´ um s´ o e ımbolo de V ; 2. o r´tulo da raiz ´ S; o e 3. se um nodo A tem um ou mais descendentes, ent˜o a A ´ um elemento de N ; e 4. se A1 , A2 , . . . , An s˜o descendentes diretos de A, da a esquerda para a direita, ent˜o a A → A1 A2 · · · An ∈ P ; 5. se D ´ a unica sub-´rvore da raiz e tem r´tulo ε, e ´ a o ent˜o S → ε ∈ P . a
  116. 116. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 116 • Exemplo: G = ({S, A}, {a, b}, P, S), P = {S → a|aAS, A → SbA|SS|ba}. Deriva¸˜o: ca S ⇒ aAS ⇒ aSbAS ⇒ aabAS ⇒ aabbaS ⇒ aabbaa. ´ Arvore de deriva¸˜o: ca Sd   d dd  dd  d a Ac Sb  cc b bb  cc bb  cc bb  S b Ab a  bb  bb  bb  b a b a
  117. 117. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 117 • Profundidade da ´rvore de deriva¸˜o ´ o a ca e comprimento do maior caminho entre a raiz e um nodo terminal. No exemplo anterior ´ 3; e • Limite de uma ´rvore de deriva¸˜o ´ a seq¨ˆncia a ca e ue formada pela concatena¸˜o, da esquerda para a ca direita, das folhas da ´rvore de deriva¸˜o; a ca
  118. 118. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 118 • Deriva¸ao mais ` esquerda e mais ` direita – a ´rvore c˜ a a a de deriva¸˜o ignora varia¸oes na ordem em que os ca c˜ s´ ımbolos s˜o substituidos na deriva¸˜o. Assim, a ca G = ({E}, {+, ∗, (, ), −, id}, P, E) P = {E → E + E|E ∗ E|(E)| − E|id} tomando a senten¸a −(id + id) podemos deriva-la das c duas seguintes formas: 1. E ⇒ −E ⇒ −(E) ⇒ −(E + E) ⇒ −(id + E) ⇒ −(id + id); 2. E ⇒ −E ⇒ −(E) ⇒ −(E + E) ⇒ −(E + id) ⇒ −(id + id);
  119. 119. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 119 Ambas correspondem a mesma ´rvore de deriva¸˜o: a ca Ed ~ dd ~~~ dd ~~ dd ~ − Ec  cc  cc  cc  c ( Ec )  cc  cc  cc  c E + E id id
  120. 120. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 120 • Deriva¸ao mais ` esquerda: s´ c˜ a ımbolo substituido ´ e sempre o n˜o-terminal mais ` esquerda na forma a a sentencial; • Deriva¸ao mais ` direita: s´ c˜ a ımbolo substituido ´ e sempre o n˜o-terminal mais ` direita na forma a a sentencial; • Nas duas deriva¸oes mostradas a pouco, a primeira ´ c˜ e mais ` esquerda e a segunda mais ` direita; a a
  121. 121. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 121 • Exemplo: id + id ∗ id Deriva¸ao mais ` esquerda: E ⇒ E + E ⇒ id + E ⇒ c˜ a id + E ∗ E ⇒ id + id ∗ E ⇒ id + id ∗ id Deriva¸ao mais ` direita: E ⇒ E + E ⇒ c˜ a E + E ∗ E ⇒ E + E ∗ id ⇒ E + id ∗ id ⇒ id + id ∗ id Observa¸ao: se w ∈ L(G) e G ´ uma GLC, ent˜o w c˜ e a tem pelo menos uma ´rvore de deriva¸ao e, a c˜ correspondendo a esta ´rvore existe uma s´ deriva¸˜o a o ca mais ` esquerda e uma s´ deriva¸ao mais ` direita. a o c˜ a
  122. 122. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 122 • Uma GLC ´ amb´gua se para a mesma senten¸a e ı c existe mais de uma ´rvore de deriva¸˜o; a ca Exemplo: id + id ∗ id Ea E Ñ aa Ñ aaa ÑÑ aa ÑÑ Ñ aa ÑÑ aa ÑÑ aa ÑÑ Ñ E + Ea Ea ∗ E Ñ aa Ñ aa ÑÑ aa ÑÑ aa ÑÑ aa ÑÑ aa ÑÑ ÑÑ id E ∗ E E + E id id id id id
  123. 123. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 123 • Uma linguagem inerentemente amb´gua ´ aquele em ı e que todas as GLC que a geram s˜o amb´ a ıguas. Exemplo: L = {an bn cm dm |n ≥ 1 ∧ m ≥ 1} {an bm cm dn |n ≥ 1 ∧ m ≥ 1}
  124. 124. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 124 Representada pela seguinte gram´tica: a G = ({S, X, Y, Z, W }, {a, b, c, d}, P, S) S → XY |Z X → ab|aXb Y → cd|cXd Z → aW d|aZd W → bc|bW c
  125. 125. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 125 Exemplo de deriva¸ao: abcd c˜ SV S Ö VV ÖÖÖ VV ÖÖ VV Ö X YU ZV ÖÖ UU ÖÖ VV ÖÖ UU ÖÖ VV UU VV ÖÖÖ ÖÖÖ a b c d a WV d ÖÖ VV Ö VV ÖÖ VV ÖÖ b c
  126. 126. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 126 • Transforma¸oes de GLC – tem o objetivo de c˜ simplifica¸˜o e prepara¸˜o para aplica¸˜es ca ca co posteriores. Observa¸˜o: a gram´tica transformada ca a deve ser equivalente ` original. a
  127. 127. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 127 • Elimina¸˜o de s´ ca ımbolos in´teis u Um s´ımbolo ´ in´til se ele n˜o aparece na deriva¸ao e u a c˜ de nenhuma senten¸a. c est´ril n˜o gera nenhuma seq¨ˆncia de terminais e a ue pertencente a uma senten¸a; c inalcan¸´vel n˜o aparece em nenhuma forma ca a sentencial da gram´tica. a
  128. 128. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 128 • Determina¸˜o do conjunto de s´ ca ımbolos f´rteis: e 1. Construir o conjunto N0 = ∅ e fazer i = 1; 2. Repetir (a) Ni = {A|A → α ∈ P ∧ α ∈ (Ni−1 ∪ T )∗ }; (b) i = i + 1; at´ que Ni = Ni−1 ; e 3. Ni ´ o conjunto de s´ e ımbolos f´rteis. e • Observa¸ao: se o s´ c˜ ımbolo inicial n˜o fizer parte dos a s´ ımbolos f´rteis, ent˜o a linguagem gerada pela e a gram´tica ´ vazia. a e
  129. 129. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 129 • Exemplo: G = ({S, A, B, C, D}, {a, b, c, d}, P, S), P = {S → aA, A → a|bB, B → b|dD, C → cC|c, D → dD}. Solu¸˜o: ca 1. N0 = ∅; 2. N1 = {A, B, C}; 3. N2 = {S, A, B, C}; 4. N3 = {S, A, B, C} = N2 . Conjunto dos s´ ımbolos f´rteis: {S, A, B, C}. e Gram´tica simplificada: a G = ({S, A, B, C}, {a, b, c}, P , S), P = {S → aA, A → a|bB, B → b, C → cC|c}.
  130. 130. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 130 • Determina¸˜o do conjunto de s´ ca ımbolos alcan¸aveis: c´ 1. Construir o conjunto V0 = {S} (S=s´ ımbolo inicial) e fazer i = 1; 2. Repetir (a) Vi = {X|∃A → αXβ ∈ P ∧ A ∈ Vi−1 ∧ α, β ∈ (N ∪ T )∗ ∧ X ∈ V } Vi−1 ; (b) i = i + 1; at´ que Vi = Vi−1 ; e 3. Vi ´ o conjunto de s´ e ımbolos alcan¸´veis. ca
  131. 131. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 131 • Exemplo: G do exemplo anterior. G = ({S, A, B, C}, {a, b, c}, P , S), P = {S → aA, A → a|bB, B → b, C → cC|c}. Solu¸˜o: ca 1. V0 = {S}; 2. V1 = {a, A} V0 = {S, a, A}; 3. V2 = {a, b, B} V1 = {S, a, A, b, B}; 4. V3 = {b} V2 = {S, a, A, b, B} = V2 . Conjunto de s´ ımbolos alcan¸aveis: {S, A, B, a, b}. c´ Gram´tica simplificada: a G = ({S, A, B}, {a, b}, P , S), P = {S → aA, A → a|bB, B → b}.
  132. 132. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 132 • Transforma¸ao de GLC qualquer em GLC ε-livre: c˜ 1. Reunir em um conjunto os n˜o-terminais que a derivam direta ou indiretamente a senten¸a vazia: c Ne = {A|A ∈ N ∧ A ⇒+ ε}; 2. Construir o conjunto de regras P como segue: (a) incluir em P todas as regras de P , com excess˜o a daquelas da forma A → ε; (b) para cada ocorrˆncia de um s´ e ımbolo Ne do lado direito de alguma regra de P , incluir em P mais uma regra, substituindo este s´ ımbolo por ε. Isto ´, para cada regra de P tipo A → αBβ, B ∈ Ne e e α, β ∈ V ∗ , incluir em P a regra A → αβ;
  133. 133. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 133 3. Se S ∈ Ne , adicionar a P as regras S → S e S → ε, incluindo este novo n˜o-terminal S em a N = N ∪ {S }. Caso contr´rio, trocar os nomes de a S por S e de N por N ; 4. A nova gram´tica ser´ definida por: a a G = (N , T, P , S ).
  134. 134. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 134 • Exemplos: 1. P : S → aB, B → bB|ε. Solu¸˜o: Ne = {B} e ca P : S → aB|a, B → bB|b; 2. P : S → bDCe, D → dD|ε, C → cC|ε. Solu¸ao: c˜ Ne = {D, C} e P : S → bDCe|bCe|bDe|be, D → dD|d, C → cC|c; 3. P : S → aS|ε. Solu¸˜o: Ne = {S} e ca P : S → S|ε, S → aS|a.
  135. 135. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 135 • Remo¸˜o de Produ¸˜es Simples – produ¸˜es simples ca co co s˜o produ¸˜es na forma A → B, onde A, B ∈ N : a co 1. Transformar a GLC em GLC ε-livre, se necess´rio; a 2. Para todo n˜o-terminal de N , construir um a conjunto com os n˜o-terminais que ele pode derivar a em zero ou mais passos. Isto ´, ∀A ∈ N , construir e NA = {B|A ⇒∗ B}; 3. Se B → α ∈ P e n˜o ´ produ¸˜o simples, adicione a a e ca P as produ¸oes A → α para todo A tal que c˜ B ∈ NA ; 4. a GLC equivalente sem produ¸oes simples ´ c˜ e G = (N, T, P , S).
  136. 136. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 136 • Exemplos: 1. P : S → bS|A, A → aA|a. Solu¸˜o: NS = {S, A}, ca NA = {A}, e P : S → bS|aA|a, A → aA|a; 2. P : S → aSb|A, A → aA|B, B → bBc|bc. Solu¸˜o: ca NS = {S, A, B}, NA = {A, B}, NB = {B}, e P : S → aSb|aA|bBc|bc, A → aA|bBc|bc, B → bBc|bc.
  137. 137. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 137 • Fatora¸ao de GLC c˜ Uma GLC est´ fatorada se ela ´ determin´ a e ıstica, isto ´, n˜o possui produ¸˜es cujo lado direito inicie com o e a co mesmo conjunto de s´ımbolos ou com s´ ımbolos que gerem seq¨ˆncias que iniciem com o mesmo conjunto ue de s´ ımbolos. Por exemplo, uma gram´tica fatorada a n˜o poderia apresentar as seguintes regras: a A → aB|aC , pois ambas inicial com o terminal a. Outro exemplo de gram´tica n˜o-fatorada ´: a a e S → A|B A → ac B → ab .
  138. 138. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 138 • Para fatorar: 1. as produ¸˜es que apresentam n˜o-determinismo co a direto, da forma A → αβ|αγ ser˜o substituidas por a A → αA A → β|γ sendo A um novo n˜o-terminal; a 2. o n˜o-determinismo indireto ´ retirado fazendo, nas a e regras de produ¸ao, as deriva¸˜es necess´rias para c˜ co a torna-lo um n˜o-determinismo direto, resolvido com a o passo anterior.
  139. 139. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 139 Exemplos: 1. P : S → aA|aB, A → aA|a, B → b. Solu¸ao: c˜ P : S → aS , S → A|B, A → aA , A → A|ε, B → b; 2. P : S → Ab|ab|baA, A → aab|b. Solu¸ao: c˜ (n˜o-determinismo indireto) a P : S → aabb|bb|ab|baA, A → aab|b e P : S → aS |bS , S → abb|b, S → b|aA, A → aab|b.
  140. 140. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 140 • Fatora¸ao ´ importante pois na implementa¸˜o de c˜ e ca um compilador, o mesmo deve seguir uma gram´tica a que n˜o apresente n˜o-determinismo pois, caso a a contr´rio, no processo de reconhecimento haveria a “retornos” (backtracking) que acabam reduzindo a eficiˆncia do algoritmo de reconhecimento. e
  141. 141. 3 ´ ˆ GRAMATICA LIVRE DE CONTEXTO E AUTOMATO DE PILHA 141 • Teorema: Toda LLC sem ε pode ser definida por uma gram´tica que n˜o cont´m s´ a a e ımbolos in´teis, u ε-produ¸˜es, nem produ¸˜es simples. co co • Prova: Conseq¨ˆncia dos algoritmos apresentados. ue

×