Está en la página 1de 18

1 Lenguajes y Gramticas

1.1 INTRODUCCIN
En cualquier lenguaje humano vemos que hay una serie de componentes que se
repiten. Cada lenguaje tiene su alfabeto, por ejemplo el alfabeto latino, el griego, el
chino; concatenando smbolos se forman las palabras y concatenando palabras se
obtienen las frases. Ahora bien, no basta concatenar palabras correctas para obtener
frases, se deben seguir unas reglas de sintaxis determinadas por la gramtica propia de
cada lengua en cuestin. De manera que cuando leemos un prrafo en una cierta lengua,
pongamos en espaol, podemos detectar tres tipos de errores: puede ocurrir que
encontremos smbolos que no pertenecen al alfabeto del espaol, por ejemplo ma*7a;
podra tambin ocurrir que tengamos faltas de ortografa, las palabras estn todas
escritas con caracteres del alfabeto latino, pero no todas las palabras son correctas,
ejemplo: vurro el que lo lea; por ltimo podemos encontrar que aunque las palabras
sean todas en espaol una frase no tenga sentido porque su sintaxis no es correcta, por
ejemplo: yo tu entonces casa.
As, por ejemplo, cuando escribimos un trozo de programa podemos cometer cualquiera
de los tres tipos de errores. Los programas modernos llevan generalmente incorporados
analizadores lxicos y sintcticos, de modo que cuando se detecta un error el programa
avisa dnde est y de qu tipo es.
1
Inmaculada Luengo

1. Lenguajes y Gramticas

1.1 Introduccin

Las definiciones que veremos a continuacin hacen abstraccin del alfabeto concreto,
los smbolos admitidos como vlidos, y generalizan el concepto de reglas gramaticales y
gramticas.

1.2 ALGUNAS DEFINICIONES IMPORTANTES


1.2.1

SMBOLO.

La idea de smbolo es un concepto primario y por tanto indefinible (como el concepto


de punto o recta en Geometra). Diremos que es cualquier tipo de carcter escrito.

Ejemplos:
a,*, 2, , ta, son 5 smbolos.

1.2.2

ALFABETO.

Un alfabeto es un conjunto finito de smbolos. Se suele denotar con la letra .

Ejemplos:
1 = {a ,b ,L , z} 2 = {0 ,1} 3 = {la ,ba , ca , da} 4 = {0 ,1,L ,9} son 4 alfabetos.

1.2.3

PALABRA.

Dado un alfabeto una palabra sobre dicho alfabeto es la yuxtaposicin finita de


smbolos del alfabeto. Representamos una palabra genrica con la letra griega .

Ejemplos:
Camisa, door, table, for, antena, werse, aaaa, son palabras sobre 1
001100, 0, 1111, 10 son palabras sobre 2
baba, lacada, caca, dalala, son palabras sobre 3
0, 18, 01214, 9999 son palabras sobre 4
2
Inmaculada Luengo

1. Lenguajes y Gramticas

1.2.4

1.2 Algunas Definiciones Importantes

LONGITUD DE UNA PALABRA.

Llamamos longitud de la palabra al nmero de smbolos del alfabeto yuxtapuestos


para formarla. Se escribe .

Ejemplos:
Camisa tiene longitud 6 sobre 1 . Con smbolos sera = camisa, = 6
Cada tiene longitud 4 sobre 1 , pero longitud 2, si la consideramos sobre 2

1.2.5

PALABRA VACA

Por convenio se acepta que sobre cualquier alfabeto existe una palabra que llamamos
palabra vaca, cuya longitud es 0 y que denotamos por . Entindase que no es un
espacio en blanco, es slo un concepto.

1.2.6

UNIVERSO DE UN ALFABETO

El conjunto de todas las palabras sobre un alfabeto , incluida la palabra vaca, recibe
el nombre de universo del alfabeto y se representa por * .

1.2.7

LENGUAJE.

Dado un alfabeto , un lenguaje sobre es un conjunto de palabras sobre dicho


