Generic Operations and Partial Evaluation using Models

Benjamin Delaware, William R. Cook.


Model-driven software development is a promising new application area for partial evaluation. In this papers, we develop an approach to generic programming using models instead of types. The work is done in the context of Pummel, a first-order subset of Scheme with objects and monoid comprehensions. We define generic operations for validation, reading, and equality of values described by models. These generic operations are specialized to particular models by an online partial evaluator. The specializer can choose to residualize or execute imperative operations on objects, through a conditional binding time attribute. A future construct allows dynamic values to be manipulated statically, if the dynamic values are functionally dependent on static state.