UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Transformação de AP para GLC Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa
Prof. Yandre Maldonado - 2 A técnica que será apresentada tende a criar um número elevado de símbolos não-terminais e produções; Com isso, sua aplicação manual fica restrita a APs bastante simples; A aplicação da técnica de eliminação de símbolos inúteis tende a melhorar o resultado obtido.
Seja o AP P = Σ, Γ, S, S 0, δ, B Prof. Yandre Maldonado - 3 Define-se a GLC correspondente G = V, T, P, S, onde: V = {Z} {A st A Γ s, t S} T = Σ S = Z e P...
Prof. Yandre Maldonado - 4 Inicialmente cria-se regras: Z B S 0t t S Em seguida, adiciona-se regras: A sr a r, s S, A Γ, a (Σ {λ}), r, λ δ (s, a, A) E finalmente, adiciona-se as regras: A sq aa 1 rt 1A2 t 1 t 2...Am t m-1q A Γ, a (Σ {λ}), r, A 1 A 2...A m δ (s, a, A), s, q, r, t 1,..., t m-1 S
Exemplo 1: Considere o AP: Prof. Yandre Maldonado - 5 P= {a, b}, {A, B}, {Q, R}, Q, δ, B onde δ é: δ(q, a, B) = { Q, A } δ(q, a, A) = { Q, AA } δ(q, b, A) = { R, λ } δ(r, b, A) = { R, λ } <a,b>/a <a,a>/aa Q <b,a>/ λ L(P) = {a n b n n>0} R <b,a>/ λ
Prof. Yandre Maldonado - 6 A gramática formada seria G = V, T, P, S onde: V = {Z, A QQ, A QR, A RQ, A RR, B QQ, B QR, B RQ, B RR } 1 T = {a, b} S = Z e P... 1 A tamanho de V é dado por 1 + Γ * S 2
Prof. Yandre Maldonado - 7 Inicialmente cria-se as regras: Z B QQ Z B QR A função de transição δ(q, b, A) = { R, λ } dá origem à regra: A QR b A função de transição δ(r, b, A) = { R, λ } dá origem à regra: A RR b
A função de transição δ(q, a, B) = { Q, A } dá origem às regras: B QQ aa QQ B QR aa QR Prof. Yandre Maldonado - 8
Prof. Yandre Maldonado - 9 A função de transição δ(q, a, A) = { Q, AA } dá origem às regras: A QQ aa QQ A QQ A QQ aa QR A RQ A QR aa QQ A QR A QR aa QR A RR
Prof. Yandre Maldonado - 10 Gramática resultante: Z B QQ B QR A QR b aa QQ A QR aa QR A RR A RR b B QQ aa QQ B QR aa QR A QQ aa QQ A QQ A QQ aa QR A RQ Re-nomeando os não-terminais: Z = S B QQ = A B QR = B A QR = C A QQ = D A RR = E A RQ = F
Prof. Yandre Maldonado - 11 Gramática resultante: S A B C b adc ace E b A ad B ac D add D acf Eliminando símbolos inúteis. Símbolos que geram terminais: {C, E, B, S}
Prof. Yandre Maldonado - 12 Gramática resultante: S B C b ace E b B ac Eliminando símbolos inúteis. Todos os não-terminais são alcançáveis a partir de S.
Gramática resultante: S ac C b acb Prof. Yandre Maldonado - 13 Eliminada a produção unitária. L(G) = {a n b n n>0}
Exemplo 2: Considere o AP: Prof. Yandre Maldonado - 14 P= {0, 1}, {B, U, V}, {S, R}, S, δ, B onde δ é: δ(s, λ, B) = { S, λ } δ(s, 0, B) = { S, UV } δ(s, 0, U) = { S, UVU } δ(s, 1, U) = { R, λ } δ(r, 1, U) = { R, λ } δ(r, 1, Z) = { R, λ } δ(r, λ, Z) = { R, λ }
Exemplo 2: <1,U>/ λ S R Prof. Yandre Maldonado - 15 < λ,b>/ λ <0,B>/UV <0,U>/UVU L(P) = {0 n 1 m n m 2n} <1,V>/ λ <1,U>/ λ < λ,v>/ λ
Prof. Yandre Maldonado - 16 A gramática formada seria G = V, T, P, S onde: V = {Z, B SS, B SR, B RS, B RR, U SS, U SR, U RS, U RR, V SS, V SR, V RS, V RR } 1 T = {0, 1} S = Z e P... 1 A tamanho de V é dado por 1 + Γ * S 2
Prof. Yandre Maldonado - 17 Inicialmente cria-se as regras: Z B SS Z B SR A função de transição δ(s, λ, B) = { S, λ } dá origem à regra: B SS λ A função de transição δ(r, λ, V) = { R, λ } dá origem à regra: V RR λ
Prof. Yandre Maldonado - 18 A função de transição δ(s, 1, U) = { R, λ } dá origem à regra: U SR 1 A função de transição δ(r, 1, V) = { R, λ } dá origem à regra: V RR 1 A função de transição δ(r, 1, U) = { R, λ } dá origem à regra: U RR 1
Prof. Yandre Maldonado - 19 A função de transição δ(s, 0, B) = { S, UV } dá origem às regras: B SR 0U S_ V _R B SR 0U S_ V _R B SS 0U S_ V _S B SS 0U S_ V _S
Prof. Yandre Maldonado - 20 A função de transição δ(s, 0, B) = { S, UV } dá origem às regras: B SR 0U SS V SR B SR 0U SR V RR B SS 0U SS V SS B SS 0U SR V RS
Prof. Yandre Maldonado - 21 A função de transição δ(s, 0, U) = { S, UVU } dá origem às regras (parte 1): U SR 0U S_ V U _R U SR 0U S_ V U _R U SR 0U S_ V U _R U SR 0U S_ V U _R
Prof. Yandre Maldonado - 22 A função de transição δ(s, 0, U) = { S, UVU } dá origem às regras (parte 1): U SR 0U SS V SS U SR U SR 0U SS V SR U RR U SR 0U SR V RS U SR U SR 0U SR V RR U RR
Prof. Yandre Maldonado - 23 A função de transição δ(s, 0, U) = { S, UVU } dá origem às regras (parte 2): U SS 0U S_ V U _S U SS 0U S_ V U _S U SS 0U S_ V U _S U SS 0U S_ V U _S
Prof. Yandre Maldonado - 24 A função de transição δ(s, 0, U) = { S, UVU } dá origem às regras (parte 2): U SS 0U SS V SS U SS U SS 0U SS V SR U RS U SS 0U SR V RS U SS U SS 0U SR V RR U RS
Gramática resultante: Z B SS B SR B SS λ 0U SS V SS 0U SR V RS V RR λ 1 U RR 1 Eliminando símbolos inúteis Símbolos que alcançam terminais ou λ (passo 1): {B SS, V RR, U SR, U RR } Prof. Yandre Maldonado - 25 B SR 0U SS V SR 0U SR V RR U SR 1 0U SS V SS U SR 0U SS V SR U RR 0U SR V RS U SR 0U SR V RR U RR U SS 0U SS V SS U SS 0U SS V SR U RS 0U SR V RS U SS 0U SR V RR U RS
Gramática resultante: Z B SS B SR B SS λ 0U SS V SS 0U SR V RS V RR λ 1 U RR 1 Eliminando símbolos inúteis Símbolos que alcançam terminais ou λ (passo 2): {B SS, V RR, U SR, U RR, Z, B SR } Prof. Yandre Maldonado - 26 B SR 0U SS V SR 0U SR V RR U SR 1 0U SS V SS U SR 0U SS V SR U RR 0U SR V RS U SR 0U SR V RR U RR U SS 0U SS V SS U SS 0U SS V SR U RS 0U SR V RS U SS 0U SR V RR U RS
Gramática resultante: Z B SS B SR B SS λ V RR λ 1 U RR 1 Eliminando símbolos inúteis Símbolos que alcançam terminais ou λ : {B SS, V RR, U SR, U RR, Z, B SR } Prof. Yandre Maldonado - 27 B SR 0U SR V RR U SR 1 0U SR V RR U RR
Prof. Yandre Maldonado - 28 Gramática resultante: Z B SS B SR B SS λ V RR λ 1 U RR 1 B SR 0U SR V RR U SR 1 0U SR V RR U RR Re-nomeando os não-terminais: Z = S B SS = A B SR = B V RR = C U SR = D U RR = E
Gramática resultante: Prof. Yandre Maldonado - 29 S A B A λ C λ 1 E 1 B 0DC D 1 0DCE Eliminando as produções unitárias do tipo A B.
Gramática resultante: Prof. Yandre Maldonado - 30 S λ 0DC C λ 1 E 1 D 1 0DCE Eliminando produções vazias (exceto S λ) e produções do tipo A a (exceto na recursão de D).
Gramática resultante: S λ 0D 0D1 D 1 0D11 0D1 Prof. Yandre Maldonado - 31
Bibliografia Prof. Yandre Maldonado - 32 DELAMARO, Márcio Eduardo. Linguagens Formais e Autômatos. UEM, 1998; VIEIRA, Newton José. Introdução aos Fundamentos da Computação. São Paulo: Editora Pioneira Thomson Learning, 2006; MENEZES, Paulo Blauth. Linguagens Formais e Autômatos. Porto Alegre: Editora Sagra-Luzzatto, 1998.