Programming Languages

Performance-Analyse und -Optimierung der Ausgabe eines C#-zu-Python-Quellcodeübersetzers

Assigned to Julian Stockmann.

Im Zuge des Tübinger Software-Projekts (TSPs) 2018/19 wurde in Zusammenarbeit mit der yWorks GmbH (yWorks) die neue Version 3.0 des Quellcodeübersetzers Blunter entwickelt. Dadurch ist das Programm nun in der Lage, ein gegebenes C#-Projekt in ein Python-Projekt zu übersetzen.

Die Ausgabe soll später eventuell für eine Python-Version von yFiles 1 benutzt werden. Dazu wird allerdings noch eine graphische Benutzeroberfläche benötigt, da nur die Algorithmen und Tests direkt übersetzt werden können, was nicht Teil dieser Bachelor-Arbeit ist. Aufgrund der unterschiedlichen Strukturen und Funktionsweisen von C# und Python kommt es in einigen Be reichen bei der Ausführung des ausgegebenen Python-Codes zu inakzeptabel hohen Performance-Einbußen.

In dieser Bachelor-Arbeit liegt der Fokus nun darauf, Laufzeit- und Speicheranalysen durchzuführen, verschiedene Sprachkonstrukte und Implementationen von Python zu analysieren, mit C# zu vergleichen und ggf. den Blunter so anzupassen, dass eine effizientere Ausgabe produziert werden kann. Sollten Verbesserungen nicht direkt im Blunter, sondern nur auf Python-Seite gemacht werden können, muss darauf geachtet werden, dass der Aufwand einer Nachbereitung der Übersetzung möglichst gering ist, da im Produktivbetrieb relativ häufig übersetzt werden muss und das einen nicht zu unterschätzenden Mehraufwand darstellt.

Contact

Philipp Schuster