Einzelnen Beitrag anzeigen

Penelopee

Registriert seit: 7. Okt 2005
69 Beiträge
 
#10

Re: Wie verhält sich der Stack bei einem rekursiven Algorith

  Alt 25. Feb 2007, 11:02
Hallo!

Also ein Assembler ist definitiv nicht in meinem Programmtext, alles "Hochsprache" (kenne mich Assembler-Code überhaupt nicht aus).
Ich muss wie gesagt hauptsächlich die Funktionsweise des Parsers vorstellen. Aber mir wurde gesagt, dass ich dabei auch auf die Aufgabe des Stacks eingehen soll!

Ich wollte eigentlich noch eine Sache fragen, was jetzt aber sirius schon beantwortet hat, nämlich ob bei dem ersten Schritt nicht zumindest die Rücksprungadresse in den Stack kommen muss!

Ansonsten habe ich es so verstanden, dass wenn er ein Teilproblem gelöst hat (also z.B. den Wert 2*x^3) gelöst hat, so wird dieses Ergebnis an die vorhergehende Funktion geschickt und ersetzt praktisch die Anweisung: TTR(anfang(s,'+')).

Springt er nun also zurück zu der Zeile, liest das Programm praktisch (nehmen wir jetzt mal x=1 an und berechnen den Term, wobei man als Ergebnis 2 erhält):

2 + TTR(ende(s,'+'))

Da TTR(ende(s,'+')) ein Atomstring ist, wird das sofort berechnet, man erhält als Ergebnis: 3.

Hoffe, ich habe das dann jetzt einigermaßen verstanden!

Danke für eure ganze Mühe,

Penelopee
  Mit Zitat antworten Zitat