alfabeto, es decir un subconjunto de * .

Ejemplos:
L1 = {Camisa, door, table, for, antena, werse, aaaa} es un lenguaje sobre 1
L2 = {001100, 0, 1111, 10} es un lenguaje sobre 2

L3 = {baba, lacada, caca, dalala} es un lenguaje sobre 3


L4 = {0, 18, 01214, 9999} es un lenguaje sobre 4

3
Inmaculada Luengo

1. Lenguajes y Gramticas

1.2 Algunas Definiciones Importantes

L5 = { 4 : ter min a en 5} , es decir los nmeros que terminan en 5 forman un


lenguaje sobre 4 .
En particular el conjunto de todas las palabras * es un lenguaje, el conjunto vaco es
un lenguaje, y el conjunto L = {} cuya nica palabra es la palabra vaca es un lenguaje
y esto es vlido para cualquier alfabeto .

1.3 OPERACIONES CON PALABRAS


1.3.1

CONCATENACIN DE PALABRAS.

Sean u y v dos palabras sobre el mismo alfabeto , la concatenacin de u y v es una


nueva palabra que se obtiene yuxtaponiendo primero u y detrs v, escribimos

= uv.
Ejemplos:
Sea u = 01, v = 100 la concatenacin de ambas es = uv= 01100
Sea u = az, v= men, la concatenacin es = uv = azmen

1.3.2

PROPIEDADES DE LA CONCATENACIN DE PALABRAS.

i) No es conmutativa, en general no es lo mismo uv que vu.


ii) Es asociativa, es decir cualesquiera que sean las palabras u, v y w sobre el mismo
alfabeto, se tiene que (uv)w = u(vw).
Esta propiedad nos permite concatenar cualquier nmero finito de palabras sin
tener que poner los parntesis. Escribiremos uvw.
iii) |uv|=|u|+|v| es decir la longitud de la palabra formada por la concatenacin de dos
palabras, es la suma de las longitudes de cada una de ellas.
iv) La palabra vaca es el elemento neutro de la concatenacin. En efecto
u=u =u.

4
Inmaculada Luengo

1. Lenguajes y Gramticas

1.3.3

1.3 Operaciones con Palabras

PREFIJOS Y SUFIJOS DE UNA PALABRA.

Sea una palabra sobre cierto alfabeto . Sean u y v dos palabras sobre tales que

=uv. Decimos que u es un prefijo y que v es un sufijo de . Observemos que ambas


definiciones no hacen ms que generalizar los conceptos de prefijo y sufijo del lenguaje
habitual.

Ejemplos:
Si = camisa, entonces los prefijos de son
u0 = , u1 = c , u2 = ca , u3 = cam , u4 = cami , u5 = camis , u6 = camisa
Y los sufijos
v0 = , v1 = a , v2 = sa , v3 = isa , v 4 = misa , v5 = amisa , v6 = camisa

1.3.4

INVERSIN DE UNA PALABRA.

Sea una palabra sobre cierto alfabeto . Llamamos inversa (o reflejada) de la palabra

, y la representamos por 1 , a la palabra obtenida al escribir los smbolos que


constituyen la palabra en orden inverso. Si = a1a 2 L a n , su reflejada sera

1 = a n L a 2 a1 .

Ejemplos:
Si, como antes, tomamos = camisa, entonces 1 = asimac
Puede ocurrir que una palabra coincida con su inversa como es el caso de = ana; tales
palabras reciben el nombre de palndromos.

1.3.5

PROPIEDADES DE LA INVERSIN Y LA CONCATENACIN DE

PALABRAS.
i)

(uv )1 = v 1u 1 es decir la palabra inversa (o reflejada) de la concatenacin de dos


palabras es la concatenacin de las palabras inversas (o reflejadas) en orden
contrario
5
Inmaculada Luengo

1. Lenguajes y Gramticas

ii)

1.3.6

1.3 Operaciones con Palabras

1 = , es decir, la longitud de una palabra y su inversa coinciden siempre.

