DSL 2013

DSL 2013 is an intensive summer school in the field of domain specific languages. It is the 5th summer school organised within the framework of the Central European Functional Programming School (CEFP).

The main goal is to bring together computer scientists; both senior researchers and advanced graduates and PhD students.

The invited lecturers are the most prominent researchers in the field in Europe, and they will present state-of-the-art programming techniques in domain specific languages. The event is organized by the Faculty of Mathematics and Computer Science of Babeş-Bolyai University.

Being organized by the Erasmus IP (intensive program), the participating students will receive 4 ECTS credits that they can present at their home institutions.

NEW: DSL 2013 Software Packages and Lecture Notes are now online!

About domain specific languages

Domain specific languages (DSLs) are languages specialized for a given domain, outstanding examples being: SQL for databases, makefiles for building software, Matlab for numeric computations, CUDA for GPU programming, etc.

While generic purpose languages (GPLs) are designed to describe problems of any kind, DSLs are restricted: One will never write an application with 3D graphics in SQL, for example. On the other hand, within their own domain, DSLs can beat GPLs. Domain specific language abstractions shorten the development cycle and makes maintenance easier. In some cases DSLs can be specialized enough that allows non-programmer domain experts to use them. Furthermore, compilers of DSLs can also benefit from the restricted nature of the languages: They are able to use domain specific optimization techniques making the generated code performing better. DSLs can be implemented either as a stand alone language with own compiler frontend, or they can be implemented within a GPL. In the latter case we call them embedded DSLs (EDSLs).

Functional programming has a tight relation to EDSLs. Declarative nature, high abstraction level, strong type system and flexible syntax are features that make language embedding easier. This is why general purpose functional languages are good candidates to host EDSLs. Notable examples are Haskell (a pure functional language with expressive type system) and Scala (that unifies functional programming with object orientation in a Java environment).