Está en la página 1de 7

Ejercicio Gua para obtener FNC y FNG

Este documento tiene como fin mostrar la forma de obtener la Forma Normal de Chomsky (FNC o tambin CNF) y la Forma Normal de Greibach (FNG o tambin GNF) de una gramtica dada, mediante un ejercicio e !licati"o# $a gramtica en cuesti%n del ejercicio es la siguiente& ' ( ) * +Ca * a,cd * E,F ) ( a)b * c + ( C, * b * ECd * )d C ( Cc * +b * )aE * , ( a,d * ,d * E ( aaE+ * EFG F ( aFd * d ,urante este ejercicio, la gramtica ir sufriendo modificaciones -ue en algunos casos mantendr a su lenguaje intacto y en otras lo alterar#

Forma Intermedia de Chomsky


)ntes de em!e.ar con el !roceso !ara obtener la FNC de una gramtica, debemos dejar a dicha gramtica en un estado intermedio, al cual !odemos llamar forma intermedia de Chomsky, aun-ue no suele llamrsele !or ning/n nombre# ,e todas formas, en este !aso, lo -ue "amos a tratar de obtener es una gramtica libre de s0mbolos in/tiles, !roducciones y !roducciones unitarias# Cuando ya hayamos lim!iado a nuestra gramtica de estas cosas, !odremos em!e.ar a obtener su FNC#

Eliminando Smbolos Intiles


En este !aso, eliminaremos todos a-uellos s0mbolos -ue sean in/tiles# 1ay dos ti!os de s0mbolos in/tiles& los no generadores y los no alcan.ables#

Eliminando Smbolos No Generadores


2ara eliminar s0mbolos no generadores, !rimero tratamos de identificar todos a-uellos s0mbolos -ue sean generadores# )-uellas "ariables -ue no !odamos determinar -ue son generadoras !asarn a ser s0mbolos no generadores y se eliminarn# 2or definici%n, todos los s0mbolos terminales de una gramtica son generadores, ya -ue se generan a s0 mismos# 3ambin ser un s0mbolo generador toda a-uella "ariable -ue tenga !or lo menos una !roducci%n -ue est conformada /nicamente de s0mbolos generadores# El string "ac0o se considera un s0mbolo generador# 4dentifi-uemos en nuestra gramtica nuestros s0mbolos generadores& ) es generador, ya -ue tiene la !roducci%n ) ( c# 3ambin lo es +, ya -ue tiene + ( b# C y , son generadores, ya -ue tienen la !roducci%n "ac0a C ( y , ( , res!ecti"amente# F tiene la !roducci%n F ( d# 2or /ltimo, ' tiene la !roducci%n ' ( +Ca, donde tanto +, C como a son s0mbolos generadores, !or lo tanto ' es generador tambin# E no es un s0mbolo generador# 3iene dos !roducciones, es "erdad# 5na es E ( aaE+ y la otra es E ( EFG, y en las dos hay !resentes s0mbolos generadores, como !or ejem!lo a y + en la !rimera !roducci%n y F en la segunda# 2ero ninguna de dichas !roducciones est com!letamente com!uesta !or s0mbolos generadores# 6iremos !or ejem!lo la segunda !roducci%n& est !resente la "ariable G, -ue no tiene ninguna !roducci%n asociada, !or lo -ue es inca!a. de ser un s0mbolo generador# ,escartamos esta !roducci%n entonces# 7eamos la !rimera !roducci%n, tal "e. descubramos algo& 6mmmh, tiene a la "ariable

E entre medio, la cual toda"0a no sabemos si es generadora# 8u recursi"o, 9eh: 2ues bueno, la recursi%n llega hasta ah0& No sabemos si E es generador y no hay ninguna otra !roducci%n de E -ue nos ayude a "erificar esto, as0 -ue la !rimera !roducci%n no nos sir"e !ara determinar a E como un s0mbolo generador, y como no !odemos "erificar -ue E es un s0mbolo generador, entonces lo consideramos como un s0mbolo N; generador# 2rocedemos ahora a eliminar las "ariables E y G de la gramtica y a todas las !roducciones en las -ue estn !resentes# ; sea, eliminamos ' ( E,F , + ( ECd, C ( )aE, E ( aaE+ y E ( EF# $a gramtica -ueda como sigue& ' ( ) * +Ca * a,cd ) ( a)b * c + ( C, * b * )d C ( Cc * +b * , ( a,d * ,d * F ( aFd * d 2uede -ue al lector le im!orte saber -ue no se altera el lenguaje de la gramtica cuando se eliminan los s0mbolos no generadores#

