Hessischer Bildungsserver / Arbeitsplattformen

While-Berechenbarkeit

In der Theoretischen Informatik gibt es mehrere Berechenbarkeitskonzepte, unter anderem die Turing-, Registermaschinen-, Goto- und die While-Berechenbarkeit, welche zueinander äquivalent sind. Wird das Konzept der Berechenbarkeit im Unterricht behandelt, so bieten Simulationsprogramme eine förderliche Unterstützung des Lernprozesses, weil sich die Schülerinnen und Schüler aktiv und selbstständig mit Berechnungen auseinander setzen können.

Ein WHILE-Programm kann mit folgenden syntaktischen Elementen geschrieben werden:

Variablen  x0   x1   x2  ...
Konstanten  0   1   2  ...
Trennsymbolen  ;   :=   !=
Operationszeichen  +   -
Schlüsselwörtern  WHILE   DO   END

 

Ein WHILE-Programm ist entweder eine Zuweisung, eine Schleife oder eine Sequenz zweier WHILE-Programme:

  • Eine Zuweisung hat die Form xi := xj + c bzw. xi := xj - c, wobei c eine Konstante ist.
  • Eine Schleife hat die Form WHILE xi != 0 DO P END, wobei P ein WHILE-Programm ist.
  • Eine Sequenz hat die Form P1 ; P2, wobei P1 und P2 WHILE-Programme sind.

Beispiel: Division zweier Zahlen x3 = x1 DIV x2

x1 := x1 + 17;  # x = 17
x2 := x2 + 5;    # y = 5
x3 := x3 + 0;    # z = 0, Ergebnis
x4 := x1 + 1;    # h = x + 1, Initialisierung
x5 := x2 + 0;
WHILE x5 != 0 DO  # h = h - y
  x4 := x4 - 1;
  x5 := x5 - 1;
END;
WHILE x4 != 0 DO  
  x3 := x3 + 1;  # z = z + 1
  x5 := x2 + 0;
  WHILE x5 != 0 DO  # h = h - y
    x4 := x4 - 1;
    x5 := x5 - 1;
  END
END

Zum leichteren Verstehen von WHILE-Programmen können diese mit # oder // kommentiert werden.

Zur Semantik von WHILE-Programmen gehört, dass alle Variablen anfangs den Wert 0 haben. Ist in einer Subtraktion c > xj, dann wird das Ergebnis auf 0 gesetzt. Negative Zahlen kommen also nicht vor.

Der Schüler Jonas Hülse von der Ernst-Reuter-Schule I Frankfurt hat ein Simulationsprogramm für WHILE-Programme entwickelt, mit dem man schrittweise die Berechnung verfolgen kann.

while.png

Sie können dieses Simulationsprogramm in der Version 2.1.0 herunterladen.
Der Quelltext steht auf https://github.com/Jonas0204/WHILE-Berechenbarkeit zur Verfügung.

Die Entwicklung dieses Simulationsprogramms geht auf die Aufgabe WHILE-Programme aus dem Landesabitur 2022 zurück.