Anda di halaman 1dari 4

Forma Normal de Chomsky Tema 17

Forma Normal de Chomsky (CNF) Dr. Luis A. Pineda ISBN: 970-32-2972-7


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

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

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

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

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-


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

Removiendo las productiones-


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
Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

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
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 | 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

Removiendo las productiones-

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

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
Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

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 T1 AT2 U1 CD V1 AC 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 T2 CD

Una analoga!
GLC ambigua RE o NFA-

A Xa Xb

Variables nulificables Sin producciones- o prod. unitarias CNF

Cerradura- NFA DFA

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

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-

Forma Normal de Chomsky


Forma Normal de Chomsky (CNF):
A BC Aa

Variables nulificables Sin producciones- o prod. unitarias Implementacin: CNF

Cerradura- NFA DFA

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

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

Anda mungkin juga menyukai