Dr. Zef

Last week Wednesday I successfully defended my PhD thesis. Therefore, I am now officially a doctor. I was a little nervous, because you don't know in advance what questions will be be asked during the defense. However, it was a very nice, friendly defense.

[You can download my thesis as PDF](http://zef.me/thesis.pdf), though I must warn you: it's a page turner!

> Domain-Specific Languages (DSLs) are programming language aimed at a particular problem domain, e.g. banking, database querying or website page lay-outs. Through the use of high-level concepts, a DSL raises the level of abstraction and expressive power of the programmer, and reduces the size of programs. > > This dissertation covers various aspects of the design and implementations of such DSLs. Throughout the project, two DSLs were developed: WebDSL, a language for rapid web application development, and mobl, a DSL for mobile application development. Using these two case studies, the dissertation explores the design space, as well as techniques developed to implement the compiler and IDE for such DSLs. > > The general design principle applied is syntactic integration and separation of concerns. Rather than using a number of DSLs to build a single application, our approach is to develop a single, integrated DSL that can be used to develop the entire application, while still enabling clear separation of concerns. The result of this integration is static verification -- the ability to instantly be notified when your program is inconsistent, without having to run it. > > The dissertation covers five aspects of DSL design and implementation: (1) Verification, the ability to verify applications written using the DSL; (2) Coverage, how to ensure that a DSL enables its user to express what he needs to express; (3) Abstractions, the use as well as the definition of abstractions in a DSL; (4) Code generation, techniques for efficiently generating executable code from a DSL; (5) Portability, the ability to generate code from a DSL that is runnable on multiple platforms.