Professional Documents
Culture Documents
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
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