Date Added: Jan 2010
For the purposes of tool development, computer languages are usually described using context-free grammars with annotations such as semantic actions or pretty-printing instructions. These descriptions are processed by generators which automatically build software, e.g., parsers, pretty-printers and editing support. In many cases the annotations make grammars unreadable, and when generating code for several tools supporting the same language, one usually needs to duplicate the grammar in order to provide different annotations for different generators. The authors present an approach to describing languages which improves read-ability of grammars and reduces the duplication. To achieve this they use Aspect-Oriented Programming principles.