Herramientas de usuario

Herramientas del sitio


es:manual:items:patron:gramaticas

¡Esta es una revisión vieja del documento!


Patrones de evaluación de gramáticas

Para algunas asignaturas, tales como Teoria de Autómatas y Lenguajes Formales o Procesadores de Lenguajes, se pueden plantear preguntas cuya respuesta es una gramática de contexto libbre o regular. Por ejemplo:

Para este tipo de problemas se ha definido un plugin que reconoce cualquier respueta dada por un alumno, sin que la gramática prpuesta deba ser identica a la propuesta, sino simplemente equivalente, es decir, que genere el mismo lenguaje.

En el ejemplo anterior la siguiente gramática sería una respuesta correcta:

A -> Aa
A -> a

Pero tambien lo seria la gramática

A -> aA
A -> a

e incluso otras gramáticas definidas mediante otros simbolos no terminales, o en otro orden tales como:

S -> a
S -> Sa

El profesor debe proporcionar una gramática que servirá como patron de comparación; sin embargo para reconocer si la respuesta de un alumno es correcta, no es suficiente por tanto una correspondencia sencilla entre el patrón y la respuesta. Es necesario comprobar mediante un procedimiento que los lenguajes generados por ambas gramaticas son equivalentes. En el caso general se ha demostrado que la equivalencia de gramáticas es una cuestión indecidible, es decir, que en el caso general no existe ningún algoritmo que nos diga si una gramática es o no equivalente a otra. Sin embargo, para los casos en llos que la gramática tiene pocas reglas, se puede resolver el problema mediante fuerza bruta. Para ello se generan todas las posibles cadenas del lenguaje a partir de la gramática de la respuesta hasta una cierta longitud y profundidad del árbol de derivaciones; y se comprueba que todas ellas están incluidas en el conjunto de cadenas generadas por la gramatica propuesta como patrón hasta con una longitud maxima y profundidad del árbol superior; y viceversa.

En caso de que las gramáticas no sean equivalentes, durante el proceso de búsqueda de la equivalencia, el plugin localiza las posibles cadenas de caracteres que diferencian a ambas gramáticas. El plugin tambien comprueba si la gramatica propuesta es o no ambigua.

Para el ejemplo anterior, el profesor puede proporcionar varios patrones de reconocimiento:

El primer patrón se verifica cuando la gramática de la respuesta del alumno coincide con la gramática propuesta por el profesor. El segundo patrón se verifica cuando la respuesta del alumno contiene una gramática que esta mal escrita, al no seguir las reglas sintacticas para escribir gramáticas que se detallan al final de esta página. El tercer patrón corresponde a una gramática no valida, es decir, a una gramática que contiene simbolos no finalizables o simplemente no está completa. Estos dos últimos patrones sirven para informar al alumno de la causa de fallo en la corrección de su respuesta.

El patrón por defecto se encaja cuando no se ha podido encajar ninguno de los aptrones anteriores, es decir, cuando la gramatica no es equivalente, pero no tiene errores sintacticos y es una gramática correcta. En este caso, el refuerzo asociado a este patrón puede incluir un contraejemplo, es decir, una cadena que pertenece al lenguaje pero no es generada por la gramatica de la respuesta o bien una cadena que no pertenece al lenguaje y es generada por la gramática de la respueta. Para ello el refuerzo de la respuesta no reconocida se escribe:

es/manual/items/patron/gramaticas.1638961268.txt.gz · Última modificación: 2021/12/08 11:01 por root

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki