You are on page 1of 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 nito 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 nito 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 nito de producciones o reglas de reescritura que representan la denicin 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 A x S xA = S xxA = S xxx Esta derivacin generara la cadena xxx. Otra posible derivacin podra ser la siguiente: B yB B y 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 nito 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 nitos reconocen ambos los lenguajes regulares, en la siguiente seccin vamos a comprobar cmo, dada una gramtica regular, se puede construir el autmata nito equivalente. 3

Paso de una gramtica regular al autmata nito equivalente


Teorema 1. Para cada alfabeto y para cada gramtica regular G, existe un autmata nito 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 nito }, esto es, el conjunto de lenguajes que reconocen las gramticas regulares, coincide con el conjunto de lenguajes que reconocen los autmatas nitos. 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 nito 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 nito equivalente a esta gramtica se denir 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 nales 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 denirn teniendo en cuenta las producciones de la gramtica. As, si en la gramtica existe una produccin S xA, en el autmata deniremos 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 nito equivalente estar denido de la siguiente forma: El alfabeto ser {x, y } El conjunto de estados ser {S } El estado nal ser {S } El conjunto de transiciones se muestra en la gura 1

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

x S y

x A y

Figura 2: Autmata nito que reconoce el lenguaje El estado nal ser {A} El conjunto de transiciones se muestra en la gura 2 c) Por ltimo, consideremos la gramtica, con smbolo inicial S: S xA Ay A xB B En primer lugar modicamos 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 nito equivalente estar denido 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 nales sern {B, T } El conjunto de transiciones se muestra en la gura 3

x S x A y

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

You might also like