POTENCIAS DE UNA PALABRA

Sea una palabra y k un nmero entero, definimos

k)
si k > 0
LL

k
=
si k = 0

k )
1 LL 1 si k < 0

Ejemplos:

Sea = 91 sobre el alfabeto =0,1,9, entonces ser

3 = 919191, -1 = 19, -2 =1919, 0 =


Sea = camisa sobre el alfabeto 1 , entonces ser

-3= ( -1)3 = (asimac)3 = asimacasimacasimac

1.4 OPERACIONES CON LENGUAJES


Hemos definido los lenguajes como conjuntos de palabras, es decir subconjuntos del
conjunto te todas las palabras sobre un alfabeto fijo . Como tales subconjuntos se
puede definir las operaciones usuales con conjuntos como la unin, la interseccin y la
complementacin, que tendrn todas las propiedades ya conocidas. Destacaremos slo
las ms usadas.
1.4.1

UNIN DE LENGUAJES

Dados dos lenguajes L1 y L2, la unin de ambos naturalmente es


L1 L2 = { : L1 L2 }

1.4.2

INTERSECCIN DE LENGUAJES.

Dados dos lenguajes L1 y L2, la interseccin de ambos naturalmente es


L1 L2 = { : L1 y L2 }

6
Inmaculada Luengo

1. Lenguajes y Gramticas

1.4.3

1.4. Operaciones con Lenguajes

COMPLEMENTARIO DE UN LENGUAJE

Dado un lenguaje L, el lenguaje complementario viene dado por


L = { : L}
1.4.4

CONCATENACIN DE LENGUAJES

Dados dos lenguajes L1 y L2, la concatenacin de ambos viene son todas las palabras
que se pueden obtener concatenando una palabra de L1 con una de L2
L1 L2 = {xy : x L1 , y L2 }

Ejemplos:

Sea = 0,1 y sean dos lenguajes L1 =,00,101 y L2 =01,101,001,11, se tiene


L1 L2 =, 00, 101, 01, 001,11
L1 L2 =101
L1 L2=01,101,001,11, 0001, 00101,00001,0011,10101,101101,101001,10111

1.4.5

INVERSO DE UN LENGUAJE

Sea L un lenguaje, su lenguaje inverso viene dado por las palabras inversas de las de L,
es decir

L1 = 1 : L

1.4.6

POTENCIAS DE UN LENGUAJE

Sea L un lenguaje y k un nmero entero, definimos la potencia k-sima de L como sigue


k)
si k > 0
L LL L

k
L = {}
si k = 0

k )
L1 LL L1 si k < 0

Ejemplos:

Sea L =, 1101,10, ser


L-1 = , 1011,01,
L2 = , 1101,10, (1101)(1101),(1101)(10),(10)(1101),(10)(10)=
7
Inmaculada Luengo

1. Lenguajes y Gramticas

1.4. Operaciones con Lenguajes

= , 1101,10, 11011101,110110, 101101, 1010


L-2 = , 1011,01, (1011)(1011), (1011)(01), (01)(1011),(01)(01)
(Los parntesis son innecesarios, los hemos puesto para que sirvan de orientacin)

1.4.7

CLAUSURA POSITIVA DE UN LENGUAJE

Sea L un lenguaje, definimos su clausura positiva como

L+ = Lk
k =1

es decir todas las palabras que se obtienen concatenando cualquier nmero finito de
palabras de L.

1.4.8

CIERRE DE KLEENE DE UN LENGUAJE.

Sea L un lenguaje, definimos el cierre de Kleene de L como

L* = Lk
k =0

Es inmediato de la definicin que


L* = L+ L0 = L+ {}.
Si consideramos, como en el ejemplo anterior, L =, 1101,10, la clausura positiva de
L son todas las palabras que se pueden formar tomando bien 1101, o bien 10 y
concatenando esas dos palabras en el orden que sea, cuantas veces se quiera, pero
siempre con slo esas dos palabras.
(1101)(1101)(1101)(1101) es una palabra de L4 y por tanto tambin de L+
(10)(1101)(10) es una palabra de L3 y por tanto tambin de L+
La palabra vaca siempre est en L*, cualquiera que sea L.

