Exkurs - MyKaGoto

Programme mit Sprungbefehlen

Die Ablauflogik eines MyKa-Programms wird mit Hilfe von Kontrollanweisungen (wie z.B. der Wiederholeanweisung while ...) festgelegt.

links
while nichtVorWand:
  ziegelHinlegen
  schritt
#while

Die Ablauflogik kann aber auch mit Hilfe von Sprungbefehlen beschrieben werden. Das folgende Flussdiagramm zeigt, wie die einzelnen Anweisungen und Bedingungen verknüpft werden müssen.

Programmablaufplan

Ein MyKaGoto-Programm setzt die Verknüpfung von Anweisungen und Bedingungen mit Hilfe von Sprungmarken und Sprungbefehlen wie folgt um:

links
label .L0
if nichtVorWand: goto .L1
else: goto .L2
label .L1
ziegelHinlegen
schritt
goto .L0
label .L2

Wir werden solche MyKaGoto-Programme auch in einer strukturierten Form benutzen. Ein zugehöriges strukturiertes MyKaGoto-Programm ist eine Liste bestehend aus Label-Anweisung-Paaren.

[
(None, ['links'])
('.L0', ['noop'])
(None, ['if', ['nichtVorWand'], ['goto', '.L1'], ['goto', '.L2']])
('.L1', ['noop'])
(None, ['ziegelHinlegen'])
(None, ['schritt'])
(None, ['goto', '.L0'])
('.L2', ['noop'])
]

Die Codesprache Goto

Syntax und Semantik der Sprache Goto werden hier nur informell beschrieben.

Goto-Programme bestehen aus Anweisungen, die mit natürlichen Zahlen als Marken versehen sind. In jeder Zeile des Quelltextes steht nur eine Anweisung. Der Einfachheit haber werden nur die benötigten Marken dargestellt. Es gibt verschiedene Typen von Anweisungen:

Variablenbezeichner dürfen nur in der Form x[Zahl] gebildet werden, d.h., nach dem Symbol x folgt eine natürliche Zahl.

Terme in Zuweisungen müssen immer vom Typ [Zahl] oder [Variable] + [Zahl] oder [Variable] - [Zahl] sein. Auch hier steht [Zahl] für eine beliebige natürliche Zahl.

Bei der Ausführung von Goto-Programmen sind folgende Vorgaben zu beachten:

X

Fehler melden

X

Suche