March 23 – 28 , 2003, Dagstuhl Seminar 03131

Domain-Specific Program Generation


Don Batory (University of Texas – Austin, US)
Charles Consel (University of Bordeaux, FR)
Christian Lengauer (Universität Passau, DE)
Martin Odersky (EPFL – Lausanne, CH)

For support, please contact

Dagstuhl Service Team


List of Participants
Dagstuhl's Impact: Documents available
External Homepage

Summary Report

1. Public Statement

Generative approaches have the potential to revolutionise software development as automation and components revolutionised manufacturing. This technology is particularly effective when applied with domain-specific techniques, since compact, domain-specific notations make programs easier to write and maintain and domain-specific knowledge allows for a more efficient implementation. The purpose of the seminar was to promote scientific cooperation on the topic of domain specific program generation. This topic has been pursued so far in a number of research communities which had insufficient contact with each other:

Domain-specific languages:
Language developers in a specific application domain have often been unaware of the domain-independent aspects of their domain-specific work. Vice versa, researchers that do not work in a specific domain are often unaware of the experiences made in application work.
High-performance parallelism:
This is one application domain, which has led to the development of a particular form of domain-specific language (so-called skeletons). Researchers in this community has been quite unaware of the wider aspects of domain-specific program generation.
Program generators:
This domain is concerned with the fast and reliable generation of members of a program family (so-called "product lines"). Researchers in this community are often in industry.
Rersearchers in this community develop a technology that can be used for customizing compilation and translation systems for domain-specific purposes. As a main result of the seminar, initial steps were taken to form a working group. Also cooperation on an individual basis was fostered. A compendium of papers presented at the seminar is in preparation for the Lecture Notes in Computer Science series of Springer-Verlag.

2. Scientific Highlights and Perspectives

The seminar contributed significantly to the formation of a new community around the seminar topic:

  • People from different language backgrounds - notably imperative languages (main representative: C++) and declarative languages (main representative: Haskell) - got to know each others' work. People were very receptive of each other: everybody went away with a wider horizon; new cooperations were formed at several levels; some led to newly formed joint authorships for the compendium.
  • Talks on applications made a special impact. In particular, the community on high performance parallelism (the "skeletons" community) was recognized as a domain with a 1.special need for optimization. The integration of this domian in the wider context of the research community is a major result of the seminar.
  • An outcome of this seminar was the foundation of a new IFIP WG 2.11 "Program Generation" ,

3. Presentation and Publication

Talks altogether: 35; Keynotes: 3; Talks of young researchers: 4.

23 submissions have been announced by participants for a planned compendium on the seminar topic. The submissions are based on talks given or discussions conducted at the seminar. Springer-Verlag has been approached for publication. The book will appear in May 2004:
Domain-Specific Program Generation; Christian Lengauer, Don Batory, Charles Consel, Martin Odersky, eds.;
Lecture Notes in Computer Science 3016, Springer-Verlag, 2004.

Preface - Table of Contents

4. Working Group on Domain-Specific Program Generation: Mission Statement

Generative approaches have the potential to revolutionize software development as automation and components revolutionized manufacturing. Such approaches are particularly effective when combined with domain-specific techniques, since compact, domain-specific notations make programs easier to write and maintain, and domain-specific knowledge allows for a more efficient implementation.

The aim of this Working Group of researchers and practitioners is to promote innovation in

  • foundations
  • design
  • engineering
  • techniques
  • tools
  • applications

for domain-specific program generation.

The scope of this Working Group covers all aspects of design, analysis, generation, and quality control of generative programs and the programs that they generate, with emphasis on the use of domain specific knowledge. Specific research themes include (but are not limited to the following areas):

  • Foundations: language design, semantics, type systems, formal methods, multi-stage and multi-level languages, validation and verification.
  • Design: models of generative programming, domain engineering, domain analysis and design, system family and product line engineering, model-driven development, separation of concerns, aspect-oriented modellig, feature-oriented modellig.
  • Engineering: practices in the context of program generation, such as requirements elicitation and management, software process engineering and management, software maintenance, software estimation and measurement
  • Techniques: meta-programming, staging, templates, in-lining, macro expansion, reflection, partial evaluation, intentional programming, staged configuration, stepwise refinement, software reuse, adaptive compilation, runtime code generation, compilation, integration of domain specific languages, testing.
  • Tools: open compilers, extensible programming environments, active libraries, frame processors, program transformation systems, program specializers, aspect weavers, and tools for domain modellig.
  • Application: IT infrastructure, finance, telecom, automotive, aerospace, space applications, scientific computing, health, life sciences, manufacturing, government, systems software and middle-ware, embedded and real-time systems, generation of non-code artefacts.

The objectives of the Working Group are:

  • Foster collaboration and interaction between researchers from domain engineering, and on language design, meta-programming techniques, and generative methodologies.
  • Demonstrate concrete benefits in specific application areas.
  • Develop techniques to assess productivity, reliability, and usability.

Book exhibition

Books from the participants of the current Seminar 

Book exhibition in the library, ground floor, during the seminar week.


In the series Dagstuhl Reports each Dagstuhl Seminar and Dagstuhl Perspectives Workshop is documented. The seminar organizers, in cooperation with the collector, prepare a report that includes contributions from the participants' talks together with a summary of the seminar.


Download overview leaflet (PDF).


Furthermore, a comprehensive peer-reviewed collection of research papers can be published in the series Dagstuhl Follow-Ups.

Dagstuhl's Impact

Please inform us when a publication was published as a result from your seminar. These publications are listed in the category Dagstuhl's Impact and are presented on a special shelf on the ground floor of the library.