Incremental language design
- « Previous Article
- Table of contents
- Next Article »
Formal methods for describing programming language semantics are not widely used since they are not modular, extensible and reusable. In the paper, a new extensible and reusable approach for specifying programming languages with attribute grammars is presented. The concepts from object-oriented programming, templates and multiple inheritance, are integrated with attribute grammars. A template in attribute grammar is an abstraction of a semantic rule parameterised with attribute occurrences. Conversely, the whole attribute grammar is a subject of multiple inheritance and specialisation. With the proposed approach a language designer has the opportunity to design incrementally a language or reuse some fragments from other programming language specifications. Templates and multiple inheritance have been implemented in the compiler generator tool LISA version 2.0.