Gramatica Regular
Gramatica Regular
Gramatica Regular
A.E.I.R.N.N.R.
GRAMATICAS REGULARES
En informática una gramática regular es una gramática formal (N, Σ, P, S) que puede ser clasificada como
regular izquierda o regular derecha. Las gramáticas regulares sólo pueden generar a los lenguajes
regulares de manera similar a los autómatas finitos y las expresiones regulares.
Dos gramáticas regulares que generan el mismo lenguaje regular se denominan equivalentes. Toda gramática
regular es una gramática libre de contexto.
Una gramática regular derecha es aquella cuyas reglas de producción P son de la siguiente forma:
3. A → ε, donde A pertenece a N.
Análogamente, en una gramática regular izquierda, las reglas son de la siguiente forma:
3. A → ε, donde A pertenece a N.
A → aL
L→ε
A → La
L→ε
Algunos autores alternativamente no permiten el uso de la regla 3 suponiendo que la cadena vacía no
pertenece al lenguaje.
Un ejemplo de una gramática regular G con N = {S, A}, Σ = {a, b, c}, P se define mediante las siguientes
reglas:
S → aS
S → bA
A→ ε
A → cA
Donde S es el símbolo inicial. Esta gramática describe el mismo lenguaje expresado mediante la expresión
regular a*bc*.
Dada una gramática regular izquierda es posible convertirla, mediante un algoritmo en una derecha y
viceversa.
Explicación de los elementos de una gramática
• Símbolos terminales: son elementos del alfabeto que no se pueden transformar, por eso se llaman
terminales. Normalmente se denotan por letras minúsculas.
• Variables o símbolos no terminales: son elementos auxiliares que permiten poner restricciones
sintácticas a un lenguaje. Las variables sí se pueden transformar, utilizando las reglas, en una cadena
de variables y/o terminales. Por lo general se denotan por letras mayúsculas o por la notación
<variable>.
• Reglas: permiten reemplazar variables para generar oraciones válidas de un lenguaje. Puede haber
varias reglas para una misma variable, en este caso y para ahorrar espacio, las distintas opciones se
colocan en una sola regla con los distintos reemplazos separados por |. Por ejemplo | |
abrevia las tres reglas
• Símbolo inicial: es el símbolo a partir del cual se generan todas las palabras válidas.
Definición: Decimos que la cadena w1 deriva en un paso a la cadena w2 (w1 Gw2) si y solo si existen
cadenas x, y V* tales que w1 = xuy y w2 = xvy y además existe una regla u v en R. Si no hay lugar a
confusión, se acostumbra omitir el subíndice que indica la gramática G.
Definición: una cadena w V* es derivable a partir de la gramática G si y solo si existe una secuencia de
derivación iniciando en el símbolo inicial y terminando en la cadena
w: S = w1 w2 w3 wn = w.
Escribimos si deriva a en 0 o más pasos.
Definición: el lenguaje generado por una gramática G, L(G), es igual al conjunto de las palabras en * (es
decir, consisten de símbolos terminales) derivables a partir de G.
Una gramática describe las reglas sintácticas del lenguaje. Si una palabra no sigue las reglas, entonces no
pertenecen al lenguaje generado por la gramática.
Ejemplo
• G = (V, , R, S)
– V = {a, b, c, S, A, B}
– = {a, b, c}
– R: S AccA A BA | B a|b|c
w1 = abcc L(G) y w2 = acb L(G)
Cadena Regla Derivación
S S AccA S AccA
AccA A BA BAccA
BAccA B a aAccA
aAccA A BA aBAccA
aBAccA B b abAccA
abAccA A abccA
abccA A abcc
• Gramáticas Libres de Contexto, GLC, (tipo 2 o G2): el conjunto de reglas es un subconjunto finito
de (V ) V*, es decir:
– El lado izquierdo consiste sólo de una variable.
– No hay restricciones para el lado derecho.
Ejemplo: S aSb | ab |
• Gramáticas Sensitivas al Contexto (tipo 1 o G1): el conjunto de reglas es un subconjunto finito de
V+ × V+, es decir, las reglas son de la forma A donde , , V* y A V , es decir, A
es un símbolo no terminal. Además, las reglas son no-contractivas, es decir, la longitud del lado
izquierdo es menor o igual a la longitud del lado derecho. Esta propiedad de no-contracción
garantiza que un lenguaje sensitivo al contexto no contiene .
• Gramáticas sin restricción (tipo 0 o G0): el conjunto de reglas es un subconjunto finito de V+ × V*,
es decir, no hay restricciones para las reglas, excepto que el lado izquierdo no es .
BIBLIOGRAFIA:
Figueroa,J. Autómatas Finitos y Gramáticas Regulares
URL:http://www.google.com.ec/url?sa=t&source=web&cd=2&ved=0CBwQFjAB&url=http%3A%2F%
2Fwww.exa.unicen.edu.ar%2Fcatedras%2Fccomp1%2FApunte3.pdf&ei=sKPITNjZGML7lwf_uaz2Ag
&usg=AFQjCNFkSklgWSsaXGJphYn0lOJCBJwbpg. Consultado 27/Octubre/2010