In our experience teaching computer language
implementation courses, we have realized the strengths of
using attribute grammars. They promote the modularity,
extensibility and maintainability of the final specifications and
processors, and also facilitate the application of systematic
implementation techniques. However, we have also realized
that the approach is accompanied by a non-negligible learning
curve, which is particularly accentuated for students
unhabituated to formal and declarative specification methods.
Our aim with Evaluators was to smooth this learning curve.