Herramientas de usuario

Herramientas del sitio


es:manual:items:patron:gramaticas

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
es:manual:items:patron:gramaticas [2021/12/08 11:06] rootes:manual:items:patron:gramaticas [2023/03/24 16:31] (actual) root
Línea 1: Línea 1:
 ===== Patrones de evaluación de gramáticas ===== ===== 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 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:
  
 {{ es:manual:items:patron:item-gram.png?400 }} {{ es:manual:items:patron:item-gram.png?400 }}
Línea 31: Línea 31:
 {{ es:manual:items:patron:item-gram-patrones.png?400 }} {{ es:manual:items:patron:item-gram-patrones.png?400 }}
  
-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 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 sintácticas 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 símbolos 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:+El patrón por defecto se encaja cuando no se ha podido encajar ninguno de los patrones anteriores, es decir, cuando la gramática no es equivalente, pero no tiene errores sintácticos y es una gramática correcta. En este caso, el [[es:manual:test:refuerzos|refuerzo]] asociado a este patrón puede incluir un contraejemplo, es decir, una cadena que pertenece al lenguaje pero no es generada por la gramática de la respuesta o bien una cadena que no pertenece al lenguaje y es generada por la gramática de la respuesta. Para ello el [[es:manual:test:refuerzos|refuerzo]] de la respuesta no reconocida se escribe:
  
 {{ es:manual:items:patron:item-gram-refuerzo.png?400 }} {{ es:manual:items:patron:item-gram-refuerzo.png?400 }}
  
-El plugin tambien puede comprobar si la gramatica propuesta es o no ambigua, por ejemplo para responder a preguntas como:+El plugin tambien puede comprobar si la gramática propuesta es o no ambigua, por ejemplo para responder a preguntas como:
  
 {{ es:manual:items:patron:item-gram-ambigua.png?400 }} {{ es:manual:items:patron:item-gram-ambigua.png?400 }}
Línea 45: Línea 45:
 {{ es:manual:items:patron:item-gram-ambigua-patrones.png?400 }} {{ es:manual:items:patron:item-gram-ambigua-patrones.png?400 }}
  
-En este caso el patron de respuesta correcto requiere que la gramatica solución no sea ambigua. Si lo fuera, este patrón no encajaría y se intentaría encajar alguno de los siguientes. Suponiendo que la gramatica esta bien escrita desde el pnto de vista sintáctico y es correcta, si la gramatica es equivalente pero ambigua, encajaría con el cuarto patrón, es decir con el patón etiquetado como ''@GramaticaEquivalente'' que ahora corresponde a un patron incorrecto. A este patrón incorrecto se le puede asociar un refuerzo para indicar al alumno alguna de as cadenas que hacen que la gramática sea ambigua.+En este caso el patrón de respuesta correcto requiere que la gramàtica solución no sea ambigua. Si lo fuera, este patrón no encajaría y se intentaría encajar con alguno de los siguientes. Suponiendo que la gramática esta bien escrita desde el punto de vista sintáctico y es correcta, si la gramática es equivalente pero ambigua, encajaría con el cuarto patrón, es decir con el patón etiquetado como ''@GramaticaEquivalente'' que ahora corresponde a un patrón incorrecto. A este patrón incorrecto se le puede asociar un [[es:manual:test:refuerzos|refuerzo]] para indicar al alumno alguna de as cadenas que hacen que la gramática sea ambigua.
  
 {{ es:manual:items:patron:item-gram-ambigua-refuerzo.png?400 }} {{ es:manual:items:patron:item-gram-ambigua-refuerzo.png?400 }}
  
 +Finalmente, el plugin tambien permite solicitar gramáticas que cumplan la condición LL(1).
  
 +{{ es:manual:items:patron:item-gram-ll1.png?400 }}
 +
 +En este caso los patrones se comporta de manera similar al caso de las gramáticas ambiguas. 
 +
 +{{ es:manual:items:patron:item-gram-ll1-patrones.png?400 }}
 +
 +Nótese que no es necesario incluir el patrón de ''@GramaticaEquivalenteNoAmbigua'', (aunque se podría incluir), ya que toda gramática LL1 tiene que ser no ambigua. Nótese también que no es ni siquiera necesario proporcionar una gramática LL(1) como patrón, ya que el plugin se encarga de verificar que la gramática de la respuesta es equivalente a la gramática del patrón y que además cumple la condición LL(1). Sin embargo si habrá que proporcionar una gramática LL(1) como ejemplo.
 +
 +{{ es:manual:items:patron:item-gram-ll1-ejemplo.png?400 }}
 +
 +En el plugin de los patrones de gramáticas no es necesario repetir la gramática en cada uno de los patrones, basta con incluir la gramática en el primero de ellos. Por otra parte, los controles de ignorar mayusculas y minúsculas, espacios en blanco, etc. no son operativos.
 +
 +==== Sintaxis de las gramáticas ====
 +Tanto para proporcionar el patrón como la respuesta del alumno, se deben seguir unas normas sintácticas para expresar la gramática de contexto libre. Solo es necesario proporcionar el conjunto de reglas. Los símbolos no terminales se escriben mediante letras mayusculas de la A a la Z (excluyendo la Ñ), o bien letras mayusculas seguidas de un apóstrofe, tales como A' , B' ... Z', que funcionan como no terminales distintos. El primer símbolo no-terminal se tomará como axioma de la gramática. 
 +
 +Los símbolos terminales corresponden a letras minúsculas de la ''a'' a la ''z'', o bien cualquier otro caracter Ascii excluyendo las letras mayusculas, los apóstrofos, comillas y el caracter ''$'' que tiene un significado especial. No es necesario proporcionar una gramática ampliada, pero si se hace, debe usarse el símbolo ''$'' como símbolo terminados de cadenas.
 +
 +Las reglas se escriben cada una en un línea, separando el antecedente del consecuente mediante una fecha construida mediante los caracteres ''->''. Los espacios en blanco no son significativos. La cadena vacía <html>&epsilon;</html> se puede escribir mediante la palabra reservada ''EPSILON'', o bien dejando el consecuente vacío.
 +
 +El siguiente es un ejemplo de gramática válido
 +
 +   A -> [B]
 +   B -> aB'
 +   B ->
 +   B'-> ;aB'
 +   B'->
es/manual/items/patron/gramaticas.1638961618.txt.gz · Última modificación: 2021/12/08 11:06 por root

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki