2017-02-13 2 views
0

Je suis un peu confus sur la façon de montrer une dérivation de quelque chose donné une grammaire. Par exemple, je dois montrer une dérivation de ((())) en utilisant une grammaire et en commençant par S. C'est la grammaire: S =() | (S). Voici à quoi ressemble ma solution jusqu'à présent, S ->() -> (()) -> ((())). J'ai l'impression que c'est complètement faux, donc toute explication m'aiderait énormément. Je suis nouveau sur ce sujet.Comment montrer une dérivation d'une chaîne en utilisant une grammaire?

+0

Montre la séquence des symboles et la production que vous appliquez à chaque étape. Il n'y a pas de production qui vous mènerait de '()' à '(())' ou de '((()))'. – user2357112

Répondre

0

Vous ne pouvez rien tirer de(). Si vous voulez continuer au-delà de la première étape, il doit y avoir un symbole non-terminal. Votre seul symbole non terminal est S.

+0

Il n'est donc pas possible d'afficher une dérivation de ((())) de la grammaire: S =() | (S)? – Coder123

+0

C'est possible. Considérant que vous ne pouvez pas en tirer(), quelle est votre autre possibilité? –

+1

(S) est l'autre possibilité. Donc, je commencerais comme ceci: S -> (S) -> ((S)) -> alors quoi? Peut-être que, S -> (S) -> ((S)) -> ((())) – Coder123