Traduction dirigée par la syntaxe

bonjour,

Il s’agit d’un exercice du livre “compilateurs principes techniques et outils”.
À savoir, ils nous donnent cette grammaire:

S -> L , L | L
L -> L B | B
B -> 0 | 1

Ils nous demandent d’écrire une définition dirigée par la syntaxe L-attribuée qui calcule la valeur d’un nombre binaire décrit par cette grammaire.
Je ne suis pas à l’école, je me tourne vers vous pour me corriger cet exercice.

ma réponse:
d’abord, pour une dds L-attribuée, il faut modifier cette grammaire pour la rendre LL. ce qui donne:

S -> L , L |  L
L -> B R
R -> B R | epsilon (production vide)

alors voici les résultats de mon travail:
L.côté et R.côté sont des attributs hérités
les autres attributs sont synthétisés.

S -> L1 , L2
règles sémantiques:
S.val = L1.val + L2.val
L1.côté = 1
L2.côté = 0,5

S -> L
règles sémantiques:
S.val = L.val
L.côté = 1

L -> B R
règles sémantiques:
L.val = R.val
R.côté = L.côté

R -> B R1
règles sémantiques:
R.val = ( R1.val + B.val x R1.poids ) x R.côté
R1.côté = R.côté
R.poids = R1.poids x 2

R -> epsilon
règles sémantiques:
R.val = 0
R.poids=1

quelqu’un a une idée?

J’ai rien compris.

je ne suis pas sur le bon forum, c’est pas grave, j’irai tenter ma chance ailleurs

Bonjour. C’est pas tous les jours qu’on a des posts qui traitent de grammaires et de compilos, ca fait toujours plaisir, et un peu mal au crane.

Pour commencer il serait de bon d’expliciter un peu ce que tu attends comme reponse. Une correction? Une relecture? Si ca fait partie d’un exo de bouquin, il y’a des chances que le corrige soit disponible quelque part (une petite recherche plus tard et hop https://github.com/fool2fish/dragon-book-exercise-answers ).

Ca va faire 10 ans que je n’ai pas fait ce genre d’exo, donc loin de moi l’idee de donner une quelconque reponse. Et j’ai toujours eu un peu de mal a me representer mentalement la notation des grammaires, donc j’espere que le lien te permettra de continuer a progresser dans la lecture du Dragon Book.

Enfin, on est dimanche matin, faut pas non plus s’etonner de ne pas avoir la bonne reponse dans la minute, ou d’avoir des personnes qui ne sont pas forcement au courant de l’existence et de la syntaxe des langages formels, des grammaires, et autres outils de modelisations de langages.

3 « J'aime »

42
:smiling_imp:

Merci Ravine

bien trouvé la correction à l’url indiqué.