TU München

Master Thesis

Thema: Semantikerhaltende Übersetzung von SML nach OCaml

Technische Universität, Lehrstuhl II (Sprachen und Beschreibungsstrukturen)

Aufgabe:

SML und OCaml sind zwei vertreter funktionaler Sprachen. SML ist dabei nur als Spezifikation zu betrachten, für die verschiedene Implementierungen (z.B. PolyML) vorhanden sind. Die SML-Implementierungen sind dabei die älteren Sprachen (Spezifikation von 1997). Obwohl die Syntax beider Sprachen ähnlich sind, unterscheiden sie sich semantisch. Eine direkte Portierung von SML-Programmen auf das neuere OCaml ist nicht ohne weiteres möglich.

Im Rahmen dieser Masterarbeit soll ermittelt werden, in wie weit sich SML-Programme automatisiert in semantisch identische OCaml-Programme übersetzen lassen. Der Übersetzer soll dabei selbst in SML implementiert werden, um ihn in anderen Anwendungen als eine Art Just-In-Time-Compiler verwenden zu können. (Als Beispiel sei hier auf den Theorem-Beweiser Isabelle verwiesen, der in SML implementiert ist.) Als Basis für die Implementierung des Übersetzers dient die SML-Referenzimplementierung HaMLet, die ihrerseits in SML geschrieben ist. Vorteil dabei ist, dass sich die Arbeit rein auf den Übersetzungsprozess beschränkt, da HaMLet bereits den SML-Parser und den Typinferenzteil mitbringt und einige Ungenauigkeiten der SML-Spezifikation korrigiert.