Following the collaboration on SugarJ with the Marburg team of Klaus Ostermann, the Software Language Design and Engineering Group at TU Delft has an opening for a researcher (3 year postdoc or 4 year PhD).
Domain-specific languages (DSLs) are emerging as mainstream technique to increase the level of abstraction in software engineering. We propose to develop techniques for deep integration of domain-specific languages into host languages through language libraries that define domain-specific extensions and can be imported into programs like regular libraries, enabling the definition and use of DSLs without deploying a new compiler or IDE. A language library describes all aspects of a language embedding, including syntax, static analysis, translation to the host language, and its integration into the IDE.
A key concern in the construction of an IDE is its responsiveness. Most language engineering tools have been designed around a dichotomy between meta-programming and programming, and rely on batch-based, whole-program compilation techniques, giving rise to full recompilation of language compositions and their editors in the context of language libraries. Ensuring a responsive IDE for language libraries, requires new techniques for online language composition.
Deep integration of DSLs raises various research questions from the perspective of language design. Classical issues of module systems, separate checking, information hiding, composability, self-applicability and recursion, need new answers when the modules to be composed are language libraries. Language libraries also enable the design of a minimal extensible core language from which a full language can be boot-strapped.
We will develop a language libraries framework by building on the Spoofax Language Workbench, validating it with a collection of language libraries for web programming.
If you are interested in the position please contact me.