Goblint is a static analyzer written in OCaml for the analysis of multi-threaded C programs. Goblint is developed jointly at our chair and the Chair of Programming Languages and Systems at the University of Tartu. Students interested in bachelor and master theses on Goblint should have gained experience in functional programming as well as on abstract interpretation, e.g. by having completed the program optimization course. For inspiration, you may have a look at our open issues tracked on the Goblint Github page. If you want to do a student thesis related to Goblint, you may contact Julian Erhard, Michael Schwarz or Sarah Tilscher.
An example of a Currently Open Topic:
- BA: Analyzing Next-Generation C code with Goblint.
Goblint should be extended to support features of C11, so we can analyze programs using C11 features. This will provide you with insights into the C standard, Compiler Construction, and Static Analysis by Abstract Interpretation.
A succesful applicant should have attended either the Compiler Construction or the Program Optimization lecture.
This is (likely) not the only open topic that we can offer about Goblint. If you are interested in this topic or want to hear about other topics, contact us.
In this block we want to enrich the Flipped Classroom concept of Compiler Construction with web-based interactive trainings, just like the LR Tutor . If you want to do a thesis in this area, contact Michael Petter.
- BA: Semantics of MiniOcaml Tutor
Although technically a part of the Compiler Construction lecture, the MiniOcaml Tutor is pretty close to the other topics in this area. We need a web-based training tool for learning how to perform prooves on MiniOcaml programs, as in FPV Chapter 7.
- BA: LL Tutor
In this module, we want to have a web-based training tool for learning how to create First and Follow Sets for a given grammar, and how to use them for making Item-Pushdown-Automata deterministic, if possible.
- BA: Scanner Tutor
In this module, we want to have a web-based training tool for learning how to perform the sophisticated Berry-Sethi Automaton Construction.
Optimizing Compiler Structures for Quantum Computing
In this area we offer topics for Bachelor and Master theses related to our currently ongoing research. If you are interested look at the page of Yannick Stade.
Java CUP - an LR parser generator
Here, we offer topics in compiler construction, revolving around a well established Java parser generator. If you want to do a thesis in this area, contact Michael Petter.
- MA: Expanding the Error Treatment of CUP
the Java CUP LR parser generator lacks modern features like algorithm guided error handling - e.g. Jeffrey or Pottier . In this thesis, one is to explore the more modern possibilities that open up in the area of user friendly parsers for a legacy parser generator like CUP.
- BA: Expanding the Conflict Treatment of CUP
the Java CUP LR parser generator lacks modern features like algorithm guided conflict explanation - e.g. with automatic Counterexamples from Myers. in this thesis, we want to integrate these findings into the CUP parser generator.
If you are interested in working on other topics related to compiler construction or static analysis, you may contact any member of the chair via e-mail.