01.02.15 - 06.02.15, Seminar 15062

Domain-Specific Languages

Diese Seminarbeschreibung wurde vor dem Seminar auf unseren Webseiten veröffentlicht und bei der Einladung zum Seminar verwendet.

Motivation

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:

  1. Developing a fundamental understanding of the properties and trade-offs of DSL design and implementation techniques
  2. Synchronizing research efforts within academia to enable collaborative work
  3. Synchronizing research with industrial requirements for DSLs
  4. Formulating a reference DSL that helps the understanding and comparison of different approaches