8
Inmaculada Luengo

1. Lenguajes y Gramticas

1.4.9

ALGUNAS

1.4. Operaciones con Lenguajes

PROPIEDADES

DE

LAS

OPERACIONES

CON

LENGUAJES

Ya hemos dicho que las propiedades de la unin, la interseccin y la complementacin


son las correspondientes al lgebra de Boole formado por los lenguajes sobre un
alfabeto fijo. En cuanto a las otras operaciones tenemos
i)

La concatenacin de lenguajes no es conmutativa en general L1 L2 L2 L1

ii) La concatenacin es asociativa L1 ( L2 L3 ) = ( L1 L2 )L3


iii) La concatenacin es distributiva respecto a la unin
L1 (L2 L3 ) = L1 L2 L1 L3

(L1 L2 )1 = L21 L11

1.5 GRAMTICAS FORMALES


Las gramticas de todos los lenguajes humanos conocidos tienen una cosa en comn:
estn organizadas por frases. Digamos a grosso modo que una frase es una unidad de
lenguaje. A su vez una frase para que sea sintcticamente correcta debe estar formada
por sujeto y predicado; el predicado debe incluir un verbo; si el verbo es transitivo debe
llevar un objeto directo, etc.. Tratamos de expresarlo con smbolos:
<frase>::= <sujeto><predicado>
<sujeto>::= juan / antonio / mara / pepa
<predicado>::= <verbo transitivo><objeto directo>
<predicado>::= <verbo intransitivo>
<verbo transitivo>::= ama / lava / peina / adora
<objeto directo>::= paula / antonio / sultn
<verbo intransitivo>::= corre / salta / camina
Si partimos de <frase> y seguimos estas reglas podemos obtener
<frase> <sujeto><predicado> mara<predicado>
mara <verbo transitivo><objeto directo>
mara ama <objeto directo> mara ama a sultn.
9
Inmaculada Luengo

1. Lenguajes y Gramticas

1.5.Gramticas Formales

Hemos construido una frase utilizando slo las reglas anteriores. Decimos que mara
ama a sultn es una frase de la gramtica. De modo anlogo
<frase> <sujeto><predicado> juan<predicado>
juan <verbo intransitivo> juan camina
As juan camina es otra frase de nuestra gramtica.
Queremos hacer una definicin formal de gramtica, para ello vamos a tratar de abstraer
lo principal de lo que en el lenguaje normal llamamos gramtica.
Observamos que hay dos tipos de componentes: los que escribimos entre corchetes <
> y las que no. Llamaremos a esos dos tipos de objetos no terminales y terminales,
respectivamente. Obsrvese que una verdadera frase est escrita slo con terminales y
los no terminales se usan slo en pasos intermedios, para construir con sintaxis correcta.
Lo fundamental de la gramtica son las reglas que nos van a permitir formar frases
correctas. Slo las frases que formemos de acuerdo a esas reglas sern frases correctas
del lenguaje de nuestra gramtica.
Antes de pasar a definir lo que es una gramtica, daremos unas definiciones previas.

1.5.1

REGLA O PRODUCCIN.

Dado un alfabeto , llamamos regla a un par ordenado que se escribe u:= v, donde u y v
son palabras sobre . En realidad una regla nos va a permitir cambiar la palabra u por la
palabra v siempre que queramos, (pero no al revs, v por u).

1.5.2

REGLA COMPRESORA

Una regla u:= v, decimos que es compresora si la longitud de la palabra de la izquierda


de la regla, es mayor que la longitud de la palabra de la derecha; con smbolos
escribimos
u:= v es regla compresora si u>v
10
Inmaculada Luengo

1. Lenguajes y Gramticas

1.5.3

1.5.Gramticas Formales

DERIVACIN DIRECTA.

