Zur Themenübersicht    

2. UML-Diagramm, Klassenstruktur und das fertige Programm



1. Das UML-Diagramm

2. Klassenstruktur

Knotenpunkt aller Klassen ist das Hauptformular.

2.1. TFeld und TBender

Zur grafischen Darstellung der Auswirkung der Befehle besitzt das Hauptformular ein Feld (TFeld) und den Roboter (TBender).
Das Feld kümmert sich dabei um das Zeichnen der Hindernisse und Items sowie um die Position des Roboters.
Der Roboter zeichnet sich selbst und kennt das Feld. Damit reicht es den Roboter anzusprechen, wenn er seine Position oder ähnliches ändern soll.
Der Robter teilt diese Positionsänderungen dann dem Feld mit und veranlasst einen repaint.
Informationen über Ort und Status des Roboters werden zusätzlich auf dem Formular dargestellt.
Außerdem kann über Klicks auf das zum Feld gehörende Image die Position von Items und Hindernissen geändert werden.

2.2. TScanner und TScannerAutomat,

"Der Scanner hat die Aufgabe, aus dem Zeichenstrom die lexikalisch richtigen Ausdrücke herauszusuchen. Während falsche lexikalische Ausdrücke bei den meisten Scannern zu Fehlermeldungen führen, haben wir uns [..] dazu entschlossen, diese einfach zu überlesen."
Der Scanner bereitet die Eingabe für den ScannerAutomaten auf und erzeugt mit dessen Hilfe die Tokenliste. Diese wird dann an den Parser übergeben.

2.3. TParser und TParserAutomat

"Aufgabe des Parsers ist es, festzustellen, ob die Tokenliste [...] der Syntax der jeweiligen Programmiersprache entspricht."
Der Scanner prüft mithilfe des ParserAutomaten, ob syntaktische Fehler vorhanden sind. Wenn dies der Fall ist wird eine entsprechende Fehlermeldung ausgegeben.
Ist der Programmtext syntaktisch korrekt, kann der Interpreter diese ohne Gefahr ausführen.
Achtung: Der Parser erkennt nur syntaktische Fehler, Endlosschleifen o. ä., kann er nicht erkennen.

2.4. TInterpreter

Aufgabe des Interpreters ist es, ein syntaktisch korrektes Programm auszuführen. Anders als bei einem Copiler geschieht dies in unserem Fall direkt und ohne Umwandlung in eine Zielsprache. (z.B. Assembler, o. ä.). Dazu spricht er den Roboter direkt über die "Kennt-Beziehung" an.


3. Das fertige Programm

Das fertige Programm kann hier im Delphi-Code heruntergeladen werden.