PPL-Maschine |
Im Rahmen der Vorlesung Compilerbau ist als Beispiel für die
Übersetung eine Spezialsprache PPL,
Picture Programming Language,
entwickelt worden zur Erzeugung und Manipulation
von Bildern. In dieser Pascal-ähnlichen Sprache sind Bilder ein
eingebauter Datentyp, auf dem eine Reihe von Standard-Operationen
definiert sind: Vergrößern, Verkleinern, Ausschneiden und Zusammensetzen,
Drehen, Spiegeln, Helligkeitswerte verändern, Addieren, Subtrahieren
und Multiplizieren und andere mehr.
Die PPL wird in Zukunf sicher noch ausgebaut werden: Weitere
Bildmanipulationsoperationen und Bilderzeugungsoperationen sind hier
angedacht. Auch werden in dem exisiterenden Prototyp bisher nur
Graustufenbilder bearbeitet.
Für diese PPL-Sprache gibt es einen Compiler und eine virtuelle Maschine, PPL-VM,
ähnlich der Java Virtual Machine, mit der die Programme übersetzt und
anschließend interpretiert werden können. Dieses System ist vollständig in der funktionalen
Programmiersprache Haskell realisiert worden. Diese Sprache ist produktiver und
durch das ausgereifte Typsystem viel sicherer als Java und C,
also ideal geeignet für die Entwicklung von Prototypen.
Um größere Bilder zu verarbeiten und
diese Verarbeitungsschritte auch effizienter mit maschinennäheren Techniken zu realisieren, bietet sich eine
Implementierung der virtuellen Maschine in Java und/oder C an.
Für Java gibt es bereits ein Compiler-Backend, so dass PPL nach Java übersetzt werden
kann. Was fehlt ist eine in Java realisierte PPL-VM.
Die Aufgabe kann in zwei Teile gegliedert werden: Die Ablaufsteuerung innerhalb
der virtuellen Maschine und die Bildbearbeitungsoperationen. Die Haskell-Implementierung
dient für diese Aufgabe als Spezifikation und Prototyp.
|