February 1 – 6 , 2015, Dagstuhl Seminar 15062
1 / 3 >
For support, please contact
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.
Creative Commons BY 3.0 Unported license
Sebastian Erdweg, Martin Erwig, Richard F. Paige, and Eelco Visser
- Programming Languages / Compiler
- Semantics / Formal Methods
- Software Engineering
- Internal DSLs
- External DSLs
- Domain-specific modeling
- Extensible languages
- Language workbenches
- Textual/graph-based/visual languages
- Language design
- Language implementation techniques