PUC-IIC2223 / syllabus2018

Repositorio principal para el curso “Teoría de Autómatas y Lenguajes Formales” del año 2018.
3 stars 0 forks source link

Tests de ejemplo Laboratorio 3 #52

Closed caespinoza5 closed 5 years ago

caespinoza5 commented 5 years ago

¡Hola!

¿Hay alguna posibilidad de que suban algunos tests de ejemplo para este laboratorio 3?

Gracias de antemano.

fdoflorenzano commented 5 years ago

Hola, dado el tiempo, no creo que alcancemos a subir ejemplos de input.

De todas formas, son inputs sencillos. Pueden asumir son .txt de una sola línea con una expresión regular sencilla según la gramática descrita. Te recomiendo probar con expresiones largas, y algunas que posiblemente puedan tener varias derivaciones posibles, para comprobar que el parseo se logra de correcta forma.

Saludos.

caespinoza5 commented 5 years ago

¡Gracias!

¿Con expresiones regulares sencillas, podemos asumir que no habrán gramáticas de la forma "a*+++**+" por ejemplo?

crivero1 commented 5 years ago

Hola!

La expresión que das como ejemplo "a*+++**+" debería no parsearla y entregar un error de parsing. O sea, rechazarla como una expresión que no cumple la gramática.

Saludos!

pdpino commented 5 years ago

Hola,

me parece que la gramática sí acepta esa regex. Por ejemplo, puede aceptar "a+*+": E --> E+ --> E+ --> E+*+ --> A+*+ --> a+\+

Se ve que también podría aceptar el ejemplo que pusieron antes.

Yo hasta ahora lo había pensado como operadores que tienen la misma precedencia, y se resuelven de izquierda a derecha (como lo que ocurre en aritmética con suma y resta: 1 + 2 - 3)

crivero1 commented 5 years ago

Perdonen, tienen toda la razón. Al leer el ejemplo dado, consideré que el "+" era una disyunción (como el lenguaje de expresiones regulares) y no una iteración. Tienen toda la razoón que el ejemplo "a*+++**+" es totalmente válido. Perdonen la confusión.

Saludos!