Open Theses


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 and Michael Schwarz.

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.

Compiler Construcion

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 or Michael Schwarz.

  • 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: Typing Tutor
    In this module, we want to have a web-based training tool for learning how to check correct typing of expressions, as well as a trainer for structural subtyping.
  • BA: Attribute Systems Tutor
    In this module, we want to have a web-based training tool for learning how to prove strong acyclicity of an attribute system.
  • 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.

Other topics

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.

Completed Theses ✓

This is an incomplete list of some of the theses related to Goblint that were completed at our chair since the middle of 2019.

Bachelor's thesis

A Continuous Integration and Testing Platform for the Static Analyzer Goblint (Andreas Ferrano, BA 04/21)
Adding Support for C99 and C11 to the Goblint Static Analyzer (Coşku Barış Coşlu, BA 10/20)
Extending a Syntactic Search in C Source Code with Analysis Results from the Static Analyzer Goblint (Elias Brandstetter, BA 09/20)
Comparison of Analyses in CIL and Goblint (Kerem Cakirer, BA 09/20)
Syntactical Search in C Source Code (Olga Faddeenkov, BA 07/20)
User Interface for Program Analyzer Goblint using a OCaml-JavaScript Transpiler (Alex Micheli, BA 05/20)
LR Parser Tutor (Leo Fahrbach, BA 20)

Master's thesis

Liveness Analysis of Multi-Threaded C with Posix Threads (Denis Grebennicov, 05/21)
Implementation and Comparison of Precision of Various Abstract Domains in the Program Analyzer Goblint (Dymtro Yakymets, MA 11/20)
Incremental Static Analysis with Goblint (Julian Erhard, MA 04/19)
Sound Yet Precise Modelling of Arrays in Abstract Interpretation (Michael Schwarz, MA 04/19)