Répondre

2

C'est très facile à faire à la main. Le PDA a l'état de départ s et l'état final f, les deux seuls états dont il dispose. Faire une transition ((s, vide, vide), (f, S)), où S est le symbole de départ de votre CFG. Pour chaque règle X -> Y, où X est un symbole non terminal et Y est une chaîne éventuellement vide de terminaux et de non-terminaux, faites une transition ((f, vide, X), (f, Y)). Enfin, pour chaque symbole terminal a, ajoutez la règle ((f, a, a), (f, vide)). Cela commence par appuyer sur le symbole de démarrage de la pile. Ensuite, il remplace tout non-terminal qu'il trouve en haut de la pile avec le côté droit de sa règle de production, et fait correspondre tous les caractères du terminal en haut de la pile.

0

Essayez ce soft: https://github.com/navrkald/regularConvertor. Vous pouvez passer pas à pas tout l'algorithme de conversion CFG en PDA. Il est écrit en C++ en utilisant Qt et dans les versions de section, vous avez déjà construit un binaire auto-exécutable pour Windows.