Domain specific languages

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.

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).