Compiler Visualisierung: Scanning

Studienarbeit

In der Lehre im Bereich Programmiersprachen und Übersetzer mangelt es oft an der Möglichkeit, Sachverhalte visuell ansprechend und anschaulich zu demonstrieren. Obwohl für die zugrundeliegenden Kalküle anschauliche Darstellungen existieren, z.B. in Form von Diagrammen endlicher Automaten, Kellerautomaten, Bäumen, werden solche Darstellungen im Produktiv-Betrieb nicht benötigt und daher nicht erzeugt. Für Lehr- und Demonstrationszwecke sind solche Visualisierungen dagegen sehr hilfreich, gerade wenn sie nicht nur statisch sind, sondern während der Eingabeverarbeitung animiert "in Aktion" gezeigt werden.

In dieser Arbeit soll ein solches Compiler-Animationswerkzeug für den Bereich der lexikalischen Analyse entwickelt werden. Die Arbeit soll im Eli-System eingebettet werden. Eli ist ein Werkzeugsystem zum Entwurf und zur Implementierung von Programmiersprachen und anwendungsspezifischen Sprachen. Eli enthält zahlreiche generierende Werkzeuge und Bibliotheken, die die Lösung von Übersetzungsaufgaben systematisieren und den Herstellungsprozeß von Sprachimplementierungen automatisieren.

Die Integration der Animationskomponente in ein Compiler-generierendes System hebt diese Arbeit von anderen Arbeiten zur Compiler-Visualisierung ab. In der Regel werden visuelle Demonstratoren nur für feste Sprachen und Compiler entwickelt und nicht durch Generatoren erzeugt.

Zur Implementierung der lexikalischen Analyse spezifiziert ein Eli-Benutzer die Struktur der Grundsymbole der zu implementierenden Sprache. Der Scanner-Generator Gla generiert daraus einen lexikalischen Analysator in Form eines direkt ausprogrammierten endlichen Automaten. An diesen Analysator muß die zu entwickelnde Visualisierungskomponente angeschlossen werden.

Zu den Aufgaben dieser Arbeit gehören

  • Untersuchung verwandter Arbeiten zur Visualisierung im Übersetzerbereich.
  • Entwurf der Visualisierungs-Komponente, insbesondere die Berechnung des Layouts des Automatendiagramms, die Animation von Automatenzustand, Text-Eingabe und Token-Ausgabe und die Benutzer-Interaktion.
  • Anpassung des Scanner-Generators Gla zur Ankopplung der Visualisierungs-Komponente.

Bearbeiter: Christian Nacke

Betreuer: Peter Pfahler

Impressum | Webmaster | Letzte Änderungen am : 16.10.2013