WG211/M6NWilliamCook
++ Strategic Programming by Model Interpretation and Partial Evaluation
Abstract: Strategic Programming is a programming paradigm based on factoring programs into general strategies and descriptions of particular application requirements. The descriptions are called models, and they generally describe one aspect of an application. Parser generators (like Yacc) are a prototypical example of strategic programming. My talk focuses on defining the semantics of models using interpreters instead of transformations, as in most related work. It is possible to define fully-functional applications by a collection of interrelated models for different aspects of a system, including user interface, security, workflow, data abstraction and persistence. The models may also contain fragments of code written in general-purposes languages. Model interpreters are compiled by partial evaluation. One novelty of this approach is the ability to create data abstractions by model interpretation and compile them by partial evaluation. I will describe my progress in implementing a software development toolset, called Borg, to support strategic programming by model interpretation and partial evaluation. Borg is implemented in itself and is targeted at information management applications, including desktop, web and distributed services, although it may be applicable to other domains as well.