Prévia do material em texto
Cap´ıtulo 3: Autoˆmatos de Pilha Newton Jose´ Vieira Departamento de Cieˆncia da Computac¸a˜o Universidade Federal de Minas Gerais 16 de setembro de 2010 Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Suma´rio 1 Uma Introduc¸a˜o Informal Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Suma´rio 1 Uma Introduc¸a˜o Informal 2 Autoˆmatos de Pilha Determin´ısticos Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Suma´rio 1 Uma Introduc¸a˜o Informal 2 Autoˆmatos de Pilha Determin´ısticos 3 Autoˆmatos de Pilha Na˜o Determin´ısticos Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Suma´rio 1 Uma Introduc¸a˜o Informal 2 Autoˆmatos de Pilha Determin´ısticos 3 Autoˆmatos de Pilha Na˜o Determin´ısticos 4 Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Linguagens na˜o regulares Exemplo de linguagem na˜o regular muito comum: Linguagem que conte´m expresso˜es aritme´ticas, como: (nt1+t2)+t3) · · ·+tn+1) em que n ≥ 1, cada ti e´ uma subexpressa˜o, e o nu´mero de (s e´ igual ao de )s. Intuitivamente, um AF na˜o pode “lembrar” que leu n ocorreˆncias de certo s´ımbolo, para n arbitra´rio. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Arquitetuta de um autoˆmato de pilha a1 a2 · · · ai · · · an � � fita de leitura apenas, unidirecional @� controle + δ � @ @ � e registrador com estado atual � @ @ � b1 topo da pilha b2 ... bn Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Transic¸a˜o de um AP Sejam: E : conjunto de estados; Σ: alfabeto de entrada; Γ: alfabeto de pilha; Cada transic¸a˜o do AP e´ da forma δ(e, a, b) = [e ′, z ] e, e ′ ∈ E , a ∈ Σ ∪ {λ}, b ∈ Γ ∪ {λ} e z ∈ Γ∗. Essa transic¸a˜o em um diagrama de estados: � � � �e - a, b/z � � � �e ′ Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Um exemplo de AP Conjunto EA das expresso˜es aritme´ticas: a) t ∈ EA; b) se x , y ∈ EA, enta˜o (x) ∈ EA, x+y ∈ EA e x−y ∈ EA. - � � � �ap -t, λ/λ � � � � � � � fpff +, λ/λ;−, λ/λ �� ? (, λ/X �� ? ), X/λ Alfabetos: Σ = {t, (, ),+,−}; Γ = {X}; Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Computac¸a˜o de um AP Pilha: uma palavra de Γ∗. Pilha vazia: λ. Configurac¸a˜o instantaˆnea: [e, y , p], sendo p a pilha. Computac¸a˜o do AP quando a palavra de entrada e´ (t-(t+t)): [ap, (t− (t+ t)), λ] ⊢ [ap, t− (t+ t)),X ] ⊢ [fp,−(t+ t)),X ] ⊢ [ap, (t+ t)),X ] ⊢ [ap, t+ t)),XX ] ⊢ [fp,+t)),XX ] ⊢ [ap, t)),XX ] ⊢ [fp, )),XX ] ⊢ [fp, ),X ] ⊢ [fp, λ, λ]. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Outros exemplos/condic¸o˜es para reconhecimento [ap, t), λ] ⊢ [fp, ), λ]. =⇒ o AP para sem consumir toda a palavra de entrada. [ap, (t, λ] ⊢ [ap, t, X] ⊢ [fp, λ, X]. =⇒ o AP para em estado final com pilha na˜o vazia. Para uma palavra ser reconhecida: ela deve ser totalmente consumida; a ma´quina deve terminar em um estado final; a deve estar pilha vazia. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Um exemplo estranho Seja o AP com Σ = {1} e com o diagrama de estados: - � � � � � � � 0 �� ff λ, λ/X Para toda palavra em {1}+, o AP na˜o para. Em particular: [0, 1, λ] ⊢ [0, 1,X ] ⊢ [0, 1,XX ] . . . Perguntas: para λ, o AP para ou na˜o? λ e´ reconhecida ou na˜o? Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Transic¸o˜es compat´ıveis Transic¸o˜es compat´ıveis Seja δ : E × (Σ ∪ {λ})× (Γ ∪ {λ})→ E × Γ∗. As transic¸o˜es δ(e, a, b) e δ(e, a′, b′) sa˜o compat´ıveis se, e somente se (a = a′ ou a = λ ou a′ = λ) e (b = b′ ou b = λ ou b′ = λ). Ou ainda: δ(e, a, b) e δ(e, a′, b′) sa˜o incompat´ıveis se, e somente se: (a 6= a′ e a 6= λ e a′ 6= λ) ou (b 6= b′ e b 6= λ e b′ 6= λ). Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto O que e´ AP determin´ıstico Autoˆmato de pilha determin´ıstico Um autoˆmato de pilha determin´ıstico (APD) e´ uma seˆxtupla (E ,Σ, Γ, δ, i ,F ), em que E e´ um conjunto finito de um ou mais estados; Σ e´ o alfabeto de entrada; Γ e´ o alfabeto de pilha; δ e´ uma func¸a˜o parcial de E × (Σ ∪ {λ})× (Γ ∪ {λ}) para E × Γ∗, sem transic¸o˜es compat´ıveis; i ⊆ E e´ o estado inicial; F ⊆ E e´ o conjunto de estados finais. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto A linguagem reconhecida por um APD Seja um APD M = (E ,Σ, Γ, δ, i ,F ). Enta˜o: ∀e, e ′ ∈ E , a ∈ Σ ∪ {λ}, b ∈ Γ ∪ {λ}, x ∈ Γ∗: ∀y ∈ Σ∗, z ∈ Γ∗[e, ay , bz ] ⊢ [e ′, y , xz ]↔ δ(e, a, b) = [e ′, x ]. ∗ ⊢ e´ o fecho reflexivo e transitivo de ⊢. Linguagem reconhecida por um APD Seja M = (E ,Σ, Γ, δ, i ,F ). A linguagem reconhecida por M e´: L(M) = {w ∈ Σ∗ | [i ,w , λ] ∗ ⊢ [e, λ, λ] para algum e ∈ F}. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Exemplo {anbn | n ∈ N} e´ reconhecida por ({a, b}, {a, b}, {X}, δ, a, {a, b}), em que δ e´ dada por: 1. δ(a, a, λ) = [a, X]; 2. δ(a, b, X) = [b, λ]; 3. δ(b, b, X) = [b, λ]. Diagrama de estados: - � � � � � � � a �� ? a, λ/X -b, X/λ � � � � � � � b �� ? b, X/λ Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Outro exemplo APD que reconhece {w ∈ {0, 1}∗ | o nu´mero de 0s em w e´ igual ao de 1s}: - � � � � � � � igual -1, λ/UF 0, λ/ZF ff λ, F/λ � � � �dif �� ff 0, U/λ 0, Z/ZZ 1, U/UU 1, Z/λ =⇒ Este APD utiliza uma te´cnica para verificar se a pilha chegou ao fundo. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Mais um exemplo APD que reconhece {0m1n# |m ≥ n}: - � � � �0s �� ? 0, λ/X -1, X/λ � � � �1s �� ? 1, X/λ @ @ @ @@R #, λ/λ � � � �� #, λ/λ � � � �f � � � ��6 λ, X/λ {0m1n |m ≥ n} na˜opode ser reconhecida por APD! Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Algoritmo para APD Entrada: (1) o APD, dado por i , F e D, e (2) a palavra de entrada, dada por prox . Sa´ıda: sim ou na˜o. e ← i ; empilhe(▽); ps ← prox(); enquanto D[e, a, b] e´ definido p/ a ∈ {ps, λ} e b ∈ {topo(), λ} fac¸a seja D[e, a, b] = [e′, z]; se a 6= λ enta˜o ps ← prox() fimenta˜o; se b 6= λ enta˜o desempilhe() fimenta˜o; empilhe(z); e ← e′ fimenquanto; se ps = fs e topo() = ▽ e e ∈ F enta˜o retorne sim sena˜o retorne na˜o fimse Esse “algoritmo” pode entrar em loop!Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto O que e´ AP na˜o determin´ıstico Autoˆmato de pilha na˜o determin´ıstico Um autoˆmato de pilha na˜o determin´ıstico (APN) e´ uma seˆxtupla (E ,Σ, Γ, δ, I ,F ), em que E , Σ, Γ e F sa˜o como em APDs; δ e´ uma func¸a˜o parcial de E × (Σ ∪ {λ})× (Γ ∪ {λ}) para D, sendo D constitu´ıdo dos subconjuntos finitos de E × Γ∗; I ⊆ E e´ o conjunto de estados iniciais. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto A linguagem reconhecida por um APN Linguagem reconhecida por um APN Seja um APN M = (E ,Σ, Γ, δ, I ,F ). A linguagem reconhecida por M e´: L(M) = {w ∈ Σ∗ | [i ,w , λ] ∗ ⊢ [e, λ, λ] para algum i ∈ I e e ∈ F}. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Exemplo de APN APD que reconhece {w ∈ {0, 1}∗ | o nu´mero de 0s em w e´ igual ao de 1s}: - � � � � � � � �� ? 0, U/λ 0, λ/Z; ��6 1, Z/λ 1, λ/U; Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Exemplo na˜o trata´vel por APD APN que reconhece a linguagem {w ∈ {0, 1}∗ |w = wR}: - � � � �1 - λ, λ/λ; 0, λ/λ; 1, λ/λ � � � �2 � � � �� ? 1, λ/1 0, λ/0; �� ? 1, 1/λ 0, 0/λ; Em uma computac¸a˜o de sucesso para w : se |w | for par, sera´ percorrida a transic¸a˜o de 1 para 2 sob λ; se |w | for ı´mpar e o s´ımbolo do meio for a, sera´ percorrida a transic¸a˜o de 1 para 2 sob a. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Reconhecimento por estado final Reconhecimento por estado final Seja um APN M = (E ,Σ, Γ, δ, I ,F ). A linguagem reconhecida por M por estado final e´: LF (M) = {w ∈ Σ ∗ | [i ,w , λ] ∗ ⊢ [e, λ, y ] para i ∈ I , e ∈ F e y ∈ Γ∗}. Exemplo: APNs para L = {0m1n |m ≥ n}: - � � � � � � � a �� ? 0, λ/X -1, X/λ λ, X/λ � � � � � � � b �� ? 1, X/λ λ, X/λ Aceitac¸a˜o por pilha vazia e estado final. - � � � � � � � a �� ? 0, λ/X -1, X/λ � � � � � � � b �� ? 1, X/λ Aceitac¸a˜o por estado final Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Reconhecimento por pilha vazia Reconhecimento por pilha vazia Seja um APN M = (E ,Σ, Γ, δ, I ). A linguagem reconhecida por M por pilha vazia e´: LV (M) = {w ∈ Σ ∗ | [i ,w , λ] ∗ ⊢ [e, λ, λ] para algum i ∈ I e e ∈ E}. Exemplo: APN para {0m1n |m ≤ n}, rec. por pilha vazia: - � � � �a �� ? 0, λ/X -1, X/λ 1, λ/λ � � � �b �� ? 1, X/λ 1, λ/λ Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Equivaleˆncia de me´todos de reconhecimento Seja L uma linguagem. As seguinte afirmativas sa˜o equivalentes: a) L pode ser reconhecida por pilha vazia e estado final. b) L pode ser reconhecida por estado final. c) L ∪ {λ} pode ser reconhecida por pilha vazia. (a)→ (b): - � � � �i ′ �� ��* HHHHj λ, λ/F λ, λ/F � � � �i1 ... � � � �im M � � � �f1 ... � � � �fn HHHHj �� ��* � � � �g � � � λ, F/λ λ, F/λ Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Equivaleˆncia de me´todos de reconhecimento Seja L uma linguagem. As seguinte afirmativas sa˜o equivalentes: a) L pode ser reconhecida por pilha vazia e estado final. b) L pode ser reconhecida por estado final. c) L ∪ {λ} pode ser reconhecida por pilha vazia. (b)→ (c) - � � � �i ′ �� ��* HHHHj λ, λ/F λ, λ/F � � � �i1 ... � � � �im M � � � �f1 ... � � � �fn PPPPPPq �� �� ��1 � � � �g λ, λ/λ λ, λ/λ �� ? λ,X/λ ∀X ∈ Γ -λ, F/λ � � � �h Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Equivaleˆncia de me´todos de reconhecimento Seja L uma linguagem. As seguinte afirmativas sa˜o equivalentes: a) L pode ser reconhecida por pilha vazia e estado final. b) L pode ser reconhecida por estado final. c) L ∪ {λ} pode ser reconhecida por pilha vazia. (c)→ (a) Se M = (E ,Σ, Γ, δ, I ), enta˜o M ′ = (E ,Σ, Γ, δ, I ,E ). Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Grama´tica em notac¸a˜o BNF 〈programa〉 → 〈declarac¸o˜es〉 ; 〈lista-de-cmds〉 . ... 〈lista-de-cmds〉 → 〈comando〉 ; 〈lista-de-cmds〉 | λ 〈comando〉 → 〈cmd-enquanto〉 | 〈cmd-se〉 | 〈cmd-atribuic¸a˜o〉 | · · · Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Grama´tica em notac¸a˜o BNF (cont.) 〈cmd-enquanto〉 → enquanto 〈exp-lo´gica〉 fac¸a 〈lista-de-cmds〉 fimenquanto 〈cmd-se〉 → se 〈exp-lo´gica〉 enta˜o 〈lista-de-cmds〉 〈senaoses〉 〈senao〉 fimse 〈senaoses〉 → sena˜ose 〈exp-lo´gica〉 enta˜o 〈lista-de-cmds〉 〈senaoses〉 | λ 〈senao〉 → sena˜o 〈lista-de-cmds〉 | λ 〈cmd-atribuic¸a˜o〉 → 〈varia´vel〉 ← 〈expressa˜o〉 Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha O que e´ grama´tica livre do contexto Grama´tica livre do contexto Uma grama´tica livre do contexto (GLC) e´ uma grama´tica (V ,Σ,R ,P), em que cada regra tem a forma X → w , em que X ∈ V e w ∈ (V ∪ Σ)∗. Exemplo: {0n1n | n ∈ N} e´gerada por G = ({P}, {0, 1},R ,P), em que R consta das duas regras: P → 0P1 |λ Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Mais exemplos de GLCs GLC que gera {w ∈ {0, 1}∗ |w = wR}: G = ({P}, {0, 1},R ,P), tendo R as 5 regras: P → 0P0 | 1P1 | 0 | 1 |λ GLC que gera {w ∈ {0, 1}∗ |w tem um nu´mero igual de 0s e 1s}: ({P}, {0, 1},R ,P), tendo R as 3 regras: P → 0P1P | 1P0P |λ Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha GLC para expresso˜es aritme´ticas ({E ,T ,F}, {t,+, ∗, (, )},R ,E ), em que R consta de: E → E+T |T T → T∗F |F F → (E ) | t Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha O que e´ linguagem livre do contexto Linguagem livre do contexto Uma linguagem e´ dita ser uma linguagem livre do contexto se existe uma grama´tica livre do contexto que a gera. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha O conceito de a´rvore de derivac¸a˜o A´rvore de derivac¸a˜o Seja G = (V ,Σ,R ,P). Def. recursiva de a´rvore de derivac¸a˜o (AD): a) uma a´rvore com apenas o ve´rtice de ro´tulo P e´ uma AD; b) se X ∈ V e´ ro´tulo de uma folha f de uma AD, enta˜o: i. se X → λ ∈ R , enta˜o a a´rvore obtida acrescentando-se mais um ve´rtice v com ro´tulo λ e uma aresta {f , v} e´ uma AD; ii. se X → x1x2 . . . xn ∈ R , onde x1, x2, . . . , xn ∈ V ∪ Σ, enta˜o a a´rvore obtida acrescentando-se mais n ve´rtices v1, v2, . . . , vn com ro´tulos x1, x2, . . . , xn, nessa ordem, e n arestas {f , v1}, {f , v2}, . . . , {f , vn}, e´ uma AD. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo de construc¸a˜o de uma AD para t*(t+t) E → E+T |T T → T∗F |F F → (E ) | t A derivac¸a˜o E⇒ T (regra E → T ) leva a` AD: � � � E � � � T Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo de construc¸a˜o de uma AD (cont.) A derivac¸a˜o evolue para: E⇒ T (regra E → T ) ⇒ T∗F (regra T → T∗F ) e a AD correspondente para: � � � E � � � T � � �� @ @ @@� � � T � � � * � � � F Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo de construc¸a˜o de uma AD (cont.) Tem-se duas opc¸o˜es para continuar a derivac¸a˜o: E⇒ T (regra E → T ) ⇒ T∗F (regra T → T∗F ) ⇒ F∗F (regra T → F ) ou enta˜o: E⇒ T (regra E → T ) ⇒ T∗F (regra T → T∗F ) ⇒ T∗(E ) (regra F → (E )). Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo de construc¸a˜o de uma AD (cont.) As duas opc¸o˜es: � � � E � � � T � � �� @ @ @@� � � T � � � * � � � F � � � F � � � E � � � T � � �� @ @ @@� � � T � � � * � � � F � � �� @ @ @@� � � ( � � � E � � � ) Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo de construc¸a˜o de uma AD/conclusa˜o =⇒ Apo´s uma derivac¸a˜o de 11 passos tem-se uma AD para t ∗ (t+ t). Observac¸o˜es: Nu´mero de passos da derivac¸a˜o: nu´mero de ve´rtices internos de X . A estrutura da AD e´ normalmente utilizada para associar significado. Mais de uma AD para w ⇒ mais de um significado para w . Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Ambiguidade Grama´tica amb´ıgua Uma GLC e´ denominada amb´ıgua quando existe mais de uma AD para alguma sentenc¸a que ela gera. Exemplo: GLC amb´ıgua para expresso˜es aritme´ticas: E → E +E |E ∗E | (E ) | t Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Demonstrando ambiguidade E → E +E |E ∗E | (E ) | t Duas ADs para t+t*t � � � E � � �� @ @ @@� � � E � � � + � � � E � � � t � � �� @ @ @@� � � E � � � * � � � E � � � t � � � t � � � E � � �� @ @ @@� � � E � � � * � � � E � � � t � � �� @ @ @@� � � E � � � + � � � E � � � t � � � t Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Derivac¸o˜es mais a` esquerda e mais a` direita Derivac¸a˜o mais a` esquerda Uma derivac¸a˜o e´ dita mais a` esquerda (DME) se em cada passo e´ expandida a varia´vel mais a` esquerda. Derivac¸a˜o mais a` direita Uma derivac¸a˜o e´ dita mais a` direita (DMD) se em cada passo e´ expandida a varia´vel mais a` direita. =⇒ Existe uma u´nica DME e uma u´nica DMD correspondentes a uma AD e vice-versa. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatosde Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Ambiguidade e DME e DMD Como existe uma u´nica DME e uma u´nica DMD correspondentes a uma AD e vice-versa: uma GLC e´ amb´ıgua se, e somente se, existe mais de uma DME para alguma sentenc¸a que ela gere; uma GLC e´ amb´ıgua se, e somente se, existe mais de uma DMD para alguma sentenc¸a que ela gere. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Linguagens inerentemente amb´ıguas Linguagem inerentemente amb´ıgua: LLC para a qual existem apenas grama´ticas amb´ıguas. Exemplo: {ambnck |m = n ou n = k}. A detecc¸a˜o e remoc¸a˜o de ambiguidade em GLCs e´ muito importante. O problema de determinar se uma GLC e´ amb´ıgua e´ indecid´ıvel. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Varia´veis inu´teis Varia´vel u´til Seja uma GLC G = (V ,Σ,R ,P). Uma varia´vel X ∈ V e´ dita ser u´til se, e somente se, existem u, v ∈ (V ∪ Σ)∗ e w ∈ Σ∗ tais que: P ∗ ⇒ uXv ∗ ⇒ w . Exemplo: Seja a GLC: P → AB | a B → b C → c Que varia´veis sa˜o inu´teis? Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo de varia´veis inu´teis P → AB | a B → b C → c C e´ inu´til: na˜o existem u e v tais que P ∗ ⇒ uCv ; A e´ inu´til: na˜o existe w ∈ Σ∗ tal que A ∗ ⇒ w ; B e´ inu´til: P ∗ ⇒ uBv apenas para u = A e v = λ, e na˜o existe w ∈ Σ∗ tal que AB ∗ ⇒ w . GLC equivalente sem s´ımbolos inu´teis: P → a. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Eliminac¸a˜o de varia´veis inu´teis Seja G = (V ,Σ,R ,P) tal que L(G ) 6= ∅. Construc¸a˜o de uma GLC G ′′ equivalente a G , sem varia´veis inu´teis: a) Obtenha G ′ = (V ′,Σ,R ′,P), em que: V ′ = {X ∈ V |X ∗ ⇒G w para algum w ∈ Σ ∗}, e R ′ = {r ∈ R | r na˜o conte´m s´ımbolo de V − V ′}. b) Obtenha G ′′ = (V ′′,Σ,R ′′,P), em que: V ′′ = {X ∈ V ′ |P ∗ ⇒G ′ uXv para algum u, v ∈ (V ′ ∪ Σ)∗}, e R ′′ = {r ∈ R ′ | r na˜o conte´m s´ımbolo de V ′ − V ′′}. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Determinando varia´veis que produzem sentenc¸as Algoritmo que determina {X ∈ V |X ∗ ⇒ w para algum w ∈ Σ∗}: Entrada: uma GLC G = (V ,Σ,R ,P). Sa´ıda: I1 = {X ∈ V | X ∗ ⇒ w para algum w ∈ Σ∗}. I1 ← ∅; repita N ← {X 6∈ I1 | X → z ∈ R e z ∈ (I1 ∪ Σ) ∗}; I1 ← I1 ∪N ate´ N = ∅; retorne I1. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Determinando varia´veis alcanc¸a´veis a partir de P Algoritmo que determina {X ∈ V |P ∗ ⇒ uXv para algum u, v ∈ (V ∪ Σ)∗}: Entrada: uma GLC G = (V ,Σ,R ,P). Sa´ıda: I2 = {X ∈ V | P ∗ ⇒ uXv para algum u, v ∈ (V ∪ Σ)∗}. I2 ← ∅; N ← {P}; repita I2 ← I2 ∪N ; N ← {Y 6∈ I2 | X → uYv para algum X ∈ N e u, v ∈ (V ∪ Σ) ∗} ate´ N = ∅; retorne I2. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo/eliminac¸a˜o de varia´veis inu´teis A → ABC |AEF | BD B → B0 | 0 C → 0C |EB D → 1D | 1 E → BE F → 1F1 | 1 V ′ = {B ,D,F ,A} ⇒ A → BD B → B0 | 0 D → 1D | 1 F → 1F1 | 1 V ′′ = {A,B ,D} ⇒ A → BD B → B0 | 0 D → 1D | 1 Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Eliminac¸a˜o de uma regra Seja uma GLC G = (V ,Σ,R ,P). Seja X → w ∈ R , X 6= P . Seja a GLC G ′ = (V ,Σ,R ′,P) em que R ′ e´ obtido assim: 1 para cada regra de R em que X na˜o ocorre do lado direito, exceto X → w , coloque-a em R ′; 2 para cada regra de R da forma Y → x1Xx2X . . .Xxn+1, com pelo menos uma ocorreˆncia de X do lado direito, com n ≥ 1 e xi ∈ [(V − {X}) ∪ Σ] ∗, coloque em R ′ todas as regras da forma Y → x1γ1x2γ2 . . . γnxn+1, sendo que cada γj pode ser X ou w , com excec¸a˜o da regra X → w . G ′ e´ equivalente a G . Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo/eliminac¸a˜o de uma regra GLC G : P → ABA A → aA | a B → bBc |λ GLC G ′ obtida eliminando-se a regra A→ a: P → ABA |ABa | aBA | aBa A → aA | aa B → bBc |λ Como sa˜o as derivac¸o˜es de aa em G e em G ′? Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha O conceito de varia´veis anula´veis Varia´vel anula´vel Uma varia´vel X e´ anula´vel em uma GLC G se, e somente se, X ∗ ⇒G λ. Algoritmo que determina o conjunto das varia´veis anula´veis de uma GLC: Entrada: uma GLC G = (V ,Σ,R,P); Sa´ıda: {X ∈ V | X ∗ ⇒ λ}. A ← ∅; repita N ← {Y 6∈ A | Y → z ∈ R e z ∈ A∗}; A ← A∪N ate´ N = ∅; retorne A. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Eliminac¸a˜o de regras λ Seja G = (V ,Σ,R ,P). Seja G ′ = (V ,Σ,R ′,P) em que R ′ e´ obtido assim: 1 para cada regra de R cujo lado direito na˜o conte´m varia´vel anula´vel, exceto regra λ, coloque-a em R ′; 2 para cada regra de R da forma Y → x1X1x2X2 . . .Xnxn+1, sendo cada Xi uma varia´vel anula´vel, com n ≥ 1 e cada xisem varia´veis anula´veis, coloque em R ′ todas as regras da forma Y → x1γ1x2γ2 . . . γnxn+1, em que cada γj pode ser Xj ou λ, com excec¸a˜o de regra λ; 3 se P for anula´vel, coloque P → λ em R ′. L(G ′) = L(G ) e sua u´nica regra λ, se houver, e´ P → λ. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo/eliminac¸a˜o de regras λ Seja G : P → APB |C A → AaaA |λ B → BBb |C C → cC |λ Varia´veis anula´veis de G : {A,C ,P ,B}. G ′: P → APB |AP |AB |PB |A |B |C |λ A → AaaA | aaA |Aaa | aa B → BBb |Bb | b |C C → cC | c Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha O conceito de varia´veis encadeadas Varia´vel encadeada Seja uma grama´tica G = (V ,Σ,R ,P). Diz-se que uma varia´vel Z ∈ V e´ encadeada a uma varia´vel X ∈ V se Z = X ou se existe uma sequ¨eˆncia de regras X → Y1, Y1 → Y2, . . . , Yn → Z em R , n ≥ 0; no caso em que n = 0, tem-se apenas a regra X → Z . Ao conjunto de todas as varia´veis encadeadas a X e´ dado o nome de enc(X ). Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Algoritmo para determinar varia´veis encadeadas Algoritmo que determina enc(X ): Entrada: (1) uma GLC G = (V ,Σ,R,P), e (2) uma varia´vel X ∈ V . Sa´ıda: enc(X ). U ← ∅; N ← {X}; repita U ← U ∪N ; N ← {Y 6∈ U |Z → Y ∈ R para algum Z ∈ N} ate´ N = ∅ retorne U . Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Eliminando regras unita´rias Uma GLC equivalente a G = (V ,Σ,R ,P), sem regras unita´rias, e´ G ′ = (V ,Σ,R ′,P), em que R ′ = {X → w | existe Y ∈ enc(X ) tal que Y → w ∈ R e w 6∈ V }. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo/eliminac¸a˜o de regras unita´rias GLC para expresso˜es aritme´ticas: E → E+T |T T → T∗F |F F → (E ) | t Os conjuntos enc(X ) para cada varia´vel X sa˜o: enc(E ) = {E ,T ,F}; enc(T ) = {T ,F}; enc(F ) = {F}. GLC equivalente, sem regras unita´rias: E → E+T |T∗F | (E ) | t T → T∗F | (E ) | t F → (E ) | t Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Interac¸a˜o entre os me´todos de eliminac¸a˜o a) Ao se eliminar regras λ podem aparecer regras unita´rias. Exemplo: GLC com as regras A→ BC e B → λ. b) Ao se eliminar regras unita´rias podem aparecer regras λ. Exemplo: GLC com P → λ, sendo P e´ o s´ımbolo de partida, e a regra A→ P . c) Ao se eliminar regras λ podem aparecer varia´veis inu´teis. Exemplo: o do item (a), caso B → λ seja a u´nica regra B . d) Ao se eliminar regras unita´rias podem aparecer varia´veis inu´teis. Exemplo: GLC que conte´m A→ B e B na˜o aparece do lado direito de nenhuma outra regra (B torna-se inu´til). Ao se eliminar varia´veis inu´teis, na˜o podem aparecer novas regras. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Garantido consisteˆncia das eliminac¸o˜es A seguinte sequeˆncia de eliminac¸o˜es para G = (V ,Σ,R ,P): 1 adicionar a regra P ′ → P , se P for recursivo; 2 eliminar regras λ; 3 eliminar regras unita´rias; 4 eliminar s´ımbolos inu´teis. produz uma GLC equivalente cujas regras sa˜o das formas: P → λ se λ ∈ L(G ); X → a para a ∈ Σ; X → w para |w | ≥ 2. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Grama´tica na forma normal de Chomsky Forma normal de Chomsky Uma GLC G = (V ,Σ,R ,P) esta´ na forma normal de Chomsky (FNC) se cada uma de suas regras tem uma das formas: P → λ se λ ∈ L(G ); X → YZ para Y ,Z ∈ V; X → a para a ∈ Σ. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Transformac¸a˜o para a forma normal de Chomsky Seja uma GLC G . Obter uma GLC equivalente a G tal que: P → λ se λ ∈ L(G ); X → a para a ∈ Σ; X → w para |w | ≥ 2. Mais dois passos: 1 Modificar cada regra X → w , |w | ≥ 2, de forma que ela fique contendo apenas varia´veis. 2 Substituir cada regra X → Y1Y2 . . .Yn, n ≥ 3, em que cada Yi e´ uma varia´vel, pelo conjunto das regras: X → Y1Z1, Z1 → Y2Z2, . . . , Zn−2 → Yn−1Yn, em que Z1, Z2, . . . , Zn−2 sa˜o varia´veis novas. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo/obtenc¸a˜o de grama´tica na FNC Seja a GLC G : L → (S) S → SE |λ E → a | L Apo´s a eliminac¸a˜o de regras λ: L → (S) | () S → SE |E E → a | L Como enc(L) = {L}, enc(S) = {S ,E , L} e enc(E ) = {E , L}: L → (S) | () S → SE | a | (S) | () E → a | (S) | () Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo/obtenc¸a˜o de grama´tica na FNC(cont.) L → (S) | () S → SE | a | (S) | () E → a | (S) | () Finalmente: L → AX |AB S → SE | a |AX |AB E → a |AX |AB X → SB A → ( B → ) Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Eliminac¸a˜ode regras recursivas a` esquerda Sejam as regras, a seguir, todas as regras X de uma GLC G : X → Xy1 |Xy2 | . . . |Xyn |w1 |w2 | . . . |wk em que nenhum wi comec¸a com X . Utilizando recursa˜o a` direita, em vez de recursa˜o a` esquerda: X → w1Z |w2Z | . . . |wkZ Z → y1Z | y2Z | . . . | ynZ |λ em que Z e´ uma varia´vel nova. Eliminado-se a regra λ: X → w1Z |w2Z | . . . |wkZ |w1 |w2 | . . . |wk Z → y1Z | y2Z | . . . | ynZ | y1 | y2 | . . . | yn Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo/eliminac¸a˜o de regras recursivas a` esquerda G : E → E+E |E∗E | (E ) | t Retirando-se recursa˜o a` esquerda: E → (E )Z | tZ Z → +EZ | ∗EZ |λ Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo/eliminac¸a˜o de varia´vel em regra Seja G = (V ,Σ,R ,P) tal que X → uYv ∈ R , Y ∈ V e Y 6= X . Sejam Y→ w1|w2| . . . |wn todas as regras Y em R . R pode ser substitu´ıda por (R − {X → uYv}) ∪ {X → uw1v | uw2v | . . . | uwnv}. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Grama´tica na forma normal de Greibach Forma normal de Greibach Uma GLC G = (V ,Σ,R ,P) esta´ na forma normal de Greibach (FNG) se cada uma de suas regras tem uma das formas: P → λ se λ ∈ L(G ); X → ay para a ∈ Σ e y ∈ V ∗. Uma forma sentencial de uma grama´tica na FNG, com excec¸a˜o de λ, e´ da forma xy , em que x ∈ Σ+ e y ∈ V ∗. Qual o tamanho de uma derivac¸a˜o de uma palavra? Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Transformac¸a˜o para a forma normal de Greibach Seja uma GLC G . Obter uma GLC equivalente a G tal que: P → λ se λ ∈ L(G ); X → a para a ∈ Σ; X → w para |w | ≥ 2. Em seguida: Para cada X → w para |w | ≥ 2, substituir por varia´veis todos os terminais de w , a partir de seu segundo s´ımbolo. Com isso, obteˆm-se regras da forma X → Yy , sendo que Y ∈ V ∪ Σ e y ∈ V+. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Transformac¸a˜o para a FNG (cont.) Numerar sequencialmente as varia´veis (#P = 1). Para cada A ∈ V , comec¸ando com P , na ordem dada pela numerac¸a˜o, fazer enquanto poss´ıvel: 1 Se existe A→ By , para |y | ≥ 1, tal que #A > #B , substituir B . 2 Se existe A→ Ay , para |y | ≥ 1, eliminar a recursa˜o a` esquerda. Seja B a varia´vel de maior nu´mero em que ha´ regra da forma B → Cy , com C ∈ V . Substituir C . Repetir ate´ ser atingida a varia´vel P . Para regras da forma Z → Ay , em que Z e´ varia´vel nova criada eliminando-se recursa˜o a` esquerda, substituir A. Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo/transformac¸a˜o para a FNG G : A → CB B → BBD | b C → BBC |Dc D → AD | d Elimina-se C → Dc e introduz-se C → DE e E → c. Numerac¸a˜o: #A = 1, #B = 2, #C = 3, #D = 4 e #E = 5. A → CB ∗ B → b | bZ1 C → BBC |DE D → AD | d E → c ∗ Z1 → BD |BDZ1 Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo/transformac¸a˜o para a FNG (cont.) Substituindo-se a regra C → BBC (#C > #B): A → CB B → b | bZ1 * C → bBC | bZ1BC C → DE D → AD | d E → c Z1 → BD |BDZ1 Substituindo-se a regra D → AD (#D > #A): A → CB B → b | bZ1 C → bBC | bZ1BC |DE * D → CBD D → d E → c Z1 → BD |BDZ1 Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo/transformac¸a˜o para a FNG (cont.) Substituindo-se a regra D → CBD (#D > #C ): A → CB B → b | bZ1 C → bBC | bZ1BC |DE * D → bBCBD | bZ1BCBD |DEBD D → d E → c Z1 → BD |BDZ1 Eliminando-se a recursa˜o a` esquerda para as regras D: A → CB B → b | bZ1 C → bBC | bZ1BC |DE * D → bBCBD | bZ1BCBD | d | bBCBDZ2 | bZ1BCBDZ2 | dZ2 E → c Z1 → BD |BDZ1 * Z2 → EBD |EBDZ2 Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo/transformac¸a˜o para a FNG (cont.) Substituindo-se C → DE : A → CB B → b | bZ1 C → bBC | bZ1BC * C → bBCBDE | bZ1BCBDE | dE | bBCBDZ2E | bZ1BCBDZ2E | dZ2E D → bBCBD | bZ1BCBD | d | bBCBDZ2 | bZ1BCBDZ2 | dZ2 E → c Z1 → BD |BDZ1 Z2 → EBD |EBDZ2 Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo/transformac¸a˜o para a FNG (cont.) Substituindo-se A→ CB : * A → bBCB | bZ1BCB | bBCBDEB | bZ1BCBDEB | dEB | bBCBDZ2EB | bZ1BCBDZ2EB | dZ2EB B → b | bZ1 C → bBC | bZ1BC | bBCBDE | bZ1BCBDE | dE | bBCBDZ2E | bZ1BCBDZ2E | dZ2E D → bBCBD | bZ1BCBD | d | bBCBDZ2 | bZ1BCBDZ2 | dZ2 E → c Z1 → BD |BDZ1 Z2 → EBD |EBDZ2 Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Exemplo/transformac¸a˜o para a FNG (cont.) Finalmente, substitui-se as regras introduzidas por eliminac¸a˜o de recursa˜o a` esquerda: A → bBCB | bZ1BCB | bBCBDEB | bZ1BCBDEB | dEB | bBCBDZ2EB | bZ1BCBDZ2EB | dZ2EB B → b | bZ1 C → bBC | bZ1BC | bBCBDE | bZ1BCBDE | dE | bBCBDZ2E | bZ1BCBDZ2E | dZ2E D → bBCBD | bZ1BCBD | d | bBCBDZ2 | bZ1BCBDZ2 | dZ2 E → c * Z1 → bD | bZ1D | bDZ1 | bZ1DZ1 * Z2 → cBD | cBDZ2 Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatosde Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Obtenc¸a˜o de AP a partir de GLC Seja G ′ = (V ,Σ,R ,P) uma GLC na FNG equivalente a G . APN que aceita L(G ′): - � � � �i -λ, λ/P � � � � � � � f ��ff λ,P/λ, se P → λ ∈ Ra,X/y , se X → ay ∈ R Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Obtenc¸a˜o de AP a partir de GLC/Exemplo Seja G = ({P}, {0, 1},R ,P), em que R consta das regras: P → 0P1P | 1P0P |λ Uma GLC equivalente na FNG: P → 0PUP | 1PZP |λ Z → 0 U → 1 Um AP que reconhece L(G ): - � � � �i -λ, λ/P � � � � � � � f ��ff λ, P/λ 0, P/PUP 1, P/PZP 0, Z/λ 1, U/λ Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Obtenc¸a˜o de GLC a partir de AP A ide´ia: Seja um APN M = (E ,Σ, Γ, δ, I ,F ). Dados e, e ′ ∈ E e X ∈ Γ ∪ {λ}: C (e,X , e ′) = {w ∈ Σ∗ | [e,w ,X ] ∗ ⊢ [e ′, λ, λ]}. Enta˜o: L(M) = ⋃ (i ,f )∈I×F C (i , λ, f ). Obtenc¸a˜o da GLC: 1 Criar regras P → [i , λ, f ], para cada i ∈ I e f ∈ F . 2 Criar regras para varia´veis [e,X , e ′], de tal forma que de [e,X , e ′] se gere o conjunto C (e,X , e ′). Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha Uma Introduc¸a˜o Informal Autoˆmatos de Pilha Determin´ısticos Autoˆmatos de Pilha Na˜o Determin´ısticos Grama´ticas Livres do Contexto Definic¸a˜o e exemplos Derivac¸o˜es e ambiguidade Manipulac¸a˜o de grama´ticas e formas normais GLCs e autoˆmatos de pilha Obtenc¸a˜o de GLC a partir de AP/Exemplo Seja o APD: - � � � � � � � 0 �� ? a, λ/X -c, λ/λ � � � � � � � 1 �� ? b, X/λ Primeiras regras: P → [0, λ, 0] | [0, λ, 1] Regras [0, λ, 0]: [0, λ, 0] → λ [0, λ, 0] → a[0, X, 0] [0, λ, 0] → c[1, λ, 0] As varia´veis [0, X, 0] e [1, λ, 0] sa˜o inu´teis! Como sa˜o as outras regras? Newton Jose´ Vieira Cap´ıtulo 3: Autoˆmatos de Pilha