Sea x:= y una regla sobre un alfabeto y sea una palabra tal que = uxv, entonces
decimos que la palabra w = uyv es una derivacin directa de y lo escribimos w o
bien uxv uyv.

1.5.4

DERIVACIN

Decimos que la palabra w se obtiene por derivacin de , y lo escribimos w,


cuando w se obtiene de aplicando varias reglas sucesivamente (ms de una vez), o sea
usando ms de una derivacin directa.

Ejemplos:

Sea ={a,.,z, sean las reglas (1) ab:= aba, (2) aa:= o, (3) ma:=tea. Sea la palabra
calabaza, podemos escribir
(1)

i)

calabaza calabaaza (calabaza calabaaza, usando la regla (1))

ii)

calabaaza calaboza

(2 )

(3 )

iii) manta teanta


(3 )

iv) maestro teaestro


v)

(3 )

rizoma rizotea
(1 )

(2 )

(1)

vi) caballo cabaallo cabollo cabaollo


As, calabaaza es una derivacin directa de calabaza y cabaollo es una derivacin
de caballo. Escribimos
calabaza calabaaza (en un paso)
caballo * cabaollo (en ms de un paso)

1.5.5

GRAMTICA.

Una gramtica es un objeto G = (T, N, S, P), donde


11
Inmaculada Luengo

1. Lenguajes y Gramticas

1.5.Gramticas Formales

T es un alfabeto cuyos smbolos llamamos smbolos terminales de la


gramtica.

N es un alfabeto tal que T N = , cuyos smbolos llamamos smbolos no


terminales de G.

S es un smbolo no terminal sealado al que llamamos axioma de la gramtica.

P es un conjunto de reglas definidas sobre el alfabeto = T N, tales que en


la parte izquierda de todas las reglas aparece al menos un smbolo no terminal.

Ejemplos:

Sea G1 = (T, N, S, P) siendo T = 0,1,2 el conjunto de smbolos terminales, N =

A, B, C, D el alfabeto de los no terminales, en tal caso se tiene =0, 1, 2, A, B, C,


D, sea el axioma el smbolo no terminal A, y sea P =A::=1B2, 1B::=00, 1A::=CD,
C::= D1, D::=2. Asi G1 = (T, N, S, P) es una gramtica
En la gramtica que pusimos anteriormente como ejemplo tenemos

T = juan, antonio, mara, pepa, ama, lava, peina, adora, paula, sultn, corre,
salta, camina

N ={<frase>, <sujeto>, <predicado>, <verbo transitivo>, <verbo intransitivo>,


<objeto directo>}

<frase> es el axioma

P es el conjunto formado por las diecisiete reglas


<frase>::= <sujeto><predicado>
<sujeto>::= juan / antonio / mara / pepa
<predicado>::= <verbo transitivo><objeto directo>
<predicado>::= <verbo intransitivo>
<verbo transitivo>::= ama / lava / peina / adora
<objeto directo>::= paula / antonio / sultn
<verbo intransitivo>::= corre / salta / camina.

De nuevo tenemos una gramtica G2 = (T, N, <frase>, P)


El objetivo de la creacin de una gramtica es obtener todas las palabras posibles que se
puedan derivar desde el axioma y que estn escritas slo con smbolos terminales.

12
Inmaculada Luengo

1. Lenguajes y Gramticas

1.5.6

1.5.Gramticas Formales

FORMA SENTENCIAL.

Dada una gramtica G = (T, N, S, P) y una palabra sobre el alfabeto = T N,


decimos que es una forma sentencial de G, si puede derivarse desde el axioma, es
decir si S* .

1.5.7

SENTENCIA.

Dada una gramtica G = (T, N, S, P) y una palabra que slo contiene smbolos
terminales (T*) decimos que es una sentencia de G si puede derivarse desde el
axioma, es decir si S* .
Segn estas definiciones, todas las sentencias son formas sentenciales, pero no al revs.
Cualquier derivacin del axioma es una forma sentencial, pero slo son sentencias las
derivaciones que contengan exclusivamente smbolos terminales de G.

