Sven Keidel

About Me

Portrait Hello, my name is Sven Keidel (on the left of the protrait). I work as a PhD student in the Programming Languages Research Group at TU Delft (Netherlands) since 2016, under supervision of Dr. Sebastian Erdweg. I received my Master’s degree in computer science at TU Darmstadt (Germany) in 2015.

In my PhD, I develop new techniques in the area of abstract interpretation, which is an approach to systematically create static analyses. In my recent line of work, I am working on ways to simplify soundness proofs of abstract interpreters, or in other words, that a static analysis is reliable. My goal is to create a library with reusable components for abstract interpreters that are proven sound once an for all. Towards this goal, Sebastian, I, and other students at TU Delft are working on a Haskell library called Sturdy (for more information see below).


Toward Abstract Interpretation of Program Transformations
Sven Keidel and Sebastian Erdweg.
International Workshop on Meta-Programming Techniques and Reflection. ACM, 2017 [pdf]

The IDE Portability Problem and its Solution in Monto
Sven Keidel, Wulf Pfeiffer, and Sebastian Erdweg.
Proceedings of Software Language Engineering (SLE). ACM, 2016 [pdf]

Research Projects


Sturdy is a library to simplify the process of creating abstract interpreters and proving them sound. We used this library to create abstract interpreters for PCF, the WHILE language, Stratego, Java and JavaScript. The abstract interpreters for PCF and Stratego have rigorous soundness proofs. We are actively extending and maintaining the library in our research group in Delft. If you have questions, suggestions or comments about the library, please open an issue at GitHub.


This is the name of my PhD project. The project is funded by Deutsche Forschungs Gesellschaft (DFG). The project is about evolving legacy software systems to domain-specific languages (DSL). Legacy code bases become harder to maintain the larger their size and the more technical debt has been accumulated over the years. The use of DSLs can mitigate this problem, because they solve problems of a particular domain and depend less on a specific technology. However, manually refactoring the legacy code base to DSLs is a huge effort and an error-prone process. To this end, I want to develop a tool that reads in DSL definitions to automatically detect possible refactoring sites and refactor legacy code to DSL code.

The semantics of DSLs is often defined by a transformation of the abstract syntax tree (AST) of a DSL to the AST of a host language. A language for describing these transformations, which is particularly suitable for this project, is Stratego, a term-rewriting language. Given a DSL definition as a Stratego program, the goal is to derive a refactoring, that translates code of the host language to code of the DSL.


As my master thesis project, I worked on Monto. Modern IDEs support multiple programming languages via plug-ins, but developing a high-quality language plug-in is a huge development effort and individual plug-ins are not reusable in other IDEs. This problem is called the IDE portability problem. Monto provides a solution to the IDE portability problem based on a language-independent and IDE-independent intermediate representation (IR) for editor-service products. This IR enables IDE-independent language services to provide editor services for arbitrary IDEs, using language-independent IDE plug-ins. Monto combines the IR with a service-oriented architecture to facilitate the modular addition of language services, the decomposition of language services into smaller interdependent services, and the use of arbitrary implementation languages for services.


Teaching activities I was involved in.

Courses and Seminars


Ongoing Thesiss

Finished Thesiss


Sven Keidel
Office: HB 8.260
Phone: +31 15 27 81935

Mekelweg 4
2628 CD Delft
The Netherlands