Title: FORMAS NORMALES
1FORMAS NORMALES
- Tomado de Sudkamp
- Languages and Machines
- Cap. 5.
2Gramática regular
Forma normal de Chomsky
A aB A a A
?
A BC A a S
?
S no aparece al lado derecho de ninguna producción
Forma normal de Greibach
A aA1A2A3. An A a S
?
3- Evite que el símbolo de arranque sea recursivo.
- Eliminación de reglas Lambda
- Eliminación de las reglas en cadena (chain
rules). - Símbolos inútiles
4- Algoritmo 5 .1. 2
- Costrucción del conjunto de variables anulables
- Input Context-free Grammar G(V,?,P,S)
- NULLA A ?
- Repeat
- 2.1 PREVNULL
- 2.2 for each variable A?V do
- if there is an A rule A
w and w?PREV then - NULLNULL?A
- until NULLPREV
5EJEMPLO 5.1.2
G V S, A, B, C S a,b
P S ? ACA A ? aAa B C
B ? Bb b C ? cC ?
Iter. NULL PREV
- C
2. A,C C
3. S, A, C A,C
4. S, A, C S,A,C
6Teorema 5.1.5
- Dada G (V,?,P,S) una cfg, existe un algoritmo
que construye una gramática cfg GL(VL,?,PL,SL)
tal que - L(G)L(GL)
- SL no es una variable recursiva.
- A ? ? si y solo sí ??L(G) y ASL.
7DEMOSTRACIÓN
Construcción de GL
VL es V con un nuevo símbolo de arranque si es
necesario.
Construcción de PL
Si ??L(G) entonces SL ? ?
Sea A? w una regla de P. Si w puede escribirse de
la forma w1A1w2A2.wkAkwk1 donde A1A2, Ak son
símbolos anulables entonces A? w1w2.wkwk1 Es
una regla de PL.
A ? ? si y solo si ??L(G) y ASL.
8Ejemplo 5.1.4
G V S, A, B, C S a,b
P S ? ACA A ? aAa B C
B ? Bb b C ? cC ?
Símbolos anulables S,A,C
GL V S, A, B, C S a,b
P S ? ACACAACAAAC? A ?
aAa aa B C B ? Bb b
C ? cC c
G S gt ACA gtaAaCA gt
aBaCA gtabaCA gtabaA
gtabaC gtaba
G S gt A gtaAa gtaBa
gt aba
9Reglas en cadena
- Es una regla de la forma A ? B.
- CHAIN(A) comprende además de A, todas las
símbolos auxiliares que se derivan de A. - Es decir CHAIN(A)B AgtB?A.
- CHAIN(A) se construye recursivamente a partir de
A.
10Ejemplo 5.2.1
CHAIN RULES Chain(S) S,A,C,B Chain(A)
A,C,B Chain(B) B Chain(C) C
G V S, A, B, C S a,b
P S ? ACACAACAAACAC? A
? aAa B C B ? Bb b
C ? cC c
S ? ACA CA AC AA AC ?
S ? aAa Bb b cC c
A ? aAa Bb b cC c
B? Bb b
C ? cC c
11Símbolos Inútiles
- Hay dos clases de símbolos inútiles
- Aquellos que no derivan cadenas de símbolos
terminales (estériles). - Aquellos que no son alcanzables a partir de S
(inalcanzables).
- El teorema 5.3.3 garantiza que para toda cfg
existe una equivalente sin símbolos estériles. - El teorema 5.3.6 garantiza que para toda cfg
existe una equivalente sin símbolos inútiles.
12Construcción del conjunto de variables no
estériles.
- TERMA existe A ? w con w?? .
- repeat
- PREVTERM
- for cada variable A?V do
- if existe A ? w con w?(PREV??) then
- TERMTERM?A
- until PREVTERM
13EJEMPLO 5.3.1
S ? AC BS B A ? aA aF B ? CF b C ?
cC D D ? aD BD C E ? aA BSA F ? bB
b
Iter. TERM PREV
- B,F
2. B,F,A,S B,F
3. B, F, A, S, E
B,F,A,S
4. B, F, A, S, E B, F, A, S,
E
S ? BS B A ? aA aF B ? b E ? aA
BSA F ? bB b
GT
14Construcción del conjunto de variables
ALCANZABLES.
- REACHS
- PREV?
- repeat
- NEWREACH-PREV
- PREVREACH
- for cada variable A?NEW do
- for cada regla A ? w agrege a REACH
todas las variables de w - until REACHPREV
15EJEMPLO 5.3.2
S ? AC BS B A ? aA aF B ? CF b C ?
cC D D ? aD BD C E ? aA BSA F ? bB
b
Iter. REACH PREV NEW
- S
S
2. S,B S
B
3. S, B S, B
?
S ? BS B B ? b
GU
S ? BS B A ? aA aF B ? b E ? aA
BSA F ? bB b
GT
16FN de CHOMSKY
- Se parte de una gramática que
- El símbolo de arranque no es recursivo.
- No contiene variables anulables salvo S.
- No contiene reglas en cadena.
- No tiene símbolos inútiles.
A ? BT T ? AW W ?AD
A ? bAaD
A ? BAAD B ? b A ?a
17Ejemplo 5.4.2 (AE)
AE V S, A, T S b, , (, )
P 1. S ? A 2. A ? T
3. A ? A T 4. T ? b
5. T ? (A)
S ? A T b (A) A ? A T b (A) T ? b
(A)
R ? ) L ? ( P ?
Z ?AR Y ?PT T ? b AY LZ S?AY b LZ
18Eliminar la recursividad a izquierda directa.
- Se busca eliminar las reglas de tipo
A ? Aw como A ? A T.
(bvc)a(bvc)
ba
(bvc)(avb)
A ? A B BA a B ? b c
A ? A a b
A ? A a Ab b c
A ? bZ cZ Z ? aZ bZ a b
A ? BAZ aZ BA Z ? BZ B B ? b c
A ? bZ b Z ? aZ a
19Generalizando
A ? Au1 Au2 Aun
A ? v1 v2 vk
A ? v1 v2 vk v1Z v2Z vk Z
Z ? u1Z u2Z unZ
20Conversión a fn de Greibach
Forma normal de Greibach
A ? aA1A2A3. An A ? a S ? ?
S ? AB ? A ? AB CB a B ? AB b C
? AC c
G
S ? AB ? A ? aR1 CBR1 CB a B ?
aR1B CBR1B CBB aB b C ? AC c R1
?BR1 B
S ? AB ? A ? aR1 CBR1 CB a B ? AB
b C ? AC c R1 ?BR1 B
LEMA 5.6.2 La regla A ?uBv se puede reemplazar
por A?uk1vuknv donde B?k1 kn son todas las
B reglas.
21continuamos
S ? AB ? A ? aR1 CBR1 CB a B ?
aR1B CBR1B CBB aB b C ? AC c R1
?BR1 B
S ? AB ? A ? aR1 CBR1 CB a B ?
aR1B CBR1B CBB b C ? aR1C CBR1C CBC
aC c R1 ?BR1 B
C ? aR1C aC c aR1CR2 aCR2 cR2
R2 ? BR1CR2 BCR2 BR1CBC