Está en la página 1de 8

Gramticas Regulares

Elena Gaudioso Vzquez y Toms Garca Saiz

Introduccin
La descripcin de un lenguaje en base a gramticas es importante ya que
permite analizar la estructura gramatical del lenguaje.
La descripcin de una gramtica se basa en los siguientes cuatro elementos:
Un conjunto finito de smbolos que forman las cadenas del lenguaje. Estos
smbolos se denominan smbolos terminales y al conjunto que los agrupa
Alfabeto de smbolos terminales.
Un conjunto finito de smbolos denominados smbolos no terminales que
actuan a modo de variables. Cada smbolo no terminal representa un
conjunto de cadenas que se derivan a partir de ese smbolo no terminal.
Un smbolo inicial, que ser un smbolo contenido en el conjunto de
smbolos no terminales y a partir del cual se comienzan a realizar las
derivaciones de la gramtica.
Un conjunto finito de producciones o reglas de reescritura que representan
la definicin recursiva de un lenguaje.
De manera informal se puede decir que derivar una gramtica consiste en
ir substituyendo los smbolos no terminales por el lado derecho de la regla de
reescritura en la que dichos smbolos no terminales aparecen en el lado izquierdo.
Cualquier derivacin de una gramtica se inicia con la derivacin del smbolo
inicial.
A modo de ejemplo inicial consideremos la siguiente gramtica, con smbolo
inicial S:
S xA
S yB
A xA
Ax
B yB
By
Una posible derivacin de la gramtica sera la siguiente:
AxA
Ax
S xA = S xxA = S xxx
Esta derivacin generara la cadena xxx.
Otra posible derivacin podra ser la siguiente:
ByB
By
S yB = S yyB = S yyy
que generara la cadena yyy
1

Un tipo especial de produccin es aquella cuyo lado derecho contiene el


smbolo . En este caso, se considera que esta produccin deriva a vaco y no
genera ningn smbolo adicional. As por ejemplo si consideramos la siguiente
gramtica:
S xA
A xA
A
una posible derivacin sera:
AxA
A
S xA = S xxA = S xx
El conjunto de cadenas que se pueden derivar de una determinada cadena
forman un lenguaje. As, dada una gramtica G, el lenguaje que genera se
representa mediante la notacin L(G).
Dada una determinada gramtica estructurada por frases, la propia estructura
de las reglas de reescritura o producciones determinar de qu tipo es dicha
gramtica.
En el siguiente apartado profundizaremos en la estructura de las gramticas
regulares.

Gramticas Regulares
Las producciones de una gramtica regular se ajustan a la siguiente estructura:
El lado izquierdo de las reglas de reescritura contienen un nico smbolo no
terminal
El lado derecho de las reglas de reescritura contienen: un nico smbolo
terminal, un smbolo terminal seguido de un smbolo no terminal, o el
smbolo
De acuerdo a estas condiciones, las gramticas vistas en el apartado anterior
son gramticas regulares.
Dada una gramtica regular el lenguaje que genera es siempre un lenguaje
regular que puede representarse igualmente mediante un autmata finito o
mediante una expresin regular.
A continuacin mostramos ms ejemplos de gramticas regulares:
La siguiente gramtica regular:
S
2

es una gramtica regular que genera la cadena vaca


Dado el alfabeto = {x, y}, la siguiente gramtica regular:

S xS
S yS
S

genera el lenguaje formado por todas las cadenas que se pueden formar con
el alfabeto , esto es,
Dado el alfabeto = {x, y}, la siguiente gramtica regular, con smbolo
inicial S:
S xS
S yS
A yA
A xA
A

genera el lenguaje vaco, esto es, L(G) =


Dado el alfabeto = {x, y}, la siguiente gramtica regular, con smbolo
inicial S:
S xA
Ay
A xB
B

