Thema: Delphi Stack Programmierung

Einzelnen Beitrag anzeigen

CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Stack Programmierung

  Alt 16. Mär 2007, 13:50
Hi,
warum machst du es so umständlich über Zeiger? Du kannst es dir einfach machen, indem du ein Delphi-Referenz durchsuchendynamisches Array nimmst, dass du füllst. Dann kannst du ganz einfach über Array[index] darauf zugreifen. Außerdem kannst du dann noch viel einfacher mit Delphi-Referenz durchsuchenMove den ganzen Stack bewegen, wenn du Elemente rauspopst oder reinpusht.
Ich denke, dass verkettete Listen an dieser Stelle viel zu überflüssig sind.

Zu deiner zweiten Frage: eigentlich sollte alles auf einem Stack liegen. Infix heißt, dass der Operand vor den Zahlen kommt: + 3 5 wäre ein Beispiel dafür. D.h. beim Tokenizing wirst du erst die beiden Werte ablegen und dann den Operanden. Beim Parsen kommt dann erst der Operand. Dann weißt du ja auch, wie viele Parameter du aus dem Stack holen musst. Also z.B. "!" (Fakultät) erwartet ja nur einen Parameter. (Nachtrag: Postfix ist ja das Gleiche nur anders herum.)
Noch eine Anmerkung zu deinem Beispiel: das Auswerten des Terms hat in der Stack-Klasse nichts zu suchen. Die Stack-Klasse hat erstmal nur die Aufgabe den Stack zu verwalten. Was da drin passiert, ist nicht Aufgabe der Stack-Klasse.

Generell empfiehlt sich die Lektüre von Anleitungen zum Compilerbau, damit du das Prinzip verstehst und weißt, was Tokenizing, lexikalische/syntaktische/semantische Analyse und Parsen genau bedeutet. Das Thema kommt zwar "schon" im Grundstudium Informatik dran, aber grundsätzlich sollte man nicht glauben, dass man das ohne viel Wissen mal eben so runter schreiben kann.

Chris
  Mit Zitat antworten Zitat