i

Station - Die Programmiersprache MyKa

Die Sprache MyKa

Die Sprache MyKa ist eine sehr einfache Programmiersprache, die auf vieles verzichtet und nur ganz wenige Konstrukte zur Verfügung stellt.

Wir benutzen sie ebenfalls wegen ihrer Einfachheit. Um Aufbau und Funktionsweise von Interpretern und Compilern zu verstehen, reicht es aus, die Zusammenhänge an einer überschaubaren Sprache zu verstehen.

Syntax von MyKa

Beginnen wir mit einigen Beispielen für MyKa-Programme:

Programm 1:

links
while nichtVorWand:
  ziegelHinlegen
  schritt
#while

Programm 2:

if nichtVorWand:
  if nichtVorZiegel:
    schritt
    schritt
    schritt
    schritt
  else:
    ziegelHinlegen
  #if
else:
  links
#if

Programm 3:

markeSetzen
schritt
while nichtAufMarke:
  while nichtVorWand:
    schritt
  #while
  links
#while

Anhand dieser Programme lassen sich alle wesentlichen Syntaxregeln informell beschreiben.

While-Programme sind Sequenzen von Anweisungen.

Anweisungen können elementare Anweisungen oder Kontrollanweisungen sein.

Als elementare Anweisungen sind erlaubt:

  • schritt
  • links
  • rechts
  • ziegelHinlegen
  • ziegelAufheben
  • markeSetzen
  • markeLoeschen
  • pass

Als Kontrollananweisungen dürfen vorkommen:

  • Wiederholungen der Gestalt: while [Bedingung] : [Anweisungssequenz] #while
  • Fallunterscheidungen der Gestalt: if [Bedingung] : [Anweisungssequenz] else : [Anweisungssequenz] #if

Bedingungen müssen folgende Gestalt haben:

  • vorZiegel
  • nichtVorZiegel
  • vorWand
  • nichtVorWand
  • aufMarke
  • nichtAufMarke

Vorgaben zur Gestaltung des Programmcodes werden nicht gemacht. Einrückungen und Leerzeichen dienen nur der besseren Lesbarkeit und haben ansonsten keine Bedeutung. Programm 1 (siehe oben) könnte also auch so dargestellt werden:

links while nichtVorWand: ziegelHinlegen schritt #while

Aufgabe 1

Eine informelle Klärung lässt oft noch Fragen offen, z.B.: Aus wie vielen Anweisungen kann eine Sequenz bestehen? Kann eine Sequenz leer sein, oder muss sie mindestens aus einer Anweisung bestehen?

Formuliere selbst weitere Fragen, die noch offen sind.

Semantik von While

Die Bedeutung der elementaren Anweisungen erschließt sich aus den Bezeichnern der Anweisungen. Entsprechendes gilt für Bedingungen:

Fallunterscheidungen der Gestalt if [Bedingung] : [Anweisungssequenz] else : [Anweisungssequenz] #if werden in der üblichen Weise ausgeführt: Wenn die Bedingung erfüllt ist, dann wird die erste Anweisungssequenz ausgeführt, ansonsten die zweite.

Wiederholungen der Gestalt while [Bedingung] : [Anweisungssequenz] #while werden wie while-Anweisungen ausgeführt: Solange die Bedingung erfüllt ist, wird die Anweisungssequenz ausgeführt.

Aufgabe 2

Auch hier bleiben noch Fragen offen, z.B.: Wie verhält sich der Roboter bei einer schritt-Anweisung, wenn er direkt vor der Wand steht?

Formuliere selbst weitere Fragen, die noch offen sind.

Suche

v
4.3.4.1
dev.inf-schule.de/automaten-sprachen/interpretercompiler/compilermyka/station_myka
dev.inf-schule.de/4.3.4.1
dev.inf-schule.de/@/page/syygCu41T2EO0T3k

Rückmeldung geben