genera el lenguaje formado nicamente por dos cadenas, L(G) = {xx, xy}
Puesto que las gramticas regulares y los autmatas finitos reconocen ambos
los lenguajes regulares, en la siguiente seccin vamos a comprobar cmo, dada
una gramtica regular, se puede construir el autmata finito equivalente.
3

Paso de una gramtica regular al autmata finito


equivalente
Teorema 1. Para cada alfabeto y para cada gramtica regular G, existe un
autmata finito M equivalente, esto es L(G) = L(M)
En realidad, este teorema se puede enunciar de una manera ms general:
Teorema 2. Para cada alfabeto , {L(G) : G es una gramtica regular } =
{L(M) : M es un autmata finito }, esto es, el conjunto de lenguajes que
reconocen las gramticas regulares, coincide con el conjunto de lenguajes que
reconocen los autmatas finitos.
No es el objetivo de estos apuntes la demostracin formal de este teorema.
En su lugar, vamos a mostrar el procedimiento por el cual se puede obtener un
autmata finito equivalente a una gramtica regular dada. As, dado un alfabeto
, consideremos una gramtica regular (S, V, T, P ), donde S es el smbolo inicial
de la gramtica, V es el conjunto de smbolos no terminales, T es el conjunto de
smbolos terminales (coincidir con ), y P es el conjunto de producciones o
reglas de reescritura. Un autmata finito equivalente a esta gramtica se definir
de la siguiente manera:
El conjunto de estados del autmata coincidir con el conjunto de smbolos
no terminades de la gramtica
El estado inicial del autmata ser el estado que se corresponde con el
smbolo inicial de la gramtica.
Los estados finales del autmata sern aquellos que se corresponden con los
smbolos no terminales que se encuentran en el lado izquierdo de las reglas
.
Las transiciones del autmata se definirn teniendo en cuenta las
producciones de la gramtica. As, si en la gramtica existe una produccin
S xA, en el autmata definiremos una transicin del estado S al estado
A etiquetada con el smbolo x.
En los casos en que en el lado derecho de la produccin haya un
nico terminal (por ejemplo A x), se proceder de la siguiente
manera. Se convertirn estas producciones en producciones de la forma
No_terminal T erminal No_terminal donde el nuevo no terminal
aadido, no perteneca antes a la gramtica. A continuacin se aadir una
nueva produccin que haga que este nuevo no terminal derive a su vez, en
la cadena vaca.
4

Tomemos como ejemplo algunas de las gramticas vistas anteriormente:


a) Consideremos la siguiente gramtica:
S xS
S yS
S
El autmata finito equivalente estar definido de la siguiente forma:
El alfabeto ser {x, y}
El conjunto de estados ser {S}
El estado final ser {S}
El conjunto de transiciones se muestra en la figura 1

x
S
y
Figura 1: Autmata finito que reconoce el lenguaje
b) De la misma forma si consideramos la gramtica:
S xS
S yS
A yA
A xA
A
El autmata finito equivalente estar definido de la siguiente forma:
El alfabeto ser {x, y}
El conjunto de estados ser {S, A}
El estado inicial ser {S}
5

Figura 2: Autmata finito que reconoce el lenguaje


El estado final ser {A}
El conjunto de transiciones se muestra en la figura 2
c) Por ltimo, consideremos la gramtica, con smbolo inicial S:
S xA
Ay
A xB
B
En primer lugar modificamos la gramtica para transformar la produccin:
A y. As, se aade un nuevo terminal T , no incluido antes en la
gramtica. A continuacin, se aade una nueva produccin que haga que
ese nuevo no terminal derive en la cadena vaca: T . De esta forma, la
gramtica quedara de la forma:
S xA
A yT
A xB
B
T
El autmata finito equivalente estar definido de la siguiente forma:
El alfabeto ser {x, y}
El conjunto de estados ser {S, A, B, T }
El estado inicial ser {S}
Los estados finales sern {B, T }
El conjunto de transiciones se muestra en la figura 3

x
S

y
T

Figura 3: Autmata finito que reconoce el lenguaje {xx, xy}

También podría gustarte