Domanda

Il mio insegnante mi ha dato due grammatiche BNF:

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

e quattro corde da abbinare con loro:

  • DFFD
  • dddefddfe
  • dedf
  • deded

Ho capito due di loro, ma gli altri due mi hanno messo in difficoltà. Io non voglio che nessuno mi dica le risposte, ma se qualcuno mi potrebbe dare qualche suggerimento su dove sto andando male sarebbe molto apprezzato.

È stato utile?

Soluzione

Hmmm ...

Per induzione, tutte le partite devono avere un numero dispari di caratteri. Quindi, nessuna delle stringhe di 4 caratteri può essere un successo ...


Oh aspetta. Ho appena notato la 'Y' nella prima regola. Sappiamo di cosa si tratta? Si potrebbe rompere la mia tesi destra aperta ...

Altri suggerimenti

Questa è una grammatica Context-Free, così si dovrebbe essere in cerca di disegnare un albero sintattico. È quindi possibile vedere quale simbolo non terminale porta a cui ceduto stringa. Questi grammatiche sono abbastanza semplici, in modo da disegnare un albero di analisi dovrebbe essere abbastanza facile da fare a mano.

Il mio consiglio sarebbe quello di disegnare un automi o stato schema finita per te stesso prima di scrivere alcun codice. Farlo a mano con una matita e carta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top