Pregunta

Mi maestro me ha dado dos gramáticas BNF

A ::= 'd' | A 'e' A | A 'f' A
B ::= 'd' | B B 'e' | B B 'f'

y cuatro cuerdas para que coincida con ellos:

  • dffd
  • dddefddfe
  • dedf
  • DEDED

He descubierto dos de ellos, pero los otros dos me he dejado perplejos. No quiero que nadie me diga las respuestas, pero si alguien me podría dar algunas pistas en cuanto a donde voy equivocado que sería muy apreciada.

¿Fue útil?

Solución

Hmmm ...

Por inducción, todos los partidos deben tener un número impar de caracteres. Así que ninguno de los 4 cadenas de caracteres puede ser un éxito ...


Oh, espera. Me he dado cuenta de la 'Y' en la primera regla. ¿Sabemos lo que es? Podría romper mi argumento derecha abierta ...

Otros consejos

Esta es una gramática libre de contexto, por lo que debe buscar para dibujar un árbol de análisis sintáctico. A continuación, puede ver qué símbolo no terminal conduce a lo que produjo cadena. Estas gramáticas son bastante simples, por lo que dibujar un árbol de análisis deben ser bastante fácil de hacer a mano.

Mi consejo sería dibujar un diagrama de autómatas de estados finitos o por sí mismo antes de escribir ningún código. Hacerlo a mano con un lápiz y papel.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top