Ceci est une question du Dragon Book. Voici la grammaire:
La question demande comment montrer qu'il s'agit de LL (1) mais pas de SLR (1).
Pour prouver qu'il s'agit de LL (1), j'ai essayé de construire sa table d'analyse, mais j'obtiens plusieurs productions dans une cellule, ce qui est contradictoire.
Veuillez dire comment est ce LL (1) et comment le prouver?
formal-grammars
compilers
parsers
Vinayak Garg
la source
la source
Réponses:
Tout d'abord, donnons un numéro à vos productions.
Calculons le premier et suivons les ensembles en premier. Pour de petits exemples comme ceux-ci, l'utilisation de l'intuition sur ces ensembles est suffisante.
Calculons maintenant la table . Par définition, si nous n'obtenons pas de conflits, la grammaire est .L L ( 1 )LL(1) LL(1)
Comme il n'y a pas de conflits, la grammaire est .LL(1)
Maintenant pour la table . Tout d'abord, l' automate .L R ( 0 )SLR(1) LR(0)
Et puis la table (je suppose que peut être suivi de n'importe quoi).SSLR(1) S
Il y a des conflits dans l'état 0, donc la grammaire n'est pas . Notez que si était utilisé à la place, alors les deux conflits seraient résolus correctement: dans l'état 0 sur la tête de lecture, prendrait R3 et sur la tête de lecture il prendrait R4.L A L R ( 1 ) a L A L R ( 1 ) bSLR(1) LALR(1) a LALR(1) b
Cela soulève la question intéressante de savoir s'il existe une grammaire qui est mais pas , ce qui est le cas mais pas facile à trouver un exemple.L A L R ( 1 )LL(1) LALR(1)
la source
Si on ne vous le demande pas, vous n'avez pas à construire la table LL (1) pour prouver qu'il s'agit d'une grammaire LL (1). Vous calculez simplement les ensembles FIRST / FOLLOW comme l'a fait Alex:
Et puis, par définition, une grammaire LL (1) doit:
Donc, pour la grammaire donnée:
Quant à l'analyse SLR (1) je pense qu'elle est sans faille!
la source
Recherchez une condition suffisante qui fait une grammaire LL (1) (indice: regardez les PREMIERS ensembles).
Recherchez une condition nécessaire à laquelle toutes les grammaires SLR (1) doivent répondre (indice: regardez les ensembles SUIVANTS).
la source