Ejemplos:

Sea la gramtica G3 = (T, N, S, P) dada por S:= xSy / xy, siendo T = {x,y}, el nico
no terminal es S, que adems necesariamente es el axioma. Las nicas derivaciones
posibles partiendo de S son del tipo
S xSy xxSyy .xxxxyyyy (tantas y como x)
xSy, xxSyy son formas sentenciales por que se derivan del axioma; no son

sentencias porque ambas palabras contienen el smbolo S que es no terminal.


xxxyyy es una sentencia porque puede ser derivada del axioma (derivarla) y slo

contiene smbolos terminales.


En la gramtica G2 = (T, N, <frase>, P) una forma sentencial podra ser
mara <verbo transitivo><objeto directo>
Y una sentencia
mara lava (a) antonio

13
Inmaculada Luengo

1. Lenguajes y Gramticas

1.5.8

1.5.Gramticas Formales

LENGUAJE DE UNA GRAMTICA.

Sea G = (T, N, S, P) una gramtica. Llamamos lenguaje de G al conjunto de todas las


palabras sobre T que se puedan derivar desde el axioma, es decir al conjunto de todas
las sentencias

L(G ) = *T : S *
Ejemplos:

Sea la gramtica G1 dada en los ejemplos anteriores cuyas reglas son S:= xSy / xy Las
nicas derivaciones posibles partiendo de S son del tipo
S xSy xxSyy .xxxxyyyy (tantas y como x)
Por tanto podemos escribir L(G) = {xnyn : n>0}.
Si consideramos la gramtica G2 las sentencias son del tipo maria lava antonio juan
corre , etc, Todas las sentencias constituyen el lenguaje de G2.

1.5.9

GRAMTICAS EQUIVALENTES.

Dos gramticas decimos que son equivalentes si tienen el mismo lenguaje asociado.
Ejemplos:

Sean G1=(T ={x,y}, N ={S}, S, P ={S:= xSy, S:= xy}) y


G2=(T ={x,y}, N ={A,B}, A, P ={A:= xBy, B:= xBy, B:= })
Ambas gramticas son equivalentes, G1 G2.
Normalmente las reglas cuyas partes izquierdas coinciden, se escriben una a
continuacin de otra, separadas por una barra.

No escribimos S:= xSy, S:= xy, sino S:= xSy / xy

No escribimos B:= xBy, B:= , sino B:= xBy / .

El mayor problema que nos encontramos es dada una gramtica y una palabra escrita
sobre el alfabeto de smbolos terminales, decidir si la palabra pertenece o no al lenguaje
de la gramtica, es decir si se puede obtener como una derivacin del axioma.
14
Inmaculada Luengo

1. Lenguajes y Gramticas

1.5.Gramticas Formales

1.5.10 CLASIFICACIN DE LAS GRAMTICAS.

Las gramticas fueron clasificadas por Noah Chomsky, atendiendo a la forma de las
reglas en:

Gramticas tipo 0 o sin restricciones: son las gramticas ms generales, no se


pone ninguna condicin a sus reglas.

Gramticas tipo 1 o dependientes del contexto: la parte derecha de todas las


reglas debe obtenerse por sustitucin de exactamente un smbolo no terminal de
la palabra que aparece a la izquierda de dicha regla y no hay ninguna regla
compresora salvo quiz S:= , siendo S el axioma. Formalmente
P = {vAw:=vxw : v,w,x, AN}

Gramticas tipo 2 o independientes del contexto: la parte izquierda de todas las


reglas debe ser exactamente un nico no terminal y no hay ninguna regla
compresora salvo quiz S:= , siendo S el axioma. Formalmente
P = {A:= w : w , AN}

