Karel J. Robot Simulator für vereinfachte Syntax

basiert auf dem Karel J. Robot Simulator Framework von Bergin, Stehlik, Roberts, Pattis
entwickelt von Christoph Bockisch
für Grundzüge der Informatik, Technische Universität Darmstadt, gehalten von Prof. Dr. M. Mezini und Dr. T. Kühne

Joseph Bergin, Mark Stehlik, Jim Roberts und Richard Pattis beschreiben in ihrer Einführung in Java eine Roboter Programmiersprache, die eine Vereinfachung der Java Syntax darstellt. Dieses Programm übersetzt ein solches Roboter Programm in 100% Java Code, der dann compiliert und ausgeführt werden kann. Dazu wird die Klassenbibliothek der Autoren verwendet, die es erlaubt, ein Roboter Programm, das in Java geschrieben wurde, graphisch darzustellen. Für eine Einführung in diese vereinfachte Sprache verweise ich auf http://www.csis.pace.edu/~bergin/KarelJava2ed/Karel++JavaEdition.html. Im Folgenden werden die Vereinfachungen vorgestellt, die dieses Programm übersetzen kann. Da diese Programmiersprache nur zur Einführung beschrieben wird, und sie nicht tatsächlich existiert, muß ich noch einige Einschränkungen einführen.

Letzte Änderung: 19.11.01, 22:10 Uhr



ACHTUNG: Immer wenn wir (oder Ihr) einen Bug finden, bemühe ich mich, diesen schnellst möglich zu korrigieren. Deshalb folgende Bitte: wenn Ihr einen Fehler findet, schaut bitte nach, ob Ihr die aktuelle Version des Simulators hast, oder ob der Fehler nicht vielleicht schon behoben ist. Um das zu vereinfachen, werde ich an dieser Stelle eine Liste aller bekannten Bugs veröffentlichen. Bitte schaut auch immer in der FAQ nach.

Bekannte Bugs

  • Ich erhalte eine Fehlermeldung, daß North, East, South bzw. West nicht aufgelöst werden kann.
    gefixt
  • Es kommt nur der Fehler "Compiler Fehler:" und die Simulation läuft nicht.
    jetzt wirklich gefixt!
  • Ich bekomme folgende Fehlermeldung:
inf1.task:21: turnLeft() in Turner cannot override turnLeft() in ur_Robot;
attempting to assign weaker access privileges; was public
        void turnLeft() {
gefixt
  • entsprechende Probleme mit der Klasse Robot.
gefixt
  • Ich bekomme folgende Fehlermeldung:
inf1.task:3: cannot resolve symbol
symbol  : constructor ur_Robot  ()
location: class ur_Robot
class Turner extends ur_Robot {
^
inf1.task:32: cannot resolve symbol
symbol  : constructor Turner  (int,int,int,int)
location: class Turner
        Turner karel = new Turner(1, 1, North, infinity);
gefixt