Strategy combinators (also called strategic programming) are a technique for modular program transformation construction invented by Bas Luttik and Eelco Visser, best known for their instantiation in the Stratego language. Traditional implementations are dynamically typed, and struggle to represent transformations that can be usefully applied to some types, but not all.
We present the design of our strategy-combinator library compstrat, a library for type-safe strategy combinators which run on Patrick Bahr’s compositional datatypes. We show how strategy combinators and compositional datatypes fuse elegantly, allowing the creation of type-preserving program transformations which operate only on datatypes satisfying certain properties. With this technique, it becomes possible to compactly define program transformations that operate on multiple programming languages. compstrat is part of the Cubix framework and has been used to build four program transformations, each of which operates on at least three languages.
Wed 5 AprDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
14:00 - 15:30 | Session 3: Parsing & TransformationEelco Visser Commemorative Symposium at Theatre Hall Chair(s): Bernd Fischer Stellenbosch University, South Africa | ||
14:00 10mTalk | Context in Parsing: Techniques and Applications Eelco Visser Commemorative Symposium Eric Van Wyk Department of Computer Science and Engineering, University of Minnesota, USA Pre-print | ||
14:10 10mTalk | Comparing Bottom-up with Top-down Parsing Architectures for the Syntax Definition Formalism from a Disambiguation Standpoint Eelco Visser Commemorative Symposium Jurgen Vinju CWI; Eindhoven University of Technology Pre-print | ||
14:20 10mTalk | Analysing the SML97 Definition: Lexicalisation Eelco Visser Commemorative Symposium Elizabeth Scott Royal Holloway University of London, Adrian Johnstone Royal Holloway University of London | ||
14:30 10mTalk | On the Origins of Coccinelle Eelco Visser Commemorative Symposium Julia Lawall Inria File Attached | ||
14:40 10mTalk | Typed Multi-Language Strategy Combinators Eelco Visser Commemorative Symposium James Koppel Massachusetts Institute of Technology, USA | ||
14:50 10mTalk | Towards Modular Compilation Using Higher-Order Effects Eelco Visser Commemorative Symposium Jaro Reinders TU Delft | ||
15:00 10mTalk | Visitor Optimization Revisited – Realizing Traversal Graph Pruning by Runtime Bytecode Generation Eelco Visser Commemorative Symposium | ||
15:10 10mTalk | Refactoring = Substitution + Rewriting: Towards Generic, Language-Independent Refactorings Eelco Visser Commemorative Symposium DOI Pre-print | ||
15:20 10mOther | Session closing Eelco Visser Commemorative Symposium |