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

21.3 Stackmachinen

21.1 - 21.2 - 21.3 - 21.4

Wir wollen uns nun näher mit der Klasse Stackmachine beschäftigen. Hier noch einmal das zweite Entwurfsdiagramm für das gesamte Projekt des Interpreters.

Das konkretere Entwurfsdiagramm

Die Klasse Stackmachine ist eine echte Tochterklasse von Stack, erbt also alle public-Attribute und public-Methoden. Ein Objekt der Klasse Stackmachine kann also Operationen wie push und pop ausführen.

Grundsätzliche Arbeitsweise einer Stackmaschine

Eine Stackmaschine ist ein Stack, der rechnen kann. Dazu wird die Klasse Stack um vier weitere Methoden ergänzt: add, sub, mul und div. Was diese Methoden bewirken, zeigt die folgende Abbildung:

Arbeitsweise der vier Operationen der Stackmaschine

Die vier genannten Methoden addieren, subtrahieren, multiplizieren bzw. dividieren die beiden oberen Stackelemente, entfernen sie vom Stack und pushen das Ergebnis der Berechnung dann wieder auf den Stack.

Achtung: Bei der Subtraktion wird oberste Stackelement vom zweitobersten subtrahiert, während bei der Division das zweitoberste Stackelement durch das oberste dividiert wird. Hier muss man echt aufpassen!

Übungen

Übung 21.3-1
  1. Besorgen Sie sich eine funktionierende Java-Klasse Stack mit den üblichen Methoden push, pop, top und empty.
  2. Simulieren Sie die Arbeitsweise einer Stackmaschine zunächst mithilfe des Objektinspektors. Rufen Sie mit der rechten Maustaste die push-Methode des Stack-Objektes auf und pushen Sie die Zahl 3 auf den leeren Stack. Wiederholen Sie den Vorgang mit den Zahlen 20 und 5.
  3. Versuchen Sie dann, durch geschickte Anwendung der vier Methoden push, pop, top und empty die beiden oberen Stackelemente zu addieren, zu subtrahieren, zu multiplizieren und zu dividieren.
 
Übung 21-2
  1. Legen Sie nun eine Tochterklasse Stackmachine der Klasse Stack an und implementieren Sie die vier Methoden add, sub, mul und div.
  2. Wenn Sie nicht (mehr) wissen, wie Vererbung in Java realisiert wird, gehen Sie bitte auf die Lexikon-Seite "Vererbung". Dort wird Ihnen alles erklärt.

Zu dieser Folge können Sie sich ein Arbeitsblatt herunterladen.

Lösungsvorschlag auf den Lehrerseiten / nähere Infos dazu

Weiter mit 21.4 Einfache Berechnungen...