2009-02-24 2 views
1

Mon professeur m'a donné deux grammaires bnf:grammaire BNF correspondant

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

et quatre cordes pour correspondre avec eux:

  • DFFD
  • dddefddfe
  • dedf
  • deded

J'ai compris deux d'entre eux, mais les deux autres me font perplexe. Je ne veux pas que quelqu'un me dise les réponses, mais si quelqu'un pouvait me donner des indices sur l'endroit où je me trompe, ce serait très apprécié.

Répondre

1

Hmmm ...

Par induction, tous les matchs doivent avoir un nombre impair de caractères. Donc, aucune des 4 chaînes de caractères ne peut être un succès ...


Oh wait. Je viens de remarquer le 'Y' dans la première règle. Savons-nous ce que c'est? Il pourrait briser mon argument à droite ...

+0

Merci, je me concentrais surtout sur ceux que je pensais qu'ils seraient plus faciles; Une fois que je les ai sautés, j'ai eu les deux autres. Je suppose que je vais juste demander à l'enseignant à propos de ceux-ci. –

+0

C'était une faute de frappe. –

0

Mon conseil serait de dessiner un automate fini ou un diagramme d'état pour vous-même avant d'écrire du code. Faites-le à la main avec un crayon et du papier en premier.

2

Ceci est une grammaire sans contexte, donc vous devriez chercher à dessiner un arbre d'analyse. Vous pouvez ensuite voir quel symbole non terminal mène à quelle chaîne a été générée. Ces grammaires sont assez simples, donc dessiner un arbre d'analyse devrait être assez facile à faire à la main.

Questions connexes