Gramticas tipo 3 o regulares: no hay ninguna regla compresora salvo quiz S:=
, siendo S el axioma; adems la parte izquierda de todas las reglas debe ser
exactamente un nico no terminal y la parte derecha o es un nico smbolo
terminal o bien es un terminal seguido de un no terminal o al revs. Las
gramticas regulares se dividen en dos clases atendiendo a esta ltima condicin.
i) Gramtica lineal a la izquierda, sus reglas son de uno de los tipos
siguientes A:= b, A:= Ab, siendo AN , bT.
ii) Gramtica lineal a la derecha, sus reglas son de uno de los tipos siguientes
A:= b, A:= bA, siendo AN , bT.

Ejemplos:

Sean T = {0,1,2}, N = {A, B, C, D}, A el axioma y las reglas


i)

A:= BC1

ii)

1B1A:=1B11B1
15
Inmaculada Luengo

1. Lenguajes y Gramticas

iii)

1BC:= 11

iv)

A:=1D

v)

B:= 0

vi)

D:= B1

1.5.Gramticas Formales

La regla i) es del tipo independiente del contexto.


La regla ii) es del tipo dependiente del contexto (se cambia el no terminal A por 1B1)
La regla iii) es del tipo general.
La regla iv) es regular, lineal a la derecha (el terminal de la parte derecha de la regla
est a la derecha).
La regla v) es regular (vlida para gramticas regulares a derecha o izquierda).
La regla vi) es regular, lineal a la izquierda (el terminal de la parte derecha de la regla
est a la izquierda).
Obsrvese que se da la inclusin descendente
G0 G1 G2 G3
Ms adelante estudiaremos con ms detenimiento las gramticas regulares y las
independientes del contexto.

1.5.11 RBOLES DE DERIVACIN.

Son una forma de representacin de las derivaciones a partir del axioma de una
gramtica. Slo se puede representar con rboles las derivaciones en gramticas al
menos dependientes del contexto.
Se dibuja un rbol cumpliendo las siguientes condiciones:

Un nico nodo raz que es el axioma

los nodos hojas son smbolos terminales

de cada nodo no terminal salen tantas ramas como smbolos tiene la parte
derecha de la regla que se va a utilizar.

Ejemplos:

Sea de nuevo la gramtica S:= xSy / xy, y sea la derivacin ya mencionada


S xSy xxSyy xxxyyy
Su rbol de derivacin es
16
Inmaculada Luengo

1. Lenguajes y Gramticas

1.5.Gramticas Formales

Fig. 1.1. rbol de derivacin de xxxyyy.

La palabra derivada se obtiene leyendo los smbolos correspondientes a los nodos hojas
de izquierda a derecha.

Ya hemos visto en la clasificacin de las gramticas que las reglas compresoras no son
aceptadas en las gramticas tipos 1,2 y 3, salvo S:= , donde S es el axioma. A pesar de
esa restriccin con frecuencia encontramos gramticas con reglas del tipo A:= , donde
A es un no terminal distinto del axioma. No es un gran problema a la hora de tratar
dichas gramticas porque es fcil construir una gramtica equivalente a la dada sin
reglas compresoras no permitidas.

1.5.12 ELIMINACIN DE REGLAS COMPRESORAS NO PERMITIDAS.

Sea G = (T, N, S, P) una gramtica y sea A:= una de sus reglas donde A no es el
axioma. Si eliminamos la regla A:= y por cada regla w:=uAv aadimos la regla w:=
uv. la gramtica obtenida es equivalente a la dada.
Ejemplos:

Sea la gramtica G = (T, N, S, P) cuyas las reglas son


S:= aMa / bNb
M:= aMa / N /
N:= bNb /bb
(Sobreentendemos que las maysculas son los smbolos no terminales y las minsculas
son los terminales). Tenemos la regla compresora M:= , que queremos eliminar. Hay

17
Inmaculada Luengo

1. Lenguajes y Gramticas

1.5.Gramticas Formales

slo dos reglas tales que en la parte derecha aparece M, S:= aMa y M:= aMa por tanto
aadimos una regla S:= aa y otra regla M:= aa y nos queda la nueva gramtica
S:= aMa / aa / bNb
M:= aMa / aa / N
N.= bNb / bb
que es equivalente a la dada.

18
Inmaculada Luengo

También podría gustarte