Edición de Gramáticas Regulares


La ventana de edición de gramáticas regulares es accesible desde el menú principal por medio de la opción Gramáticas -> Regular (o utilizando la combinación de teclas rápidas CTRL-R) Luego de efectuar esta acción aparecerá un diálogo con dos opciones que permite optar entre la edición de una gramática previamente grabada en un archivo y la creación de una nueva.

Si se presiona el botón  se abrirá un diálogo en donde se puede seleccionar el archivo que se desea abrir. Si, en cambio, se presiona sobre el botón  se abrirá un diálogo en donde se debe ingresar el nombre del nuevo archivo que se desea crear.

Cuando se presiona sobre el botón aceptar se abre una ventana en donde se puede crear la gramática regular nueva.


 

Barra de herramientas
En la parte superior de la ventana se encuentra una barra de herramientas que contiene 7 botones, 6 de los cuales corresponden a funciones comunes dentro de la aplicación mientras que el restante conduce a la aplicación de un algoritmo.

Nueva gramática regular
Presionando este botón se crea una nueva gramática regular en blanco.

Abrir gramática regular
Presionando este botón se puede abrir una gramática regular guardada previamente en un archivo.

Guardar gramática regular
Presionando este botón se puede guardar la gramática regular que se está editando en un archivo.

Imprimir gramática regular
Presionando este botón se puede imprimir la grmática regular que se está editando.

Ayuda
Presionando este botón se puede acceder a esta página de ayuda.

Salir
Presionando este botón se cierra la ventana.

Obtener autómata finito
Presionando sobre este botón se abre una ventana en donde se muestra un autómata finito resultante de aplicar el algoritmo que obtiene el AFND a partir de una gramática regular.
 

Ingreso de una regla de producción
La regla de producción a agregar se debe escribir en los campos de texto dentro del recuadro que se titula Regla de Producción, en el primer campo se ingresa el lado izquierdo de la misma y en el segundo el lado derecho.  Una vez escrita la regla presionar sobre el botón Agregar para ingresar la nueva regla de producción.

Formato de la regla de producción
El símbolo distinguido se denota con el caracter ' S ' y la cadena vacía con el símbolo ' E '.  Además, se consideran símbolos terminales los caracteres escritos en minúscula y los dígitos del 0 al 9, y símbolos no terminales los caracteres escritos en mayúscula.  Para ver un ejemplo ir a ejemplo de gramática regular.
Cuando una regla de producción no respeta el formato de las reglas de producción de una gramática regular, se le informa al usuario mediante un diálogo de error.
Nota: Minerva le permite ingresar las reglas de producción con formato lineal a derecha o a izquierda (siempre que lo respete durante toda la edición de la gramática, es decir, no puede ingresar algunas reglas lineales a derecha y otras a izquierda).

Actualización de la definición formal
La definición formal se actualiza en forma automática cada vez que se ingresa o elimina una regla de producción.
 

Operaciones sobre una gramática regular



Generación de cadenas a partir de la gramática
Se pueden generar cadenas a partir de las reglas de producción de la gramática, para comprobar si estas reglas describen el lenguaje deseado.  Para llevar a cabo esta operación se tiene destinada una parte de la ventana en donde se edita la gramática rotulada con Generar, si esa parte de la ventana se presiona sobre el botón Nueva cadena se muestra una cadena que pertenece al lenguaje descripto por la gramática.

Si se desean ver las reglas de producción que derivaron a una cierta cadena, se debe seleccionar la misma y presionar el botón derecho del mouse sobre ella.  Dicha acción permite mostrar un menú con dos opciones, si se selecciona Arbol de derivación se muestra un diálogo con todas las reglas utilizadas para generar dicha cadena.


 

Verificación de si una cadena puede ser generada por la gramática
Una vez que se edita una gramática se puede verificar si una cadena es generada por la misma.  Para llevar a cabo esta operación se debe seleccionar el panel que permite ingresar una cadena a ser reconocida, dicha selección se lleva a cabo haciendo click sobre la etiqueta Reconocer.  El panel seleccionado posee una campo de texto en donde se ingresa la cadena a ser reconocida.

Una vez que se ingresó la cadena a ser generada se debe presionar sobre el botón Reconocer, esta acción lleva a cabo la comprobación de si existe un árbol de derivación que pueda generar la cadena dada.  En caso afirmativo, se muestra un diálogo con dicho árbol de derivación, en cambio si la cadena no puede ser generada por la gramática se le informa al usuario mediante un mensaje mostrado sobre un diálogo.

Obtención del autómata finito
A partir de la gramática creada se puede obtener el autómata finito que reconoce las cadenas de un lenguaje regular dado a partir de la gramática regular que genera ese lenguaje.  Para obtener el autómata se debe presionar sobre el botón , lo cual lleva a abrir una ventana en donde se muestra el autómata generado.


EjemploConceptos Teóricos