Assignment No. 3 SLP 2011


The SLP course

Lab dates / deadlines

  • May 26, 2011: Sketch solution
  • June 7, 2011: Present solution


DSL implementation


Implement a DSL with a language or system of your choice.

  • You can use any DSL you like.
  • Make an effort to present the specifics of the chosen language or system.
  • In particular, clarify how the language or system is helpful in implementing DSLs.
  • Make sure to exercise some non-trivial aspect of DSL implementation, e.g., the use of metaprogramming.

You can use any DSL you like, but here is a proposal in case you need one. That is, you could cover a DSL for finite state machines (FSMs) with aspects as follows: a textual syntax, a visual syntax, a fluent API, a check for determinism and unreachable state, a simulator that tries to accept some input stream with the FSM, code generation for graphviz/dot or Java. A good solution should engage in some form of metaprogramming.


Try to drill into one of languages or systems that are mentioned below.

Please send an email once you have picked a language or system so that conflicts are avoided.

Names are listed for some options—-meaning that some students have already picked an option.

Languages / language extensions for metaprogramming

Metaprogramming systems


Further reading