If you are interested in writing a thesis (German or English) in the scope of one of our research topics, just come talk to us.
Possible topics
Here are some possible topics we would like to investigate. If you're interested in something else, we can talk about it
Extension of a GLL parser implementation in Java
We have implemented a GLL parser in Java (code on github). The parser supports arbitrary context-free grammars, even grammars with left-recursion, ambiguities, etc. We want to extend the parser to support the following features:
- Grammar composition (as needed, for example, in SugarJ)
- Layout-sensitive parsing (in the style of our paper at SLE 2012)
- Run-time code generation of parsing code to improve performance
- Variability-aware parsing (in the style of TypeChef)
If you're interested in parsing, we can also find other topics related to our GLL implementation.
Contact: Tillmann Rendel.
Syntax extensions for Java
We have implemented a toolchain to extend the syntax of Java (see SugarJ project). We want to implement the following extensions:
-
Concrete syntax and automatic generation of semantic combinators for object algebras (see this and this paper).
If you are interested implementing other language extensions for Java, you can talk to us and we try to formulate it as a thesis topic.
Contact: Tillmann Rendel.
Syntax Extensions for Haskell
We have implemented a toolchain to extend the syntax of Haskell (as part of the SugarJ project). We want to investigate the following questions by case studies:
- Is SugarHaskell useful to prototype language extensions for Haskell?
- What are the benefits and drawbacks of using SugarHaskell to provide specialized syntax for existing combinator libraries?
We would like to extend our implementation of SugarHaskell with the following features:
- Better integration with the Cabal build system and the GHC Haskell compiler.
If you are interested in SugarHaskell (or Haskell in general), we can also find other topics related to Haskell.
Contact: Tillmann Rendel.
Runtime Bytecode Generation
The systems SquOpt and Lightweight-Modular-Staging improve performance without sacrificing readability of source code by generating programs at runtime. However, current implementations generate code in a high-level language. A compiler must be invoked, whose execution takes many seconds, making these systems impractical on small problems. The goal of this project is to remove the bottleneck at the compiler by generating bytecode directly.
Contact: Yufei Cai.
Name-binding Language for PLT-Redex
PLT-Redex facilitates experimentation with reduction semantics, but it does not understand names. A new substitution function must be written for each user-defined language. This project seeks to remove the resultant code duplication by implementing a declarative specification of the binding and reference of names.
Contact: Yufei Cai.
Ongoing theses
This is a list of ongoing and previously carried out theses. It can give you an idea of concrete topics and the scope of a thesis.
Finished theses
- Jonas Pusch. Variability-Aware Interpretation. Bachelor's thesis, University of Marburg, October 2012. Supervisor: Christian Kästner, Sebastian Erdweg, Klaus Ostermann. [ pdf]
- Katharina Haselhorst. A Type System for Program Transformations based on Parametric Tree Grammars. Master thesis, University of Marburg, September 2012. Supervisor: Sebastian Erdweg, Klaus Ostermann. [ pdf]
- Felix Rieger. A Language-independent Framework for Syntactic Extensibility. Bacherlor thesis, University of Marburg, June 2012. Supervisor: Sebastian Erdweg, Klaus Ostermann. [ pdf]
- Stefan Fehrenbach. Retrofitting Language-oriented Design with SugarJ. Bacherlor thesis, University of Marburg, November 2011. Supervisor: Sebastian Erdweg, Klaus Ostermann. [ pdf]
- Markus Kreutzer. Statische Analyse von Produktlinien. Bachelor's thesis, University of Marburg, April 2012. Supervisor: Christian Kästner, Tillmann Rendel, Klaus Ostermann.

