next up previous
Next: Exercise 3. Up: Quiz3 Previous: Exercise 1.

Exercise 2.

Consider the following syntax-directed definition.
Production Semantic Rule
S $ \longmapsto$ E E.env := initialEnv()
E1 $ \longmapsto$ $ \bf let$ $ \bf id$ $ \bf =$ E2 $ \bf in$ E3 $ \bf end$ E2.env := E1.env
  E3.env := Update( E1.env,$ \bf id$, E2.val)
  E1.val := E3.val
E1 $ \longmapsto$ (E2 + E3) E1.val := E2.val + E3.val
  E2.env := E1.env
  E3.env := E1.env
E $ \longmapsto$ $ \bf id$ E.val := LookUp( $ \bf id$, E.env)
E $ \longmapsto$ $ \bf 1$ E.val := $ \bf 1$
E $ \longmapsto$ $ \bf0$ E.val := $ \bf0$
Write a translation scheme for this syntax-directed definition.

Answer 2  
S $ \longmapsto$   { E.env := initialEnv() }
    E  
E1 $ \longmapsto$   { E2.env := E1.env }
    $ \bf let$ $ \bf id$ $ \bf =$ E2 { E3.env := Update( E1.env,$ \bf id$, E2.val) }
    $ \bf in$ E3 $ \bf end$ { E1.val := E3.val }
E1 $ \longmapsto$   { E2.env := E1.env }
      { E3.env := E1.env }
    (E2 + E3) { E1.val := E2.val + E3.val }
E $ \longmapsto$ $ \bf id$ { E.val := LookUp( $ \bf id$, E.env) }
E $ \longmapsto$ $ \bf 1$ { E.val := $ \bf 1$ }
E $ \longmapsto$ $ \bf0$ { E.val := $ \bf0$ }


next up previous
Next: Exercise 3. Up: Quiz3 Previous: Exercise 1.
Marc Moreno Maza
2004-12-02