ZHAW-Logo OAPA-Logo TAT-Logo
zurück  
Diplomarbeit 2005 (DA05): Arbeits-Archiv
 
DA Kls 05/3 - SDL Codegenerator
Studierende: Jan Haug, haugjan
  Patrik Lengweiler, lengwpat

Betreuer: Rolf Klaus, klsr

Ziel dieser Arbeit war es, einen Codegenerator zu erstellen, welcher aus SDL-Code C-Code generiert.

SDL ist eine Sprache, um das Verhalten eines Systems zu spezifizieren und zu beschreiben, insbesondere das von Zustandsmaschinen. Die SDL Sprache umfasst eine grafische und eine textbasierte Version. Der Codegenerator arbeitet nur mit der textbasierten Version von SDL.

Weil die ganze SDL Empfehlung sehr umfangreich ist, musste fur den Codegenerator zuerst ein Subset des Funktionsumfangs definiert werden. Dieses Subset beinhaltet die wichtigsten Komponenten, um erweiterte deterministische Zustandsmaschinen zu beschreiben. Aus dieser Teilmenge an SDL-Befehlen kann eine Beschreibungsdatei erstellt werden. Das Kommandozeilenprogramm erzeugt aus dieser Datei einen fertigen C-Code. Nur die Grundfunktionen fur den Zugriff auf die Hardware mussen vom Benutzer von Hand erstellt werden.

Der Codegenerator uberpruft die Eingabedatei auf ihre Korrektheit, das heisst der SDL-Code wird lexikalisch, syntaktisch und semantisch analysiert. Die Benutzer werden auf Fehler hingewiesen. Sinnvolle und korrekte Fehlermeldungen auszugeben war eine der schwierigsten Herausforderung der Arbeit.

Die Praxistauglichkeit sollte gemass Aufgabenstellung anhand eines konkreten Beispiels uberpruft werden. Dazu wurde eine bestehende Praktikumsaufgabe aus dem Unterrichtsfach "Technische Informatik" umgesetzt. Die Aufgabe dieses Praktikums bestand darin die Zustandsmaschine einer Modellwaschmaschine zu programmieren. Dieses Beispiel hat aufgezeigt, dass der Umgang mit dem Codegenerator sehr einfach ist. Die Veranderung der Logik kann auf einem hohen Abstraktionslevel erfolgen.

Das Resultat der Diplomarbeit ist vollstandig und kann produktiv eingesetzt werden.

zurück