Published: 1st September 2011
DOI: 10.4204/EPTCS.66
ISSN: 2075-2180

EPTCS 66

Proceedings IFIP Working Conference on
Domain-Specific Languages
Bordeaux, France, 6-8th September 2011

Edited by: Olivier Danvy and Chung-chieh Shan

Preface
Olivier Danvy and Chung-chieh Shan
Invited Presentation: Form Follows Function: Model-Driven Engineering for Clinical Trials
Jeremy Gibbons
Invited Presentation: Rewriting, from Universality to Specificities
Claude Kirchner
Adaptation-Based Programming in Haskell
Tim Bauer, Martin Erwig, Alan Fern and Jervis Pinto
1
A Domain-Specific Language for Incremental and Modular Design of Large-Scale Verifiably-Safe Flow Networks (Preliminary Report)
Azer Bestavros and Assaf Kfoury
24
SAGA: A DSL for Story Management
Lucas Beyak and Jacques Carette
48
Efficient and Correct Stencil Computation via Pattern Matching and Static Typing
Dominic Orchard and Alan Mycroft
68
Building-Blocks for Performance Oriented DSLs
Tiark Rompf, Arvind K. Sujeeth, HyoukJoong Lee, Kevin J. Brown, Hassan Chafi, Martin Odersky and Kunle Olukotun
93
MELT - a Translated Domain Specific Language Embedded in the GCC Compiler
Basile Starynkevitch
118
A DSEL for Studying and Explaining Causation
Eric Walkingshaw and Martin Erwig
143
Tutorial on Online Partial Evaluation
William R. Cook and Ralf Lämmel
168
Maximum Segment Sum, Monadically (distilled tutorial)
Jeremy Gibbons
181
Specific "scientific" data structures, and their processing
Jerzy Karczmarczuk
195
Implementing Explicit and Finding Implicit Sharing in Embedded DSLs
Oleg Kiselyov
210
Resumption-based big-step and small-step interpreters for While with interactive I/O
Keiko Nakata
226
Accurate Programming: Thinking about programs in terms of properties
Walid Taha, Veronica Gaspes and Rex Page
236

Preface

This volume is the proceedings of the second IFIP Working Conference on Domain-Specific Languages (DSL 2011). It contains 2 abstracts of invited presentations, 7 peer-reviewed articles selected by the program committee from 14 submissions, and 6 lecture notes for the distilled tutorials that we solicited. We extend our thanks to the program committee for their time and scientific expertise:

We are also grateful to Ilya Sergey and Guy Wiener for serving as external reviewers. Last but not least, we thank Emilie Balland for her masterful organization and orchestration of the local arrangements.

This volume is dedicated to the memory of Anne-Françoise Le Meur (1972–2011).


Form Follows Function: Model-Driven Engineering for Clinical Trials

Jeremy Gibbons (University of Oxford)

For certain constrained domains, elaborate model transformation technologies—implemented from scratch in general-purpose programming languages—are unnecessary for model-driven engineering; instead, lightweight configuration of commercial off-the-shelf productivity tools suffices. In this talk, we consider the generation of software tools to support clinical trials. A domain metamodel captures the community's best practice in trial design. A scientist authors a trial protocol, modelling their trial by instantiating the metamodel; customized software artifacts to support trial execution are generated automatically from the scientist's model. The metamodel is expressed as an XML Schema, in such a way that it can be instantiated by completing a form to generate a conformant XML document. The same process works at a second level for trial execution: among the artifacts generated from the protocol are models of the data to be collected, and observations are reported by completing a form to create a conformant XML document. Simple standard form management tools are all that is needed.

(Joint work with Jim Davies, Radu Calinescu, Charles Crichton, Steve Harris, and Andrew Tsui.)


Rewriting, from Universality to Specificities

Claude Kirchner (INRIA)

Rewriting is a universal language shown a long time ago to be Turing complete. Interestingly, in many situations this universality is restricted to cope with decidability or specific needs and the general language is tuned to get specific features like good properties (e.g. normalisation, strong or not; confluence) or syntactic restrictions (e.g. left linearity, non-ambiguity) or just adaptivity to the context (e.g. semantics, deduction, computation). We will review some of these situations, in particular in relationship with deduction and computation, showing why universality could be a good way to be specific. Rewriting is a universal language shown a long time ago to be Turing complete. Interestingly, in many situations this universality is restricted to cope with decidability or specific needs and the general language is tuned to get specific features like good properties (e.g. normalisation, strong or not; confluence) or syntactic restrictions (e.g. left linearity, non-ambiguity) or just adaptivity to the context (e.g. semantics, deduction, computation). We will review some of these situations, in particular in relationship with deduction and computation, showing why universality could be a good way to be specific.