Bachelorthesis: Efficient Interpretation of Expressions and Statements in MontiCore

The language workbench MontiCore offers language components to support the creation of expression and statement languages and languages containing the aformentioned. While code generation is supported, it is not ideal for every use case, as it requires recompilation on every change. This is not feasible for programs that allow entering new expressions during runtime, e.g., spreadsheet programs; The user can insert a calculation in a cell, press enter, and the result is calculated and displayed immediately.

To support this kind of software, MontiCore offers an interpreter; First, the entered expression is parsed and checked for errors. Afterwards, the interpreter traverses the Abstract Syntax Tree (AST), calculating values in the process. The final value can then be used for further calculations, displaying, etc.

To make this feasible, MontiCore’s interpreter needs to be efficient enough to calculate more complex models in a short amount of time. Current evaluations have shown that this is not the case, potentially, but not necessarily, due to its high degree of modularity.

Within this thesis, the aim is to analyse the current interpreter implementation with regard to efficiency, test and evaluate different approaches to increase its efficiency, and finally compare your implementation with other interpreters. The interpreters modularity, and functionality have to stay intact.

Tasks of this thesis

  • Analyse the current implementation with regard to efficiency and compare it to state-of-the-art approaches.
  • Implement and evaluate different approaches on a selected subset of the MontiCore interpreter. Select an appropriate approach.
  • Implement your selected approach for the full interpreter.
  • Create test data.
  • Compare your implementation with state-of-the-art interpreters.

Desirable Skills

  • Interest in compiler design and type systems
  • Lecture SLE
  • Prior knowledge regarding interpreters

Contact

For more information please sent your application documents to Flo Drux.

Prof. Dr. Bernhard Rumpe
Lehrstuhl Software Engineering
Ahornstr. 55
52074 Aachen