|
Karel J. Robot Simulator für vereinfachte Syntax
Java Code Erzeugung
So wird ein Task übersetzt:
Es wird eine neue Datei angelegt, mit dem Namen
KarelJTask.java. In diese Datei wird fast aller Code
aus der Task-Datei einfach kopiert. Die erste Änderung ist,
daß die Anweisung
import kareltherobot.*;
eingefügt wird. Dann wird eine Klasse KarelJTask
angelegt, die das Interface Directions implementiert
(aus dem package kareltherobot). Diese Klasse
beinhaltet drei statische Methoden. Die erste,
setupWorld(), enthält Anweisungen, um die Welt
aufzubauen oder zu laden. Außerdem wird hier die
gewünschete Verzögerung eingestellt.
Die nächste Methode heißt task() und
beinhaltet einfach die Anweisungen, die in dem angegebenen Task
definiert waren.
Die dritte Methode ist die Methode main( String args[]
). Das ist die Methode, die von Java ausgeführt wird,
wenn ein Programm gestartet wird. In dieser Methode wird zuerst die
Methode setupWorld() und dann die Methode
task() aufgerufen.
In dem Simulator kann auch ein anderer Klassenname als
KarelJTask eingestellt werden. Dann werden die Datei
und die Klasse entsprechend anders benannt.
So wird loop übersetzt:
Eine loop-Anweisung wird durch eine
for-Schleife ersetzt. Dazu wird eine
Zählervariable benutzt, die bei 0 anfängt zu
zählen, und in jedem Schleifendurchlauf um 1
erhöht wird, solange sie kleiner als der numerische Ausdruck
ist. Also aus
loop( numAusdr )
wird
for( int zaehler = 0; zaehler < numAusdr; zaehler++ )
Es ist klar, daß der angegebene numerische Ausdruck ein
int-Ausdruck sein muss, es können jedoch nicht
nur Zahlen sondern auch Variablen oder Ausdrücke angegeben
werden.
Für die Zählervariable muss noch ein besonderer Name
gewählt werden, denn wenn alle gleich heißen, führt
das zu Namenskonflikten bei geschachtelten Schleifen. Daher werden
die gefundenen loop-Anweisungen gezählt. Der
Variablenname ergibt sich dann aus _i + Nummer der
aktuellen loop-Anweisung. Also für die erste
Schleife _i1, für die zweite _i2
usw.
|