Professional Documents
Culture Documents
. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
3.3
61
donde
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
62
3. LENGUAJES REGULARES
f ( e ) = {e} (la imagen del elemento neutro a travs de un homomorfismo es el elemento neutro del monoide de llegada).
Dadas estas propiedades, se concluye trivialmente
f ( w ) de una cadena w 6 * es un conjunto regular.
f ( w ) es concatenacin de los conjuntos regulares que
aplicar / a cada uno de los smbolos que componen
w = 0,10,20,3 . . . entonces f(w] = f (0,1) f (a<) f ( 0 , 3 ) . . .
es regular, tambin la imagen de un conjunto R de
siempre que R sea regular, dado que:
que la imagen
En particular,
se obtienen al
la cadena. Si
No slo
cadenas lo es,
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
63
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
64
3. LENGUAJES REGULARES
Obviamente, 0^ = 0. Con estas definiciones, el conjunto LR es regular si y slo si L es regular. Para probarlo, basta con observar
que:
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
65
es decir, L' est formado por las cadenas sobre el alfabeto (0,1} cuja
imagen
pertenece a L.
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
66
3. LENGUAJES REGULARES
1. la cadena a;
2. la expresin regular a + ab
3.30 Dado un lenguaje regular L, definimos el lenguaje:
MAX(L) = {x 6 L para ninguna y diferente de e se tiene xy E
L}.
Construye un autmata finito para MAX(L) si L es el lenguaje
representado por la expresin regular
3.31 Explica un mtodo general para encontrar el autmata que
reconoce cualquier cadena binaria que contiene una subcadena del
lenguaje definido por otro autmata dado M. Aplcalo como ejemplo
al autmata
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
67
del lpiz cuando recorre (en sentido horario) el borde la figura, empezando por un punto del borde y retornando al mismo punto. Para
evitar que el resultado dependa del punto del contorno elegido como
inicial se define el conjunto de cadenas giradas respecto al conjunto
de partida:
Describe algn mtodo para transformar el autmata finito determinista que reconoce L en uno (indeterminista) que reconoce todas las
cadenas en cycle(L). Toma, por ejemplo, el caso del lenguaje
3.34 Sea el lenguaje regular . = (0|l)*ll(0|l)*yel lenguaje independiente del contexto L = {cadenas binarias con igual nmero
de ceros que de unos}. Dibuja un autmata para el cociente
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
Captulo 4
Construccin de
autmatas finitos
4.1
Lema de bombeo
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
70
que
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
T\_
{02n : n 6 N};
el conjunto de las cadenas que representan un nmero primo;
el conjunto de las cadenas que representan mltiplos de 3;
el conjunto de las cadenas cuya longitud es un cuadrado perfecto;
el conjunto de las cadenas que tienen el mismo nmero de ceros
que de unos;
el conjunto de las cadenas palndromas (capica);
el conjunto de los prefijos de 1/3;
el conjunto de los prefijos de \/2;
el conjunto de las cadenas cuyo contenido en ceros y unos difiere
en un nmero par
4.3 Dado un lenguaje regular L, son regulares los siguientes conjuntos?
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
72
Esto es, L' contiene todas las cadenas obtenidas borrando exactamente un 1 a las cadenas de L. Justifica que si L es regular, entonces
tambin lo es L'. Encuentra un AFD para L' si L es el lenguaje
definido por la expresin regular
4.7 Dado un lenguaje regular L, llamamos err(L) a todas las cadenas que pueden obtenerse por error en un smbolo (si el alfabeto es
{0,1}, Un cero ha sido cambiado por un uno o al revs) de las cadenas
de L. Justifica que err(L) es regular. Encuentra el autmata para
err(L) si L es el lenguaje formado por todas las cadenas binarias tales
que la diferencia (absoluta) entre el nmero de ceros y de unos no es
mltiplo de 3.
4.8 Sea L un conjunto regular. Justificar que entonces tambin es
regular el conjunto
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
73
4.10 Sea una sucesin infinita de palabras x\, #2, 3, , xn,... sobre un alfabeto E. Definimos el lenguaje L de la siguiente forma:
XiXj e L si y slo si i < j. Es L regular? Justifiqese la respuesta.
Una consecuencia relacionada con el lema de bombeo es que no
existen autmatas finitos que reconozcan cadenas prefijo de un nmero irracional, por ejemplo \/2- Esto equivale a afirmar que \/2 no es
computable: cualquier ordenador tiene un nmero finito de estados
(y la memoria accesible en la prctica est acotada) y por tanto el
resultado obtenido sera peridico a partir de cierta cifra, y por tanto
incorrecto.
4.2
Algoritmos y decidibilidad
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
74
Demostracin.
(-4=) Es consecuencia del lema de bombeo y de que \w\ > |M|. En
efecto, si w = xyz es la particin de la cadena que satisface el
lema de bombeo, entonces xykz genera un conjunto infinito de
cadenas al variar fc, todas ellas de L(M).
(=>) Si L(M] es infinito, entonces existen en l cadenas de longitud
superior a cualquiera dada, puesto que en caso contrario el conjunto sera finito. Tomemos w; : w > n = \M\. Si w est comprendida entre n y 2n ya est demostrado. Si w; > 2n entonces
se puede aplicar el lema de bombeo con k = O, obteniendo una
cadena ms corta. Como w = xyz : \y\ > 1, xy\ < n, necesariamente 1 < \y\ < n, y la cadena se va acortando en fragmentos
de longitud menor o igual que n. Es necesario, por tanto, que
en algn momento la cadena que obtenemos tenga una longitud
/ comprendida entre n y 2n (n < / < 2n).
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
75
4.3
Una propiedad muy interesante de los autmatas finitos deterministas es que si se establece un relacin de orden de acuerdo con su
tamao segn el nmero de nodos que contiene, el subconjunto
de los autmatas finitos que generan un lenguaje dado L tiene un
mnimo, es decir, existe un nico autmata que es menor (estrictamente) que todos los dems. Esto no ocurre, por ejemplo, en el caso
de los autmatas finitos indeterministas, donde podemos encontrar
varios autmatas equivalentes tales que no existe otro equivalente de
tamao menor. Tampoco es posible si trabajamos con expresiones
regulares o gramticas. En cambio, si caracterizamos cada conjunto
regular por el mnimo AFD que lo genera, esta correspondencia es
biunvoca. Las consecuencias prcticas de esta propiedad son enormes. Por ejemplo, el disponer de una representacin inambigua proporciona una gran potencia a los mtodos de aprendizaje o inferencia
de lenguajes regulares[11], caracterstica que est lejos de ser conseguida
otros : tipos
de lenguajes.
EBSCO en
Publishing
eBook Collection
(EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
76
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
77
Ejercicios
4.13 Comprueba que RM es una relacin de equivalencia invariante
por la derecha y de orden finito, cuyo orden es menor o igual que el
tamao \M\ del autmata.
4.14 Comprueba que RL es una relacin de equivalencia invariante
por la derecha.
4.15 Justifica que la relacin RL definida anteriormente se puede
expresar tambin de la siguiente manera:
4.3.1
Dada una cadena iu, vamos a denotar como qw el nodo tal que
qw = 6w(qi] y por L(qw) el lenguaje generado por M cuando se
toma qw como estado inicial. Por la definicin de cociente:
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
78
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
79
Ejercicios
4.16 Demuestra, a partir de que RL es invariante por la derecha,
que la definicin de la funcin 6 es consistente:
<5 a (CM)- Demuestra tambin la consistencia de la definicin de F.
4.17 Dado S = {a, 6}, se define el conjunto de lenguajes finitos:
Ln = {wcw1 : w, w' (E Sn A w ^ w'}. Demuestra que L = Un>0 Ln no
es regular.
Corolario 4.1 Dado L regular existe un nico (salvo reordenacin
de las etiquetas de los nodos) autmata finito determinista M tal que
L = L(M) y cuyo nmero de nodos sea mnimo.
Demostracin. El autmata M es el que se ha definido en el teorema anterior a partir de RL, que tiene tantos estados como clases
presenta RL. En efecto, cualquier autmata M' equivalente a M genera tambin el lenguaje L y define una relacin RM> cuyo ndice
es como mucho \M' que origina un refinamiento de la particin
inducida por RL- Por tanto:
\M'\ > ndice de RM> > ndice de RL(M] \M\
Luego cualquier otro autmata determinista equivalente contiene un
nmero mayor o igual de estados. Adems, en el caso particular de
que |M| = \M' , entonces M y M1 son idnticos, salvo reordenaciones
triviales de los nodos, pues el refinamiento tiene el mismo nmero
de clases que la particin ms gruesa y, por tanto, slo pueden ser
iguales.
4.3.2
Algoritmos de minimizacin
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
80
que es equivalente hablar de particin en L y de particin en los estados de A. Si los nodos del autmata inducen una particin en
definida por RA, la particin RL de S* induce una particin de los
estados de A que conduce al autmata minimizado. Esta particin
viene dada por los nodos que son accesibles mediante cadenas de una
misma clase de RL.
Dado A = (Q, E, <5, gi, F), llamaremos L(qk) al lenguaje regular
generado cuando se toma q^ como nodo inicial en A, de forma que
L(qk) = {w S* : 6
nos permite definir la siguiente relacin de equivalencia entre nodos:
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
Ejercicios
4.18 Demuestra que la definicin de 6' es consistente, es decir que
no depende del elemento representante de la clase elegido:
4.19 Demuestra que si M es mnimo, entonces contiene como mximo un nodo intil.
En la prctica, para determinar la particin en los nodos de A
se puede proceder de forma recursiva empezando desde de la particin trivial (todos los nodos son equivalentes). Sabemos que L(qi) ^
I/te) <=> qi ^ qj. La condicin L(qi) ^ L(qj) significa que existe
alguna cadena w que pertenece a I/ta) pero no a L(QJ) o viceversa.
Para w . esto significa que:
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
82
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
83
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
Captulo 5
Gramticas
5.1
Introduccin
En materia de lenguajes de programacin, este segundo aspecto es el ms importante, un programa no es ms que una cadena de caracteres que el compilador
debe analizar y traducir a la luz de las reglas enunciadas en la gramtica, detectando las incorrecciones sintcticas que encuentre y que le impidan compilarlo.
85
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
86
5. GRAMTICAS
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
87
Ejercicio
5.1 Repetir el anlisis anterior para la cadena u) = a * (a + a) cuando la
lista de reglas de reescritura es la siguiente:
1.
2.
3.
4.
E-^>E + E
E > E * E
E ) (E]
E >a
Aqu, E es una variable y {+,*,(,),a} es el conjunto de smbolos terminales. Sealemos, por otra parte, que con esta gramtica podemos generar
cadenas de longitud arbitrariamente grande, esto es, el conjunto de cadenas
generables es infinito (numerable o no numerable?).
Ahora estamos en condiciones de dar una definicin formal de gramtica.
5.2
Definicin:
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
88
5. GRAMTICAS
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
89
Los lenguajes generados por los ltimos tres tipos son llamados por el
mismo nombre que la gramtica respectiva.
Obsrvese que cada tipo de gramtica est incluido en el tipo anterior,
esto es:
5.3
Gramticas regulares
5.3.1
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
90
5. GRAMTICAS
o, alternativamente,
Observemos que todas las producciones que hemos necesitado son de una
de las formas que corresponden a una gramtica regular.
Resumiendo, dado un autmata M (Q, ,0, <?i, P), obtenemos una
gramtica G = (VN, Vr,P, S} tal que L(M) L(G), tomando
VN = Q;
VT = S;
S = Qpara cada transicin del autmata Sa(p) (l^ aadimos a P la regla
p>aq;
para cada estado q E F aadimos a P la regla q > e, o, alternativamente, tantas reglas de la forma p > a como transiciones del tipo
6a(p) = q con q e F tenga el AFD.
5.3.2
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
91^
Figura
Ejercicios
5.2 Construyase una gramtica regular para los lenguajes siguientes:
cadenas acabadas en 00;
cadenas con dos unos consecutivos;
cadenas con un 1 en la antepenltima posicin;
cadenas de longitud 4.
Dibuja en algn caso el rbol de derivacin de alguna cadena particular del
lenguaje.
5.3 Demustrese que el conjunto de lenguajes regulares es idntico al conjunto
de lenguajes generables por gramticas regulares.
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
92
5. GRAMTICAS
5.4 Encuentra el autmata mnimo que acepta el mismo lenguaje que genera la gramtica regular
S > aS | aA e
A*bA\b
B > a bA cB \ e
C +c cB
5.5 Encuentra una gramtica que genere el mismo lenguaje al que repre-
5.4
(GIC)
La gran importancia de las gramticas independientes del contexto o
gramticas incontextuales reside en el hecho de que la mayor parte de los
lenguajes de programacin se representan mediante una gramtica de este
tipo. Estas gramticas suponen una ampliacin sobre las gramticas regulares. Se caracterizan porque sus reglas son de la forma
r : VN > V*,
es decir, la parte derecha de la regla puede ser cualquier cadena de smbolos
terminales y no terminales, si bien la parte izquierda est restringida a una
sola variable. Un ejemplo de GIC estara dado por
S > OB | IA
A > O | OS IAA
B >> 1 | 15 | QBB
que, como el lector puede intentar probar, representa al lenguaje formado
por las cadenas que contienen igual nmero de ceros que de unos. Recordemos que en la seccin 4.1 demostramos que este lenguaje no era regular,
con lo que por fin hemos aumentado el nmero de lenguajes que podemos
estudiar. A los lenguajes generados por GIC les llamaremos lenguajes independientes
del: eBook
contexto
o, abreviadamente,
EBSCO Publishing
Collection
(EBSCOhost) - printed LIC.
on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
93
Ejercicios
5.6 Escribe gramticas independientes del contexto para los conjuntos:
cadenas capica;
expresiones regulares sobre el alfabeto {O,1};
cadenas que no son capica;
cadenas del tipo an~lbn, con n > 0;
cadenas del tipo O n 10 2n , con n > 0;
cadenas del tipo O m l n con n par y m impar o viceversa;
cadenas del tipo abnabn+1, con n > 0;
cadenas del tipo anbm con m , n > 0 j m = n o m = 2n;
cadenas del tipo anbm con ra,n>0yn>ra.
5.7 Encuentra una gramtica que genere todas las cadenas que contienen
el doble nmero de ceros que de unos.
5.4.1
A la secuencia de reglas que nos permite obtener una cadena del lenguaje
generado por la gramtica a partir de su smbolo inicial, se la conoce con
el nombre de derivacin de la cadena. Por ejemplo, para la gramtica del
ejercicio 5.1:
E > E + E E * E \ (E) a,
la secuencia
Se dice que una rbol est ordenado si se ha definido una relacin de orden
entre los hijos de cada nodo. Se suele entonces tomar como criterio de representacin que los nodos dibujados a la izquierda preceden a los que estn ms a la
derecha.
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
94
5. GRAMTICAS
Figu
cada nodo interior (con descendencia) est etiquetado con un smbolo
de VN\
el smbolo inicial S de la gramtica ocupa el nodo raz;
los nodos terminales (sin descendencia) u hojas slo contienen smbolos de VT o, tal vez, la cadena vaca e;
si un nodo contiene el smbolo A 6 VN y presenta como descendientes,
en este orden, a los nodos X\, X% . Xn, entonces existe una regla en
la gramtica G en la que la variable A es sustituida por X\, X< ... Xn.
A la hora de reconstruir la derivacin a partir del rbol, se nos presentan
varias alternativas segn el orden en el que efectuemos las sustituciones de
las diversas variables; al objeto de eliminar esta ambigedad es habitual
utilizar dos de ellas, llamadas derivacin por la izquierda y derivacin por
la derecha. La diferencia entre ambas reside en decidir qu variable es
sustituida en cada paso de la derivacin, la que est ms a la izquierda o
la que est ms a la derecha en la forma sentencial. Para el rbol anterior
estas derivaciones seran:
1. Por la izquierda: E > E*E > a*E > a*E+E > a*a+E >
a *a + a
2. Por la derecha: E > E* E > E * E + E > E *E + a >
E * a -f a > a * a + a.
Tomando uno de estos criterios como fijo, la correspondencia entre los rboles de derivacin y las derivaciones es biunvoca.
5.4.2 Ambigedad
Siguiendo con el ejemplo de esta seccin, observemos que la cadena
a *EBSCO
a +Publishing
a puede: ser
por dos rboles
derivacin
(ver
eBookgenerada
Collection (EBSCOhost)
- printed de
on 2/16/2016
3:10 PM
via fig. 5.5).
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
95
figu
5. GRAMTICAS
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
96
Fig
E > E + T T
T *T*F F
F -> a | (E)
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
97
Ejercicio
5.8 Las gramticas regulares son un subconjunto de las gramticas independientes del contexto. Puede ser intrnsecamente ambiguo un lenguaje
regular? Justifiqese la respuesta.
5.4.3
Recursividad
Figur
Vaales. En (a), el operador *asocia a la izquierda en (b)Lo hace a La
Dere
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
98
5. GRAMTICAS
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
99
Un problema aadido lo presentan las gramticas que contienen recursin por la izquierda no inmediata. Una gramtica de este tipo es
que presenta recursin por la izquierda porque son posibles derivaciones del
tipo
Para eliminar sistemticamente la posibilidad de tales derivaciones podemos utilizar el algoritmo siguiente, que siempre funciona si la gramtica
no tiene ciclos (producciones de la forma A > A) o producciones vacas (de
la forma A > e). Este tipo de producciones se pueden eliminar fcilmente
(ver ms abajo).
Algoritmo 5.1 Eliminacin de la recursin por la izquierda
Entrada: Una gramtica G = (Vyv, VT-, -P, S] sin ciclos ni producciones
vacas.
Salida: Una gramtica equivalente sin recursin por la izquierda.
Mtodo:
1. Numrense las variables de la gramtica arbitrariamente VN
{Ai, A-2 ... Ar}. (El algoritmo conseguir que todas las producciones de la nueva gramtica comiencen por terminal o por una
variable con subndice superior al de la variable de la parte izquierda).
2. Tomar i 1.
3. Considerar todas las producciones que comienzan por AI:
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
100
5. GRAMTICAS
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
5.4.4
101
El anlisis sintctico
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
102
5. GRAMTICAS
que, para cada subcadena de u;, devuelva el conjunto de reglas que le permitan derivarla desde cualquier variable. Observando la gramtica, obtenemos
para las subcadenas de longitud 1
La subcadena 00 slo puede ser generada partiendo de una regla que produzca alguna de las cadenas contenidas en el conjunto {AA, AE, E A, E E}.
La primera variable de estas cadenas se obtiene de la parte izquierda de
las reglas que producen el primer smbolo; el segundo, de las reglas que
producen el segundo (en este caso particular ambos smbolos coinciden).
Observando las reglas de la gramtica, la nica variable que produce alguna
de las anteriores cadenas es (7, es decir, /(OO) = {C > AA}. Procediendo
anlogamente con la subcadena 01, se obtiene /(O) = {S > EB}. Puesto que este conjunto contiene una regla cuya parte izquierda es el smbolo
inicial de la gramtica, podemos afirmar que la subcadena 01 pertenece al
lenguaje generado por G.
La subcadena 001 puede ser troceada de dos formas: 0-01 y 00-1. Esta
subcadena podr ser generada slo mediante la regla A > ES, puesto que
es la nica regla de G cuya parte derecha est formada por la concatenacin
de las variables que estn en la parte izquierda de las reglas que producen
O con las variables de la parte izquierda de las reglas que producen 01; o
bien, de las que producen 00 con las que producen 1. Con ello,
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
103
figura.
ejemplo, la celda (1,1) debe contener las reglas A > O y E > 0; y la celda
(1,3), la regla A > ES. Esta tabla puede irse rellenando por filas, ya que
el valor de la funcin / para una subcadena de longitud n slo depende de
cmo se han generado las subcadenas de longitud nl. La celda situada en
la ltima fila representar a toda la cadena o;, por lo que si contiene una regla
cuya parte izquierda es el smbolo inicial S de la gramtica como es el caso
en nuestro ejemplo, podemos afirmar que u> E L(G); si no es as, entonces
uj $ L(G}. En la figura 5.9 se observa el esquema de dependencias de la
celda (4,2); para rellenar una celda debemos tener en cuenta las reglas cuya
parte derecha est formada por las partes izquierdas de las celdas unidas por
unaEBSCO
flecha.
Por ejemplo, dicha celda, que corresponde a la subcadena 0110,
Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102
5. GRAMTICAS
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
104
debe obtenerse mirando las partes izquierdas de las reglas contenidas en los
pares de celdas [(1, 2), (3,3)], [(2, 2), (2,4)] y [(3, 2), (1,5)]. Para construir el
rbol o rboles de derivacin de la cadena analizada, leeremos la tabla de
abajo hacia arriba. El (2) que aparece en la celda (4,3) indica que la regla
D > BB se puede obtener de dos maneras: [(1,3), (3,4)] y [(3,3), (1,6)]
(ver figura 5.10), lo que permite estudiar la ambigedad de la gramtica, ya
que podemos obtener todos los rboles de derivacin de la cadena analizada.
Pasemos ahora a enunciar formalmente el algoritmo de Cocke, Younger y
Kasami.
figuraion5.10
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
105
Mtodo:
1. (j = 1) Construir los conjuntos P para i = 1, 2 . . . /. Si despus
de este paso r = A > a e P/, entonces
2. (j > 1) Si se conocen Pf, para todos los
construir
para algun K],
donde k y j k son ambos menores que j, y por tanto, P/ y
P^k han sido calculados previamente. Este paso asegura que
si A > BC E P/, entonces
A > BC > i... i+k-iC > di.. . a + j_i.
3. El paso anterior se repite para obtener todos los conjuntos Pj
(variando j desde 1 hasta I j + 1).
Ejercicio
5.12 Por medio del algoritomo de Codee, Younger y Kasami, determina si
la cadena uo = abaa pertenece al lenguaje generado por la gramtica
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
106
5.4.5
5. GRAMTICAS
A diferencia del caso de los AFD y los lenguajes regulares, no disponemos de un mtodo para construir la gramtica equivalente ms sencilla
que genere un lenguaje independiente del contexto dado. A pesar de eso,
s podemos encontrar gramticas equivalentes a una dada que no contengan ciertos tipos de producciones que dificulten el trabajo con ella y que
nos permitan estandarizar las producciones de la gramtica de modo que
todas tengan una cierta "forma normalizada". Hay tres tipos de reglas no
deseadas:
1. Derivaciones vacas (de la forma A > e).
2. Derivaciones unitarias (de la forma A > B}.
3. Smbolos intiles (smbolos no utilizados en la derivacin de ninguna
cadena de L(G)).
La gramtica que resulta de estas operaciones de eliminacin la denominaremos gramtica simplificada. Este nombre puede ser equvoco, ya que en
algunos casos la versin no simplificada puede resultar ms fcil de entender
para el lector.
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
107
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
108
5. GRAMTICAS
Salida: Una gramtica equivalente G' = (V^, VT, -P', 5') sin producciones
vacas.
Mtodo:
1. Tomar P' = P.
2. Encontrar V aplicando el algoritmo anterior.
3. Para cada produccin A > a G P, aadir a P' todas las
producciones que puedan ser obtenidas de ella borrando de a
una o ms de las variables anulables que contenga.
4. Eliminar de P' todas las producciones vacas, duplicadas y de
la forma A > A que contenga.
5. Si S E Vf, tomar V^ = VN U {S1} y aadir las reglas
a P'; en otro caso, tomar
Ejercicio
5.15 Elimnense las producciones vacas de la gramtica:
en EBSCO
la que
aparecen
lasCollection
reglas de
derivacin
unitarias
Publishing
: eBook
(EBSCOhost)
- printed
on 2/16/2016
3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
109
Comencemos con la variable E. Un primer paso para eliminar la produccin unitaria de esta variable puede consistir en sustituirla por todas las
producciones que se pueden obtener a partir de las reglas de T, con lo que
las reglas para E quedaran,
mientras
(c) Tomar
2. Construir el conjunto de producciones P': si B > a G P y no
es una produccin unitaria, aadir la regla A Y a a P' para
toda A que tal que B^VAPublishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
EBSCO
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
110
5. GRAMTICAS
Ahora construiremos el conjunto VA de smbolos accesibles desde el smbolo inicial. De nuevo procederemos recursivamente. Sea V el conjunto de
smbolos accesibles desde S en i o menos pasos. Evidentemente, VQ = {S} y
Vi EBSCO
= {5,
o, A, B}.
Para
construir
V2 tendremos
aadir
Publishing
: eBook
Collection
(EBSCOhost)
- printed onque
2/16/2016
3:10aPMVivialos smbolos
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
111
accesibles desde A y desde B, con lo que V2 = {S, a, A,B, b}. Puesto que
ya no hay nuevos smbolos accesibles podemos concluir que VA V<. Las
variables D, E y c (de hecho este smbolo ya no apareca en ninguna regla)
no son accesibles desde S y pueden ser eliminadas. La gramtica resultante
queda finalmente
mientras
(c) Tomar
2. Construir la gramtica G" eliminando de G todos los smbolos,
junto con sus reglas, que no aparezcan en VNE3. Construir el conjunto VA de smbolos de G" accesibles desde S:
(a) Tomar i = O y VQ {S}.
(b) Hacer
mientras
(c) Tomar
4. Construir la gramtica final G' sin smbolos intiles eliminando
de G" todos los smbolos, junto con sus reglas, que no estn en
VA. : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
Publishing
EBSCO
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
112
5. GRAMTICAS
Conviene recordar que el algoritmo de eliminacin de producciones unitarias puede generar, en algunos casos, smbolos intiles. Por tanto, para
garantizar que la gramtica queda simplificada al final del proceso, el orden
de aplicaciones de las transformaciones debera de ser el seguido en esta
seccin:
1. Eliminar las derivaciones vacas.
2. Eliminar las producciones unitarias.
3. Eliminar los smbolos intiles.
No obstante, una aplicacin preliminar del ltimo algoritmo puede mejorar
la eficiencia del proceso.
Ejercicio
5.16 Simplifquese la gramtica:
5.4.6
Formas normalizadas
Una vez que hemos simplificado la gramtica de acuerdo con los criterios mencionados, las GIC pueden adoptar dos formas, llamadas formas
normalizadas, que resultan tiles en aplicaciones especficas. La primera
de ellas es la forma normalizada de Chomsky, que nos va a permitir aplicar el algoritmo de anlisis sintctico de Cocke, Younger y Kasami visto
anteriormente, la otra es la llamada forma normalizada de Greibach, til
principalmente para obtener un autmata con pila asociado a la gramtica
menos indeterminista que en el caso general. En ambos casos, proporcionaremos argumentos de tipo constructivo para justificar que cualquier GIC se
puede escribir en forma normalizada. Es importante destacar que, incluso
con estas restricciones, no queda unvocamente determinada la forma de
una gramtica que genera un lenguaje dado. En otras palabras: es posible
la existencia
de :diferentes
GIC(EBSCOhost)
simplificadas
EBSCO Publishing
eBook Collection
- printedyonnormalizadas
2/16/2016 3:10 PM equivalentes.
via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
113
Para ello, observamos que las reglas A > O y -B > 1 ya tienen una de
las formas admitidas. Las reglas S > QB 1A, A > OS y B > IS
tienen longitud 2 pero aparecen terminales en el lado derecho, por lo que
sustituimos estos terminales por nuevas variables que slo producen dicho
terminal, ZQ > O y Z\ > 1. Con estos cambios la gramtica queda
El algoritmo siguiente permite realizar este proceso con cualquier gramtica simplificada.
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
114
5. GRAMTICAS
simplificada.
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
TI5
Descrbase L(G).
2.
3.
5.19 Encuentra una gramtica en forma de Chomsky que genere el conjunto de cadenas capica sobre el alfabeto {a, b}.
5.20 Proporciona cotas superior e inferior para la longitud de una cadena
w G L(G) en funcin del nmero de pasos de la derivacin si G est en
forma de Chomsky.
5.21 Escribe una gramtica en la forma normalizada de Chomsky equivalente a la expresin regular (a + b)*b(a + b)*a.
5.22 A la vista del ejercicio anterior, es eficiente el algoritmo CYK para
determinar si x L(G) para el caso en que G sea regular? Razona la
respuesta.
5.23 Dada la gramtica de la seccin 5.4, comprueba si la cadena w
001011 pertenece a L(G}. Dibuja todos los rboles de derivacin de w.
Qu
se puede concluir sobre la ambigedad de la gramtica?
EBSCO Publishing : eBook Collection (EBSCOhost) - printed on 2/16/2016 3:10 PM via
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD
AN: 318032 ; Carrasco, Rafael C., Calera Rubio, Jorge, Forcada Zubizarreta, Mikel L..;
Teoria de lenguajes, gramaticas y automatas para informaticos
Account: ns145102
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
116
5. GRAMTICAS
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
1T7
y las reglas
por las reglas
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
118
5. GRAMTICAS
Ejercicios
5.24 Escribe en forma de Greibach la gramtica definida por las siguientes
reglas de derivacin:
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
Captulo 6
Lenguajes independientes
del contexto
6.1
Algunas operaciones con lenguajes independientes del contexto producen siempre como resultado lenguajes que son tambin independientes del
contexto. Decimos entonces que los LIC son estables bajo dicha operacin.
Ejemplos de operaciones bajo las cuales los LIC son estables son:
unin, concatenacin y clausura;
sustitucin;
inversin.
Vamos a justificar estas propiedades, mostrando que se puede escribir una
GIC para los lenguajes resultantes de la operacin. En cambio, los LIC no
son estables bajo:
interseccin;
complementacin;
Unin: Supongamos que tenemos dos gramticas no contextales G\
(Vjvi,Vri,Pi,.Si) y G2 - (V)v2,V r T2,-P2,5 2). Es sencillo contruir G =
(VNjVT,P,S) tal que L(G) = L(Gi) U L(G 2 ) tomando:
119
Copyright 2000. Digitalia. All rights reserved. May not be reproduced in any form without permission from the publisher, except fair uses permitted under U.S.
or applicable copyright law.
120
La nueva regla S > SiS? es la que concatena las cadenas de los dos
lenguajes.
Clausura: En este caso, para que G sea tal que L(G] = L(G\}* podemos
definir: