Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
7.1. HAMSTER-BEFEHLE 51<br />
Bringen Sie den Hamster in diese fur ihn unlosbaren Situationen, dann ist der Hamster derart von<br />
Ihnen enttauscht, da er im folgenden nicht mehr bereit ist, weitere Befehle auszufuhren. Derartige<br />
Fehler werden Laufzeitfehler genannt. Laufzeitfehler konnen im allgemeinen nicht schon<br />
durch den Compiler entdeckt werden, sondern treten erst wahrend der Ausfuhrung eines Programmes<br />
auf. Programme, die zu Laufzeitfehlern fuhren konnen, sind nicht korrekt! In Kapitel<br />
9.1 werden sogenannte Testbefehle eingefuhrt, mit denen sich die angefuhrten Laufzeitfehler<br />
vermeiden lassen.<br />
7.1.3 Beispiele<br />
Folgender Befehl ist syntaktisch korrekt:<br />
vor ( ) ;<br />
Er ist auch semantisch korrekt bzgl. der in Abbildung 7.2 (links oben) dargestellten Situation.<br />
Nach seiner Ausfuhrung ergibt sich die in Abbildung 7.2 (rechts oben) skizzierte Landschaft.<br />
Der Befehl fuhrt jedoch zu einem Laufzeitfehler, wenn die Landschaft in Abbildung 7.2 (links<br />
unten) die Situation skizziert, in der der Befehl ausgefuhrt wird.<br />
vor Befehl vor(); nach Befehl vor();<br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
############<br />
o<br />
o<br />
o<br />
o<br />
<<br />
# #<br />
# o<br />
# o<br />
o o<br />
# o<br />
###########<br />
#<br />
#<br />
#<br />
#<br />
#<br />
############<br />
#<br />
o o<br />
> # o #<br />
o<br />
o<br />
o<br />
o<br />
# #<br />
# o #<br />
# o #<br />
########### #<br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
#<br />
############<br />
o<br />
o<br />
<<br />
o # #<br />
# o<br />
# o<br />
o o<br />
# o<br />
###########<br />
vor Befehl vor(); nach Befehl vor(); Laufzeitfehler!<br />
Abbildung 7.2: Auswirkung von Hamsterbefehlen<br />
Syntaktisch nicht korrekt sind folgende Befehle:<br />
n imm();<br />
Gib();<br />
links um();<br />
vor()<br />
#<br />
#<br />
#<br />
#<br />
#<br />
############<br />
#<br />
o o<br />
> # o #<br />
o<br />
o<br />
o<br />
o<br />
# #<br />
# o #<br />
# o #<br />
########### #