Dagstuhl-Seminar 15062
Domain-Specific Languages
( 01. Feb – 06. Feb, 2015 )
Permalink
Organisatoren
- Sebastian Erdweg (TU Darmstadt, DE)
- Martin Erwig (Oregon State University, US)
- Richard F. Paige (University of York, GB)
- Eelco Visser (TU Delft, NL)
Kontakt
- Christina Schwarz (für administrative Fragen)
Software systems are the engines of a modern information society. Our ability to cope with the increasing complexity of software systems is limited by the programming languages we use to build them. Bridging the gap between domain concepts and the implementation of these concepts in a programming language is one of the core challenges of software engineering. Domain-specific languages (DSLs) successfully address this challenge through linguistic abstraction by providing notation, analysis, verification, optimization, and tooling that are specialized to an application domain.
DSLs are already ubiquitous in industrial software development with prominent examples such as HTML, SQL, Make, AppleScript, Matlab, or Simulink. In addition, with the increasing importance of computing to all scientific disciplines, DSLs can play a key role in capturing understanding and helping scientists to program at a high level of abstraction.
There is a wide range of methods and techniques for the development of DSLs. Each of these makes different trade-offs that enable different usage scenarios. After the initial design of a DSL, switching to another approach can be very expensive or even impossible. Therefore, the trade-offs and implications of different approaches must be well understood by practitioners from the beginning. However, there is no clear account of what exactly these trade-offs are; neither in industry nor in academia.
The goal of this seminar is to bring together key representatives from the communities that address DSLs from different perspectives: internal/external DSLs, domain-specific modeling, extensible languages, language workbenches, textual/graph-based/visual languages. This seminar will help unify these communities by:
- Developing a fundamental understanding of the properties and trade-offs of DSL design and implementation techniques
- Synchronizing research efforts within academia to enable collaborative work
- Synchronizing research with industrial requirements for DSLs
- Formulating a reference DSL that helps the understanding and comparison of different approaches
Software systems are the engines of modern information society. Our ability to cope with the increasing complexity of software systems is limited by the programming languages we use to build them. Domain-specific languages (DSLs) successfully address this challenge through linguistic abstraction by providing notation, analysis, verification, optimization, and tooling that are specialized to an application domain. DSLs are already ubiquitous in industrial software development with prominent examples such as HTML, SQL, Make, AppleScript, Matlab, or Simulink.
There is a wide range of methods and techniques for the development of DSLs. Each of these makes different trade-offs that enable different usage scenarios. After the initial design of a DSL, switching to another approach can be very expensive or even impossible. Therefore, the trade-offs and implications of different approaches must be well understood by practitioners from the beginning. However, there is no clear account of what exactly these trade-offs are; neither in industry nor in academia.
The goal of the proposed seminar was to bring together key representatives from the communities that address DSLs from different perspectives: (1) internal DSLs, (2) external DSLs, (3) domain-specific modeling, (4) extensible languages, (5) graph-based languages, and (6) formal semantics. To enable constructive exchange between seminar participants from different communities, the seminar started with one introductory talk per community by a representative. These introductory talks were essential for raising awareness for each other’s discipline, the challenges involved, and the problems already solved.
The first day of the seminar was concluded with a poster session. Before the seminar, the organizers invited each participant to prepare and bring a poster that describes their position with respect to the seminar topic. Many participants followed this invitation or used a flip chart for an impromptu presentation. During the poster session, the participants alternated between presenting their own poster and receiving introductions by others. While the seminar did not feature a separate round of introductions at the beginning of the first day, this did not at all hinder discussion and interaction during the talks prior to the poster session. The organizers of this seminar would like to encourage other organizers to consider a poster session as replacement for an introduction round.
After the community and personal introductions on the first day, the second day featured four talks about the “design history” of four existing DSLs. The presenters reported on how the design of their DSLs began, what features turned out to be good, what features turned out to require revision, and how modifications of the design were formed, decided, and implemented. Beyond reporting on their experience, the four talks provided concrete examples of DSLs that could be referred to by all participants during the remainder of the seminar. Subsequently to the design histories, the seminar featured a session on DSL evaluation followed by an industrial panel on industrial DSL requirements.
In the morning of the third day, the participants had the chance to present their latest research results in lightning talks. These were the only talks during the seminar without precise instructions by the seminar organizers. In total, there were eight lightning talks. We observed a high degree of interaction across communities. In the afternoon most participants joined for the excursion: A hike around Schloss Dagstuhl.
Thursday morning was reserved for four talks on DSL type systems. The four talks illustrated different ways of addressing DSL type systems. From a distinguished metalanguage and to automated mechanization to type-system embedding and attribute grammars. The presented work was not mature enough to allow for a meaningful discussion of benefits and disadvantages of the individual approaches. On Thursday afternoon the participants split into two breakout groups on Language Design Patterns and Name Binding. Some participants of the breakout groups decided to continue exchange and discussion after the seminar. The breakout groups were followed by tool demonstrations, where participants could freely move between demos.
Finally, on Friday morning the seminar ended with a session on establishing a research agenda, that is, relevant research questions that should be addressed by the DSL community. Moreover, the participants found that no new dedicated venue for DSLs needs to be established, because there are sufficiently many venues for DSL research available already.
This report collects the abstracts of the talks, and summarises other activities (including a panel and a discussion on a research agenda). The summaries and abstracts suggest outcomes and potential directions for future scientific research.
- Lennart Augustsson (Standard Chartered Bank - London, GB) [dblp]
- Hassan Chafi (Oracle Labs - Belmont, US) [dblp]
- William R. Cook (University of Texas - Austin, US) [dblp]
- Sebastian Erdweg (TU Darmstadt, DE) [dblp]
- Martin Erwig (Oregon State University, US) [dblp]
- Matthew Flatt (University of Utah - Salt Lake City, US) [dblp]
- Andrew Gill (University of Kansas, US) [dblp]
- Daco Harkes (TU Delft, NL) [dblp]
- Görel Hedin (Lund University, SE) [dblp]
- Steven Kelly (MetaCase - Jyväskylä, FI) [dblp]
- Oleg Kiselyov (Tohoku University - Sendai, JP) [dblp]
- Dimitris Kolovos (University of York, GB) [dblp]
- Shriram Krishnamurthi (Brown University - Providence, US) [dblp]
- Ralf Lämmel (Universität Koblenz-Landau, DE) [dblp]
- Sonja Maier (Universität der Bundeswehr - München, DE) [dblp]
- Peter D. Mosses (Swansea University, GB) [dblp]
- Bruno C. d. S. Oliveira (University of Hong Kong, HK) [dblp]
- Klaus Ostermann (Universität Tübingen, DE) [dblp]
- Richard F. Paige (University of York, GB) [dblp]
- Tillmann Rendel (Univ. Tübingen, DE) [dblp]
- Julia Rubin (MIT - Cambridge, US) [dblp]
- Ulrik Pagh Schultz (Univ. of Southern Denmark - Odense, DK) [dblp]
- Yannis Smaragdakis (University of Athens, GR) [dblp]
- Friedrich Steimann (Fernuniversität in Hagen, DE) [dblp]
- Laurence Tratt (King's College London, GB) [dblp]
- Tijs van der Storm (CWI - Amsterdam, NL) [dblp]
- Dániel Varró (Budapest Univ. of Technology & Economics, HU) [dblp]
- Eelco Visser (TU Delft, NL) [dblp]
- Markus Völter (Völter Ingenieurbüro - Stuttgart, DE) [dblp]
- Guido Wachsmuth (TU Delft, NL) [dblp]
- Eric Walkingshaw (Oregon State University, US) [dblp]
Klassifikation
- programming languages / compiler
- semantics / formal methods
- software engineering
Schlagworte
- internal DSLs
- external DSLs
- domain-specific modeling
- extensible languages
- language workbenches
- textual/graph-based/visual languages
- language design
- language implementation techniques