Eliminando Smbolos No Alcanzables


2uede -ue, desde un !rinci!io o !or !roducto de la eliminaci%n de algunos s0mbolos no generadores, nuestra gramtica !resente s0mbolos no alcan.ables o, dicho de otras !alabras, s0mbolos -ue no son deribables (directa o indirectamente) desde el s0mbolo de inicio '# En nuestro ejem!lo !articular, nuestra -uerida "ariable F sufre de esta injusticia& ya no e iste !roducci%n -ue la deri"e desde el s0mbolo inicial ', !ues dichas !roducciones se eliminaron cuando estbamos eliminando las "ariables no generadoras# 98u hacemos entoncs: 'omos ms injustos a/n y la sacamos del gru!o tambin# $a gramtica nos -ueda algo as0& ' ( ) * +Ca * a,cd ) ( a)b * c + ( C, * b * )d C ( Cc * +b * , ( a,d * ,d * $a gramtica nos est -uedando cada "e. menos !oblada, !ero no se !reocu!en -ue !ronto las !roducciones y las "ariables "an a !roliferar en nuestra gramtica como conejitos j%"enes y enrgicos#

Eliminando Producciones
)hora "iene un !aso un !oco ms dif0cil# $a eliminaci%n de !roducciones consiste !rinci!almente en eliminar las !roducciones de la forma < ( # Cuando uno haga esto, lo -ue tendr -ue hacer es contem!lar la !osibilidad de -ue, en donde antes a!arec0a la "ariable <, sta ahora !odr a!arecer o no a!arecer, ya -ue en una estar jugando el !a!el de ser el string "ac0o y en la otra se estar siendo otra cosa# =)h> =?a estamos listos entonces> +ueno, no del todo& 98u !asa si una "ariable tiene una !roducci%n -ue est com!uesta de "arios s0mbolos -ue !ueden ser reem!la.ables !or el string "ac0o: 2or ejem!lo, digamos -ue tenemos ? ( <@<A<B###<n, donde todos los <i !ueden ser el string # Entonces nos -uedar0a una cosa as0& ? ( ..., -ue se !uede sim!lificar !or ? ( # )-u0 "emos -ue ? tambin !uede generar al string "ac0o# Entonces "amos a definir a los s0mbolos Anulables# 5n s0mbolo anulable ? "a a ser a-uel -ue tenga entre sus !roducciones a la !roducci%n ? ( o tambin a-uel -ue tenga !or lo menos una !roducci%n en donde todas las "ariables in"olucradas son anulables a su "e.# 7iendo nuestro ejem!lo, !odemos identificar r!idamente a dos "ariables -ue son s0mbolos anulables& las "ariables C y ,, ya -ue ambas tienen la !roducci%n de la forma ? ( # 2ero ojo, -ue no son las /nicas "ariables anulables# 3ambin est + -ue tiene la !roducci%n + ( C,, la cual est com!uesta enteramente !or s0mbolos anulables# +ien, !rocedamos a eliminar las !roducciones # 9C%mo hacemos esto: 6uy fcil& en cada !roducci%n en la -ue estaban !resentes uno o ms s0mbolos anulables, "emos todas las combinaciones en las -ue cada una de dichas "ariables !udiera estar !resente o no# 2or ejem!lo, si tenemos la !roducci%n

? ( ab<@, donde <@ es anulable, entonces se generan las !roducciones ? ( ab<@ y ? ( ab, una en donde <@ est !resente y otra en la -ue no# 7eamos el caso !ara !roducciones con dos y tres "ariables anulables& ? ( a<@bb<A CD ? ( a<@bb<A * a<@bb * abb<A * abb ? ( c<@<Add<Ba CD ? ( c<@<Add<Ba * c<@<Adda * c<@dd<Ba * c<Add<Ba * c<@dda * c<Adda * cdd<Ba * cdda En general, si tenemos una !roducci%n con n s0mbolos anulables, tendremos -ue reem!la.ar esa !roducci%n con a lo ms An !roducciones# En nuestro caso, la gramtica -uedar0a como sigue& ' ( ) * +Ca * +a * Ca * a * a,cd * acd ) ( a)b * c + ( C, * C * , * b * )d C ( Cc * c * +b * b , ( a,d * ad * ,d * d 6iren como de re!ente ha crecido nuestra -uerida gramtica# No han a!arecido nue"as "ariables, !ero s0 surgieron ms !roducciones# 2ero esto no se detiene a-u0# ;jo, -ue ahora s0 -ue se !uede haber alterado el lenguaje# 'i nuestra gramtica inicial era ca!a. de generar el string "ac0o, ahora no lo !odr generar#

Eliminando Producciones Unitarias


$as !roducciones unitarias son a-uellas -ue tienen una /nica "ariable en su cuer!o (ojo>> "aEriaE ble>>> s0mbolos terminales solos no cuentan como !roducciones unitarias>>)# 'i tenemos !or ejem!lo una !roducci%n ? ( <, la idea es reem!la.ar esta !roducci%n !or todas las !roducciones de <# 92ero -u !asa si < tambin tiene !roducciones unitarias: +ueno, entonces !rimero reem!la.amos esas !roducciones unitarias !or sus corres!ondientes !roducciones# 9? si < tiene la !roducci%n unitaria < ( ?: Entonces ah0 lo -ue hacemos es !rimero !oner en ? todas las !roducciones de < menos la !roducci%n < ( ?, y luego !onemos en < todas las !roducciones de ?, menos la !roducci%n ? ( <# 1ay una forma ms general de describir este !roceso, -ue in"olucra la definici%n de los !ares unitarios (?,<), -ue se definen as0& Base: El !ar (?,?) es unitario !or definici%n, !ara toda "ariable de una gramtica dada# Induccin: 'i el !ar (?,<) es unitario y la "ariable < tiene una !roducci%n unitaria de la forma < ( F, entonces (?,F) tambin es un !ar unitario# N%tese -ue los !ares unitarios (<,?) e (?,<) son distintos# $o -ue se hace a continuaci%n es -ue !or cada !ar unitario (<,?), agregamos a las !roducciones de < todas a-uellas !roducciones de ? -ue N; son unitarias# En nuestra gramtica tenemos los siguientes !ares unitarios& (','), (',)), (),)), (+,+), (+,C), (+,,), (C,C) y (,,,)# $os ms rele"antes de estos !ares son (',)), (+,C) y (+,,)# 2rocedemos a eliminar las !roducciones unitarias& ' ( a)b * c * +Ca * +a * Ca * a * a,cd * acd ) ( a)b * c + ( C, * Cc * c * +b * b * a,d * ad * ,d * d * )d C ( Cc * c * +b * b , ( a,d * ad * ,d * d Este ti!o de modificaciones tam!oco altera el lenguaje de la gramtica#

Forma Normal de Chomsky


?a hemos dejado a nuestra gramtica inicial en una forma intermedia a!ta !ara ser modificada en una FNC# $o -ue hacemos a continuaci%n son dos !asos&

Reemplazar Terminales por Variables


El !rimer !aso consiste en reem!la.ar todos a-uellos s0mbolos terminales -ue estn acom!aGados en alguna !roducci%n !or uno o ms s0mbolos# ) estos terminales los reem!la.amos !or nue"as "ariables

-ue tendrn una /nica !roducci%n (la !roducci%n de dicho s0mbolo)# En nuestro caso, hay -ue crear H nue"as "ariables, una !ara cada s0mbolo terminal& ' ( )@)+@ * c * +C)@ * +)@ * C)@ * a * )@,C@,@ * )@C@,@ ) ( )@)+@ * c + ( C, * CC@ * c * ++@ * b * )@,,@ * )@,@ * ,,@ * d * ),@ C ( CC@ * c * ++@ * b , ( )@,,@ * )@,@ * ,,@ * d )@ (a +@ (b C@ (c ,@ (d Este ti!o de modificaciones no altera el lenguaje de la gramtica#

Reemplazar Producciones de 3 o ms Variables


El segundo !aso consiste en eliminar todas las !roducciones con B o ms "ariables !or una -ue contenga s%lo dos# 9C%mo hacemos esto: 'u!ongamos -ue tenemos la !roducci%n ? ( < , donde es un string -ue consta de dos o ms "ariables# Entonces creamos una nue"a "ariable F, con la !roducci%n F ( , y luego reem!la.amos ? ( < !or ? ( <F# 9? si tiene ms de dos "ariables: 'u!ongamos -ue est com!uesto !or la "ariable I al !rinci!io y !or al final, donde es a su "e. un string -ue tiene dos o ms "ariables, entonces creamos una "ariable 7 con la !roducci%n 7 ( y luego reem!la.amos F ( I !or F ( I7# Je!etimos este !roceso hasta -ue ya no -ueden !roducciones de B o ms "ariables en nuestra gramti"a# En nuestro caso, la gramtica -ueda como sigue& ' ( )@?@ * c * +?A * +)@ * C)@ * a * )@?B * )@?H ?@ ( )+@ ?A ( C)@ ?B ( ,?H ?H ( C@,@ ) ( )@?@ * c + ( C, * CC@ * c * ++@ * b * )@?K * )@,@ * ,,@ * d * ),@ ?K ( ,,@ C ( CC@ * c * ++@ * b , ( )@?K * )@,@ * ,,@ * d )@ (a +@ (b C@ (c ,@ (d Este ti!o de modificaciones no altera el lenguaje de la gramtica# )cabamos de obtener una gramtica -ue tiene !roducciones -ue in"olucran o solamente a dos "ariables (< ( ?F) o a un /nico s0mbolo terminal (I ( ")# Este ti!o de gramticas, damas y caballeros, se denominan gramticas en la Forma Normal de Chomsky, y tienen la !articularidad de -ue todos los rboles de deri"aci%n -ue generan son com!letamente binarios# Esta caracter0stica los hace bastante /tiles !ara el !roblema de identificar si un string dado L !ertenece al lenguaje de dicha gramtica#

Forma 4ntermedia de Greibach


)l igual -ue con la FNC, una gramtica dada debe ser lle"ada a una forma intermedia antes de !oder transformarla a su corres!ondiente forma normal de Greibach# En el caso de Chomsky, la forma intermedia im!licaba eliminar los s0mbolos in/tiles, las !roducciones y las !roducciones unitarias# En el caso de Greibach, la forma intermedia debe cum!lir con -ue todas las !roducciones sean o strings de una o ms "ariables, o !roducciones de un solo s0mbolo terminal, o !roducciones de un s0mbolo terminal seguido !or una o ms "ariables# E isten muchos mtodos !ara llegar a esta forma intermedia# $a -ue recomienda la mayor0a de la gente es la -ue consiste en obtener la FNC de una gramtica# 9? !or -u: 2or-ue una gramtica -ue est en FNC cum!le con estas tres condiciones de la forma intermedia de Greibach# Jealmente, cuando se han reem!la.ado a los s0mbolos terminales !or "ariables en el !roceso de formali.aci%n de Chomsky, ya en ese entonces tenemos una forma intermedia de Greibach# 5no !odr0a elegir tambin esta gramtica como su forma intermedia de Greibach#

Forma Normal de Greibach


$a forma normal de Greibach de una gramtica dada es a-uella -ue s%lo contiene !roducciones de la forma ?( , donde es un terminal y es un string conformado /nicamente !or "ariables y !uede tener largo cero (o sea, !uede ser el string "ac0o)# 5na "e. tenemos nuestra gramtica en su forma intermedia, !rocedemos a a!licarle las siguientes modificaciones, !ara as0 obtener su FNG& @# ;rdenamos y enumeramos nuestras "ariables de tal forma -ue nos -uede nuestro s0mbolo inicial ' como la !rimera "ariable de la enumeraci%n# $a gramtica nos -uedar0a as0& ' ?@ ?A ?B ?H + ?K C , ) )@ +@ C@ ,@ <@ ( <@@<A * c * <M<B * <M<@@ * <N<@@ * a * <@@<H * <@@<K <A ( <@O<@A <B ( <N<@@ <H ( <P<K <K ( <@B <@H <M ( <N<P * <N<@B * c * <M<@A * b * <@@<Q * <@@<@H * <P<@H * d * <@O<@H <Q ( <P<@A <N ( <N<@B * c * <M<@A * b <P ( <@@<Q * <@@<@H * <P<@H * d <@O ( <@@<A * c <@@ (a <@A (b <@B (c <@H (d

,ejamos el s0mbolo original a la i.-uierda de cada l0nea !ara -ue se entienda cul fue la "ariable enumerada -ue reem!la.% a cada "ariable# N%tese -ue cambiamos de orden a la "ariable ), al !onerla !or debajo de la "ariable ,# El !ro!%sito de estas alteraciones en el orden original tienen como fin -ue, al !roceder con la enumeraci%n, en las !roducciones resultantes -uede la menor cantidad de !roducciones <i ( <j, en donde i sea mayor -ue j# A# Eliminamos la recursi%n inmediata a la i.-uierda y la recursi%n a la i.-uierda# 98u se entiende !or recursi%n inmediata a la i.-uierda: Cuando tenemos una !roducci%n de la forma < ( < , decimos -ue < es tiene recursi"idad inmediara !or la i.-uierda# Cuando tenemos !or lo menos una !roducci%n de la forma < ( ?, y la "ariable ? tiene !or lo menos una !roducci%n de la forma ?(< decimos -ue < recursi"idad !or la i.-uierda# 9C%mo eliminamos la recursi%n !or la i.-uierda: 2rimero reem!la.amos en las !roducciones de < todas las a!ariciones de ? !or a-uellas !roducciones de ? -ue no sean inmediatamente recursi"as a la i.-uierda !ara ?# Con esto logramos hacer -ue < tenga s%lo !roducciones inmediatamente recursi"as !or la i.-uierda# $uego, su!ongamos -ue < tiene las siguientes !roducciones& < ( <1 * <2 * ### * <n * 1 * 2 * ### * m ,onde las !roducciones j no son recursi"as !or la i.-uierda# )hora creamos una "ariable au iliar <R y reali.amos las siguientes transformaciones& < ( 1 * 2 * ### * m * 1<R * 2<R * ### * m<R <R ( 1 * 2 * ### * n<R * 1<R * 2<R * ### * n<R En nuestro caso, las "ariables -ue tienen !roducciones inmediatamente recursi"as !or la i.-uierda son <M , <N y <P, debido a sus !roducciones <M ( <M<@A, <N ( <N<@B y <P ( <P<@H# 3ambin tenemos la !roducci%n <N(<M<@A -ue es recursi"a a la i.-uierda !ara la "ariable <M, y las !roducciones <M(<N<P y <M(<N<@B -ue son recursi"as a la i.-uierda !ara la "ariable <N# 2rocedemos a dejar a ambas "ariables /nicamente con recursi"idad inmediata a la i.-uierda& @) Jeem!la.ando a <N !or sus !roducciones no recursi"as a la i.-uierda, las !roducciones <M ( <N<P * <N<@B * c * <M<@A * b * <@@<Q * <@@<@H * <P<@H * d * <@O<@H se transforman en& <M ( c<P * <M<@A<P * b<P * c<@B * <M<@A<@B * b<@B * c * <M<@A * b * <@@<Q * <@@<@H * <P<@H * d * <@O<@H N%tese -ue no reem!la.amos a <N !or su !roducci%n <N(<N<@B, ya -ue esta !roducci%n es recursi"a !or la i.-uierda !ara <N#

A) Jeem!la.ando a <M !or sus !roducciones no recursi"as a la i.-uierda, las !roducciones <N ( <N<@B * c * <M<@A * b se transforman en& <N ( <N<@B * c * <N<P<@A * <N<@B<@A * c<@A * b<@A * <@@<Q<@A * <@@<@H<@A * <P<@H<@A * d<@A * <@O<@H<@A * b )-u0 tam!oco reem!la.amos a <M !or su !roducci%n <M ( <M<@A, ya -ue esta !roducci%n es recursi"a !or la i.-uierda !ara <M# )hora -ue solamente tenemos recursi"idad inmediata !or la i.-uierda, !rocedemos a reali.ar las corres!ondientes transformaciones& @) $as !roducciones <M ( c<P * <M<@A<P * b<P * c<@B * <M<@A<@B * b<@B * c * <M<@A * b * <@@<Q * <@@<@H * <P<@H * d * <@O<@H se transforman en& <M ( c<P * b<P * c<@B * b<@B * c * b * <@@<Q * <@@<@H * <P<@H * d * <@O<@H * c<P<M#@ * b<P<M#@ * c<@B<M#@ * b<@B<M#@ * c<M#@ * b<M#@ * <@@<Q<M#@ * <@@<@H<M#@ * <P<@H<M#@ * d<M#@ * <@O<@H<M#@ <M#@ ( <@A<P * <@A<@B * <@A * <@A<P<M#@ * <@A<@B<M#@ * <@A<M#@ A) $as !roducciones <N ( <N<@B * c * <N<P<@A * <N<@B<@A * c<@A * b<@A * <@@<Q<@A * <@@<@H<@A * <P<@H<@A * d<@A * <@O<@H<@A * b se transforman en& <N ( c * c<@A * b<@A * <@@<Q<@A * <@@<@H<@A * <P<@H<@A * d<@A * <@O<@H<@A * b * c<N#@ * c<@A<N#@ * b<@A<N#@ * <@@<Q<@A<N#@ * <@@<@H<@A<N#@ * <P<@H<@A<N#@ * d<@A<N#@ * <@O<@H<@A<N#@ * b<N#@ <N#@ ( <@B * <P<@A * <@B<@A * <@B<N#@ * <P<@A<N#@ * <@B<@A<N#@ B) ? las !roducciones <P ( <@@<Q * <@@<@H * <P<@H * d se transforman en& <P ( <@@<Q * <@@<@H * d * <@@<Q<P#@ * <@@<@H<P#@ * d<P#@ <P#@ ( <@H * <@H<P#@ Nuestra gramtica, libre de recursi"idad !or la i.-uierda, -ueda como sigue& <@ <A <B <H <K <M ( ( ( ( ( ( <@@<A * c * <M<B * <M<@@ * <N<@@ * a * <@@<H * <@@<K <@O<@A <N<@@ <P<K <@B <@H c<P * b<P * c<@B * b<@B * c * b * <@@<Q * <@@<@H * <P<@H * d * <@O<@H * c<P<M#@ * b<P<M#@ * c<@B<M#@ * b<@B<M#@ * c<M#@ * b<M#@ * <@@<Q<M#@ * <@@<@H<M#@ * <P<@H<M#@ * d<M#@ * <@O<@H<M#@ <@A<P * <@A<@B * <@A * <@A<P<M#@ * <@A<@B<M#@ * <@A<M#@ <P<@A c * c<@A * b<@A * <@@<Q<@A * <@@<@H<@A * <P<@H<@A * d<@A * <@O<@H<@A * b * c<N#@ * c<@A<N#@ * b<@A<N#@ * <@@<Q<@A<N#@ * <@@<@H<@A<N#@ * <P<@H<@A<N#@ * d<@A<N#@ * <@O<@H<@A<N#@ * b<N#@ <@B * <P<@A * <@B<@A * <@B<N#@ * <P<@A<N#@ * <@B<@A<N#@ <@@<Q * <@@<@H * d * <@@<Q<P#@ * <@@<@H<P#@ * d<P#@ <@H * <@H<P#@ <@@<A * c a b c d

<M#@ ( <Q ( <N ( <N#@ <P <P#@ <@O <@@ <@A <@B <@H ( ( ( ( ( ( ( (

B# En nuestro tercer !aso, eliminaremos todas las !roducciones de la forma < i ( <j, en donde i es mayor -ue j# 2ara hacer esto, reem!lararemos a <j !or todas sus !roducciones# 'i al reem!la.ar a!arecen otras !roducciones de esta forma, re!etimos este !aso, hasta -ue no -ueden ms !roducciones en donde la !rimera "ariable de la !roducci%n tenga un 0ndice menor al de la "ariable de la cabe.a de la !roducci%n# En nuestro caso, no hay ninguna !roducci%n de este ti!o, !ero "amos a mostrar unas !roducciones de ejem!lo !ara ilustrar el !roceso& <P ( <@@<Q * <@@<@H * d * <@@<Q<P#@ * <@@<@H<P#@ * d<P#@ <@O ( <@@<A * c * <P<@@<M En este ejem!lo, tenemos la !roducci%n <@O ( <P<@@<M en la -ue la "ariable de la i.-uierda de la !roducci%n (<P) tiene un 0ndice menor al de la "ariable de la cabe.a de la !roducci%n (< @O)# Jeem!la.ando <P !or sus corres!ondientes !roducciones nos -ueda&

<@O ( <@@<A * c * <@@<Q<@@<M * <@@<@H<@@<M * d<@@<M * <@@<Q<P#@<@@<M * <@@<@H<P#@<@@<M * d<P#@<@@<M H# En el /ltimo !aso, reem!la.amos todas las !roducciones en las -ue haya una "ariable al !rinci!io de la !roducci%n (no im!orta el 0ndice -ue tenga) !or las !roducciones de dicha "ariable -ue em!iecen con alg/n s0mbolo terminal# Este !roceso se reali.a em!e.ando !or las /ltimas "ariables de la gramtica y luego se contin/a el !roceso de reem!la.o hacia arriba hasta llegar a las !roducciones de la "ariable de inicio# En nuestra gramtica, !artir0amos con las !roducciones de la "ariable <@O (ya -ue <@@, <@A, <@B y <@H tienen !roducciones en las -ue s%lo hay in"olucrados s0mbolos terminales)# $a cosa nos -uedar0a as0& <@O ( <@@<A * c CD <@O ( a<A * c $uego continuar0amos con <P#@& <P#@ ( <@H * <@H<P#@ CD <P#@ ( d * d<P#@ El !roceso no !resenta mayor dificultad, hasta -ue llegamos a <N#@, en donde a!arecen las !roducciones <N#@ ( <P<@A y <N#@ ( <P<@A<N#@, -ue no comien.an con <@@, <@A, <@B o <@H# 2ero no im!orta, ya -ue todas las !roducciones de <P !ara estas alturas del !roceso han sido modificadas !ara -ue em!iecen con un s0mbolo terminal, as0 -ue reem!la.amos <P directamente con sus !roducciones& Esto& <N#@ ( <@B * <P<@A * <@B<@A * <@B<N#@ * <P<@A<N#@ * <@B<@A<N#@ 8ueda como esto& <N#@ ( c * a<Q<@A * a<@H<@A * d<@A * a<Q<P#@<@A * a<@H<P#@<@A * d<P#@<@A * c<@A * c<N#@ * a<Q<@A<N#@ * a<@H<@A<N#@ * d<@A<N#@ * a<Q<P#@<@A<N#@ * a<@H<P#@<@A<N#@ * d<P#@<@A<N#@ * c<@A<N#@ El !roceso contin/a as0 sin mayores com!licaciones, hasta -ue llegamos a la siguiente gramtica en forma normal de Greibach& <@ ( a<A * c * c<P<B * b<P<B * c<@B<B * b<@B<B * c<B * b<B * a<Q<B * a<@H<B * a<Q<@H<B * a<@H<@H<B * d<@H<B * a<Q<P#@<@H<B * a<@H<P#@<@H<B * d<P#@<@H<B * d<B * a<A<@H<B * c<@H<B * c<P<M#@<B * b<P<M#@<B * c<@B<M#@<B * b<@B<M#@<B * c<M#@<B * b<M#@<B * a<Q<M#@<B * a<@H<M#@<B * a<Q<@H<M#@<B * a<@H<@H<M#@<B * d<@H<M#@<B * a<Q<P#@<@H<M#@<B * a<@H<P#@<@H<M#@<B * d<P#@<@H<M#@<B * d<M#@<B * a<A<@H<M#@<B * c<@H<M#@<@H<M#@<B * c<P<@@ * b<P<@@ * c<@B<@@ * b<@B<@@ * c<@@ * b<@@ * a<Q<@@ * a<@H<@@ * a<Q<@H<@@ * a<@H<@H<@@ * d<@H<@@ * a<Q<P#@<@H<@@ * a<@H<P#@<@H<@@ * d<P#@<@H<@@ * d<@@ * a<A<@H<@@ * c<@H<@@ * c<P<M#@<@@ * b<P<M#@<@@ * c<@B<M#@<@@ * b<@B<M#@<@@ * c<M#@<@@ * b<M#@<@@ * a<Q<M#@<@@ * a<@H<M#@<@@ * a<Q<@H<M#@<@@ * a<@H<@H<M#@<@@ * d<@H<M#@<@@ * a<Q<P#@<@H<M#@<@@ * a<@H<P#@<@H<M#@<@@ * d<P#@<@H<M#@<@@ * d<M#@<@@ * a<A<@H<M#@<@@ * c<@H<M#@<@H<M#@<@@ * c<@@ * c<@A<@@ * b<@A<@@ * a<Q<@A<@@ * a<@H<@A<@@ * a<Q<@H<@A<@@ * a<@H<@H<@A<@@ * d<@H<@A<@@ * a<Q<P#@<@H<@A<@@ * a<@H<P#@<@H<@A<@@ * d<P#@<@H<@A<@@ * d<@A<@@ * a<A<@H<@A<@@ * c<@H<@A<@@ * b<@@ * c<N#@<@@ * c<@A<N#@<@@ * b<@A<N#@<@@ * a<Q<@A<N#@<@@ * a<@H<@A<N#@<@@ * a<@H<@A<N#@<@@ * d<@A<N#@<@@ * a<A<@H<@A<N#@<@@ * c<@H<@A<N#@<@@ * b<N#@<@@ * a * a<H * a<K <A ( a<A<@A * c<@A <B ( c<@@ * c<@A<@@ * b<@A<@@ * a<Q<@A<@@ * a<@H<@A<@@ * a<Q<@H<@A<@@ * a<@H<@H<@A<@@ * d<@H<@A<@@ * a<Q<P#@<@H<@A<@@ * a<@H<P#@<@H<@A<@@ * d<P#@<@H<@A<@@ * d<@A<@@ * a<A<@H<@A<@@ * c<@H<@A<@@ * b<@@ * c<N#@<@@ * c<@A<N#@<@@ * b<@A<N#@<@@ * a<Q<@A<N#@<@@ * a<@H<@A<N#@<@@ * a<@H<@A<N#@<@@ * d<@A<N#@<@@ * a<A<@H<@A<N#@<@@ * c<@H<@A<N#@<@@ * b<N#@<@@ <H ( a<Q<K * a<@H<K * d<K * a<Q<P#@<K * a<@H<P#@<K * d<P#@<K <K ( c <@H <M ( c<P * b<P * c<@B * b<@B * c * b * a<Q * a<@H * a<Q<@H * a<@H<@H * d<@H * a<Q<P#@<@H * a<@H<P#@<@H * d<P#@<@H * d * a<A<@H * c<@H * c<P<M#@ * b<P<M#@ * c<@B<M#@ * b<@B<M#@ * c<M#@ * b<M#@ * a<Q<M#@ * a<@H<M#@ * a<Q<@H<M#@ * a<@H<@H<M#@ * d<@H<M#@ * a<Q<P#@<@H<M#@ * a<@H<P#@<@H<M#@ * d<P#@<@H<M#@ * d<M#@ * a<A<@H<M#@ * c<@H<M#@<@H<M#@ <M#@ ( b<P * b<@B * b * b<P<M#@ * b<@B<M#@ * b<M#@ <Q ( a<Q<@A * a<@H<@A * d<@A * a<Q<P#@<@A * a<@H<P#@<@A * d<P#@<@A <N ( c * c<@A * b<@A * a<Q<@A * a<@H<@A * a<Q<@H<@A * a<@H<@H<@A * d<@H<@A * a<Q<P#@<@H<@A * a<@H<P#@<@H<@A * d<P#@<@H<@A * d<@A * a<A<@H<@A * c<@H<@A * b * c<N#@ * c<@A<N#@ * b<@A<N#@ * a<Q<@A<N#@ * a<@H<@A<N#@ * a<@H<@A<N#@ * d<@A<N#@ * a<A<@H<@A<N#@ * c<@H<@A<N#@ * b<N#@ <N#@ ( c * a<Q<@A * a<@H<@A * d<@A * a<Q<P#@<@A * a<@H<P#@<@A * d<P#@<@A * c<@A * c<N#@ * a<Q<@A<N#@ * a<@H<@A<N#@ * d<@A<N#@ * a<Q<P#@<@A<N#@ * a<@H<P#@<@A<N#@ * d<P#@<@A<N#@ * c<@A<N#@ <P ( a<Q * a<@H * d * a<Q<P#@ * a<@H<P#@ * d<P#@ <P#@ ( d * d<P#@ <@O ( a<A * c <@@ ( a <@A ( b <@B ( c <@H ( d ,CCSAOOM#OH#AH

También podría gustarte