Transformation of structure-shy programs: applied to XPath queries and strategic functions

A Cunha, J Visser - Proceedings of the 2007 ACM SIGPLAN symposium …, 2007 - dl.acm.org
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and …, 2007dl.acm.org
Various programming languages allow the construction of structure-shy programs. Such
programs are defined generically for many different datatypes and only specify specific
behavior for a few relevant subtypes. Typical examples are XML query languages that allow
selection of subdocuments without exhaustively specifying intermediate element tags. Other
examples are languages and libraries for polytypic or strategic functional programming and
for adaptive object-oriented programming. In this paper, we present an algebraic approach …
Various programming languages allow the construction of structure-shy programs. Such programs are defined generically for many different datatypes and only specify specific behavior for a few relevant subtypes. Typical examples are XML query languages that allow selection of subdocuments without exhaustively specifying intermediate element tags. Other examples are languages and libraries for polytypic or strategic functional programming and for adaptive object-oriented programming.
In this paper, we present an algebraic approach to transformation of declarative structure-shy programs, in particular for strategic functions and XML queries. We formulate a rich set of algebraic laws, not just for transformation of structure-shy programs, but also for their conversion into structure-sensitive programs and vice versa. We show how subsets of these laws can be used to construct effective rewrite systems for specialization, generalization, and optimization of structure-shy programs. We present a type-safe encoding of these rewrite systems in Haskell which itself uses strategic functional programming techniques.
ACM Digital Library