Вы находитесь на странице: 1из 4

Forma Normal de Chomsky

Tema 17

Forma Normal de Chomsky


(CNF)

Considere G = (V, , S, P) & S * x


donde x * donde |x| = k
Sea l la longitud de la cadena
Sea t el nmero de smbolos terminales
Para S : l + t = 1 + 0 = 1
Para x : l + t = k + k = 2k

Dr. Luis A. Pineda


ISBN: 970-32-2972-7
Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Forma Normal de Chomsky


Una propiedad interesante:
Si no hay productiones- ni productiones
unitarias, en toda derivacin el
valor de l + t se incrementa reescribiendo
una variable por una produccin de forma:
A donde (V )*

Forma Normal de Chomsky




Una propiedad interesante:


En particular, l + t se incrementa en uno si
las producciones tienen la siguiente forma:
A BC (i.e. l se incrementa en uno)
A a (i.e. t se incrementa en uno)
Por lo tanto, una derivacin S * x donde
x * & |x| = k (de l + t = 1 a l + t = 2k)
tiene cuando ms 2k 1 producciones!

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Forma Normal de Chomsky


(CNF)
Para toda GLC G = (V, , S, P) existe una
GLC G = (V, , S, P) en CNF tal que
L(G) = L(G) {}
 Una GLC est en CNF si toda produccin
es de alguna de las dos siguientes formas:
A BC
Aa


Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Forma Normal de Chomsky


Si la gramtica G no es ambigua (i.e. es
directamente no ambigua o existe una
gramtica equivalente que genera el
mismo lenguaje) su gramtica
correspondiente en CNF tambin es no
ambigua!
 Una gramtica en CNF es ambigua si y
slo si el lenguaje de la gramtica es
inherentemente ambiguo!


Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Removiendo las productiones-




Removiendo las productiones-

Definimos a una variable como nulificable en una GLC


G = (V, , S, P) como sigue:
Si existe una produccin de forma A en P
entonces A es nulificable
Si P contiene producciones de forma A B1 B2 Bn
donde B1B2 Bn son nulificables (todas) entonces A
es nulificable:
A B1B2 Bn
A ...
A
Slo estas variables son nulificables

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Removiendo las productiones-

Sea una GLC G = (V, , S, P) donde P contiene las


producciones:
S AACD
A aAb |
C aC | a
D aDa | bDb |
 Las variabless nulificabes son A & D:
A
D

Removiendo las productiones-

Sea una GLC G = (V, , S, P) donde P contiene las


producciones:
S AACD
A aAb |
C aC | a
D aDa | bDb |
Agregar producciones en P1:
S AACD | ACD | AAC | CD | AC | C
A aAb | ab |
C aC | a
D aDa | bDb | aa | bb |

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Removiendo las productiones-




Producciones en P1:
S AACD | ACD | AAC | CD | AC | C
A aAb | ab |
C aC | a
D aDa | bDb | aa | bb |
Eliminar producciones- (quitar de P1):
S AACD | ACD | AAC | CD | AC | C
A aAb | ab
C aC | a
D aDa | bDb | aa | bb
Eliminar variables nulificables en GLC es como eliminar
transiciones- en NFA-
Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dada una GLC G = (V, , S, P) construir una GLC


G1 = (V, , S, P1) sin producciones- como sigue:
Sea P1 = P
Encontrar todas las variables nulificables en V
Para toda produccin A en P, aumentar P1
con toda produccin que se pueda obtenera partir
de A eliminando una o ms ocurrencias de las
variables nulificables en
Eliminar todas las producciones- de P1,
duplicaciones de una produccin y producciones
de forma A A

Removiendo las productiones unitarias




Sea una GLC G = (V, , S, P) donde P no tiene


producciones-:
S AACD | ACD | AAC | CD | AC | C
A aAb | ab
C aC | a
D aDa | bDb | aa | bb
Eliminar producciones unitarias: S C
S AACD | ACD | AAC | CD | AC | aC | a
A aAb | ab
C aC | a
D aDa | bDb | aa | bb
Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Normalizando la forma de las producciones




Lados derechos slo con variables o un smbolo terminal:


S AACD | ACD | AAC | CD | AC | aC | a
A aAb | ab
C aC | a
D aDa | bDb | aa | bb
Reemplazar S aC por S XaC & Xa a:
S AACD | ACD | AAC | CD | AC | XaC | a
A XaAXb | Xa Xb
C XaC | a
D XaDXa | XbDXb | XaXa | XbXb
Xa a
Xb b

Obtener Forma Normal de Chomsky




Reemplazar S ABC por S AT & T BC

S AACD | ACD | AAC | CD | AC | XaC | a


A XaAXb | Xa Xb
C XaC | a
D XaDXa | XbDXb | XaXa | XbXb
Xa a
Xb b
Obtener forma normal de Chomsky:
S AT1
S AU1
S AV1

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Una analoga!

T2 CD

A Xa Xb

GLC ambigua

RE o NFA-

Variables nulificables

Cerradura-

Sin producciones-
o prod. unitarias
CNF

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

La ambigedad como un medio para


expresar abstracciones!
GLC ambigua

RE o NFA-

Variables nulificables

Cerradura-

Sin producciones-
o prod. unitarias

NFA

Implementacin: CNF

DFA

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

T2 CD

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

La Gramtica en CNF:
S AT1
T1 AT2
S AU1
U1 CD
S AV1
V1 AC
S CD | AC | XaC | a
A XaW1
W1 AXb
C XaC | a
D XaY1
Y1 DXa
D XbZ1
Z1 DXb
D XaXa | XbXb
Xa a
Xb b

T1 AT2
U1 CD
V1 AC

NFA
DFA

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Forma Normal de Chomsky




Forma Normal de Chomsky (CNF):


A BC
Aa

Gramticas Regulares:
A aB
Aa

De lenguajes regulares a lenguajes no


ambiguos (casi)!

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Existe la clase de los lenguajes no ambiguos?

LLC no ambiguos

A BC
Aa

A aB
LR
Aa
?

LLC ambiguos




No hay un algoritmo para decidir si una gramtica es ambigua


No hay modo de saber si un lenguaje es inherentemente ambiguo!
Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Вам также может понравиться