Matlab-Python-Transpiler
Context
In present-day times of climate change, all industry sectors should bring down their green house gas emissions (carbon footprint). However, the IT sector’s emissions increase unchecked. The research area for this seminar thesis is the field of “green” software engineering. In this research area one aims at finding ways to lower the energy consumption of a piece of source code when run as a program. Using specialized registers (so called model specific registers) that deliver the cumulated energy consumption of the CPU one can track back energy consumption to different parts of a program.
Motivation
We work on a broader framework to profile programm code for energy efficiency. An energy profiler for Matlab programs has been developed. To generalize the measuring tool to other programming languages as a first step the profiler should be implemented in Python. To be able to integrate updates done in the Matlab profiler into the Python profiler an automated way of transpiling the Matlab tool to Python is desired. A cornerstone for such a Matlab-Python-transpiler is already implemented. The scope of this seminar is to refine the features of the transpiler and to cover a more complete part of the Matlab language.
Goal
- The student brings forth ideas for improvement and implements them.
- The student writes unit tests for their implementations.
- Using JavaCC an AST for the Matlab grammar is generated.
- The student can measure and explain the achieved improvement.
- The student works on the code collaboratively with the supervisor.
Requirements
- Compiler Construction lecture
- Matlab Basic to Advanced Skills
- Python Basic to Advanced Skills
- JavaCC / Java Basic Skills
Pointers
- Matlab Grammar
- Compiler Construction Lecture
- Cross Language Compiler Construction From Matlab To Python