Las gramáticas formales definen un lenguaje describiendo cómo se pueden generar las cadenas del
lenguaje.
Una gramática formal es una cuadrupla G = (N, T, P, S) donde
- N es un conjunto finito de símbolos no terminales
- T es un conjunto finito de símbolos terminales N T =
- P es un conjunto finito de producciones
Cada producción de P tiene la forma
(N T)* y A es S ó A N
- S es el símbolo distinguido o axioma S (N
T)
Restringiendo los formatos de producciones permitidas en una gramática, se pueden especificar
cuatro tipos de gramáticas (tipo 0, 1, 2 y 3) y sus correspondientes clases de lenguajes.
Gramáticas Regulares.
Además de los dispositivos que reconocen lenguajes regulares, que son los autómatas finitos, y de los dispositivos traductores de un lenguaje a otro (como por ejemplo las máquinas de Moore y de Mealy) también resulta importante el poder disponer de algún dispositivo que permita generar todas las cadenas de un lenguaje regular. Este dispositivo es la gramática regular.
En el primer tema se definió una gramática regular como aquella en la que las producciones eran todas de un mismo formato, o bien lineales a la derecha, o bien, lineales a la izquierda,
- Lineales a la derecha,
- Lineales a la izquierda,
No obstante esta definición permite que coexistan en una misma gramática producciones de muy diverso tipo, como por ejemplo, ; , ; ; ; ...
Para evitar esta dispersión de variedades seria interesante fijar de una forma más compacta el formato de los consecuentes de las producciones en una gramática regular, es decir, sería interesante introducir un formato normalizado, una forma normal.
Demostración:
Consiste en determinar los pasos en los que se puede convertir una producción genérica en una del formato normal.
Las producciones que tengan el formato y , con , ya están en la forma normal. Por lo tanto, sólo es necesario modificar las producciones del siguiente tipo:
- ,
- ,
- .
- Caso (1)
- Sea una producción genérica tal que y . El proceso para conseguir un nuevo conjunto de producciones equivalente al inicial y que respete la forma normal, consiste en eliminar esta producción e introducir las siguientes:
- Caso (2)
- Sea tal que y . Se elimina del nuevo conjunto de producciones y en su lugar se insertan las siguientes:
- Caso (3)
- Se realiza el siguiente cálculo, se determina , el conjunto de símbolos auxiliares que derivan al símbolo
- (i)
- ,
- (ii)
- .
Por ejemplo, si entonces en el nuevo conjunto de producciones se insertan las siguientes producciones: .
Con este método se consigue transformar todas las producciones de una gramática regular lineal a la derecha en un nuevo conjunto de producciones que respeta la forma normal.
c.q.d.
Ejemplo:
Sea G la gramática definida por el siguiente conjunto de producciones:
Escribir una gramática equivalente a G pero cuyas producciones estén en la forma normal.
Primero se añaden nuevos símbolos auxiliares (, , , , , ) que eliminen las producciones con cadenas de terminales (casos (1) y (2) del teorema anterior):
Para finalizar, falta eliminar la producción (caso (3) del teorema). El conjunto de producciones queda de la forma siguiente,
Demostración:
Sea
una gramática regular en la que sus producciones están en la forma ; ; ; .
Sea un AF
con
y donde la función de transición se define mediante los siguientes pasos,
- Si , entonces ,
- Si , entonces ,
- Si , entonces ,
- Si , entonces ,
- .
Se deja como ejercicio completar la demostración del teorema, comprobando que .
c.q.d.
Demostración:
Sea
una gramática regular a la derecha y sea un autómata finito asociado a la misma (teorema 8)
Sea
el AF que reconoce (teorema 5). Sea
la gramática regular a la izquierda construida a partir del AF de la forma siguiente
y el conjunto de producciones de se define por medio de las reglas,
- (i)
- Si , entonces ,
- (i)
- Si , entonces .
- (iii)
- , entonces puede eliminarse de , así como todas las producciones de en las que aparezca el símbolo .
Se deja como ejercicio completar la demostración del teorema, comprobando que .
Este obra está bajo una licencia de Creative Commons Attribution 3.0 Ecuador.