WG211/M11Vanwyk
We present a modular flow analysis for attribute grammars. The global properties of grammar completeness and non-circularity are checked locally on grammar modules, only requiring additional information from the imported modules. Local checks for global properties are crucial for specifying extensible languages. They allow independent developers of language extensions to verify that their extension, when combined with other independently developed and similarly verified extensions to a specified host language, will result in a composed grammar that is well-defined. Thus, the composition of the host language and user-selected extensions can safely be performed by someone with no expertise in language design and implementation. The analysis is necessarily conservative, and we argue for its practicality by applying it to the Silver specifications of Silver, our boot-strapped extensible attribute grammar system.