Pettersson, M. (1989). Generating Interpreters from Denotational Definitions using C++ as a Meta-language. Technical Report LiTH-IDA-R-89-52, Department of Computer and Information Science, Linköping University, Sweden. (bibtex),
Abstract: In this paper we present a method to automatically generate interpreters from strongly typed denotational definitions. C++ is used as a meta-language in a way that largely preserves the structure of denotational definitions in standard mathematical notation. The object-oriented features of C++ together with operator overloading and dynamic typing are used to achieve this goal. There are several advantages with this method. Compared to meta-languages such as Scheme, the strong typing of C++ eliminates many errors in denotational specifications already at compile-time. Also, denotational definitions expressed in C++ can be used together with common compiler-writing tools such as Yacc, and be compiled efficiently. Perhaps most important: this method facilitates more widespread use of denotational techniques, by embedding them within a common industrial-strength language.
CS Dept TR Overview