Home > Informatik > Formale Sprachen > Folge 21: Eine Stackmaschine

21.1 Zielsetzung

21.1 - 21.2 - 21.3 - 21.4

In diesem Kurs wollen wir einen kleinen Modell-Compiler implementieren, der einfachste Java-Quelltext in ein Programm übersetzen soll, das dann von einer einfachen "Maschine" interpretiert wird.

Hier sehen Sie einen solchen kleinen Java-Quelltext:

Rad = 4;
Pi = 3,14;
Umfang = 2 * Pi * Rad;

Das ist nur ein sehr einfaches Beispiel. Später wollen wir auch Verzweigungen und Schleifen ermöglichen, vielleicht auch Methoden-Aufrufe und mehr, aber das ist jetzt nicht so wichtig. Viel wichtiger ist, dass wir im Rahmen dieses Kurses die verschiedenen Kompetenzen berücksichtigen, die in den Abiturvorgaben Informatik für das Land NRW formuliert sind.

Unser Modell-Compiler übersetzt den obigen Quelltext dann in einen Code, der von einem sogenannten Stackinterpreter Zeile für Zeile ausgeführt werden kann. Ein Stackinterpreter ist nichts anderes als ein Stack, der rechnen kann. Bei einer Addition werden beispielsweise die beiden oberen Stackelemente addiert, dann vom Stack entfernt und durch das Ergebnis der Berechnung ersetzt.

Der Stackinterpreter soll dann am Ende das richtige Ergebnis der Variable umfang ausgeben.

Schema: Vom Quelltext zum Stackcode zum Ergebnis

Vom Quelltext zum Stackcode zur Ausgabe

Der nächste Schritt in unserem kleinen Projekt ist die Erstellung eines Entwurfsdiagramms, so wie es der Kernlehrplan Informatik des Landes NRW auch vorsieht. Entwurfs- und Implementationsdiagramme werden explizit in den Vorgaben für das Abitur 2018 genannt.

Zu diesem Thema können Sie sich auch ein Arbeitsblatt herunterladen.

Weiter mit 21.2 Entwurfsdiagramm...