A Static Framework for Scalable Emulation of Evaluation Semantics
Paper i proceeding, 2007
The power of a programming language depends to a significant extent on its semantics of expression evaluation. It is therefore rewarding and popular to emulate nonexistent evaluation features by library constructs. For instance, one can emulate the functional programming idiom of a (partially) unbound function in an imperative language by providing special functor types. Their instances are created anonymously and represent late bindings if used as function arguments. This approach is of limited scalability to further emulations in this style, because each function implementation has to account for any possible combination of such special argument types. We propose a library-based framework that systematically supports the emulation of evaluation semantics without increasing the complexity order of function implementations. C++ as implementation language allows applying these constructs statically and therefore to avoid performance penalties at run time.