Exkurs - Die Programmiersprache MyKa
Syntax und Semantik - informell
Syntax und Semantik der Mini-Programmiersprache MyKa sollen hier informell beschrieben werden.
Die erste Tabelle zeigt die elementaren Anweisungen von MyKa.
elementare Anweisung | Bedeutung |
---|---|
schritt | einen Schritt vorwärts bewegen - sofern möglich |
links | um 90° nach links drehen |
rechts | um 90° nach rechts drehen |
ziegelHinlehen | einen Ziegen in das vor dem Roboter liegende Feld hinlegen - sofern möglich |
ziegelAufheben | einen Ziegen von dem vor dem Roboter liegenden Feld aufheben - sofern möglich |
markeSetzen | eine Marke auf das Feld setzen, auf dem sich der Roboter befindet |
markeLoeschen | eine Marke löschen, die sich auf dem Feld des Roboters befindet - sofern möglich |
pass | nichts machen |
In der zweiten Tabelle sind die möglichen Bedingungen von MyKa aufgelistet.
Bedingung | Bedeutung |
---|---|
vorWand | Befindet sich der Roboter vor einer Wand? |
nichtVorWand | Befindet sich der Roboter nicht vor einer Wand? |
vorZiegel | Befindet sich der Roboter vor einem Ziegel? |
nichtVorZiegel | Befindet sich der Roboter nicht vor einem Ziegel? |
aufMarke | Befindet sich der Roboter auf einer Marke? |
nichtAufMarke | Befindet sich der Roboter nicht auf einer Marke? |
Die dritte Tabelle zeigt, wie man mit Kontrollstrukturen komplexere Anweisungen bilden kann. Beachte, dass diese Kontrollstrukturen auch geschachtelt werden können.
Kontrollstruktur | Struktur | Bedeutung |
---|---|---|
Sequenz | "Anweisung" "Anweisung" ... "Anweisung" | Führe die Anweisungen der Reihe nach aus. |
Fallunterscheidung | if "Bedingung": "Anweisungssequenz" else: "Anweisungssequenz" #if | Wenn die Bedingung erfüllt ist, dann führe die erste Anweisungssequenz aus, ansonsten die zweite Anweisungssequenz. |
Wiederholung | while "Bedingung": "Anweisungssequenz" #while | Solange die Bedingung erfüllt ist, führe die Anweisungssequenz aus. |
Syntax und Semantik - formal
Eine informelle Beschreibung von Syntax und Semantik liefert einen ersten Überblick über die Struktur und Bedeutung der Sprachelemente der Programmiersprache. Bei einer informellen Beschreibung bleiben meist aber noch Fragen offen.
Im Fall der Programmiersprache MyKa ist beispielsweise noch nicht geklärt, ob es auch leere Anweisungssequenzen geben kann (z.B. in der Anweisung while nichtVorWand: #while). Ungeklärt ist auch noch, wie sich ein mehrfaches Setzen einer Marke auswirkt.
Alle diese Fragen werden geklärt, wenn Syntax und Semantik präzise beschrieben werden. Für die Programmiersprache MyKa wird das in den Abschnitten ... nachgeholt.