[Allegro] Flex-Stack (war: Views revisited)

Thomas Berger ThB at Gymel.com
Mo Mär 31 19:07:28 CEST 2014


Lieber Herr Eger,

>> Schick, schick. Und dass Rueckgabe nicht in der iV  sondern
>> in $iv erfolgt, ist B.E. (Braunschweig Entzuecken) pur  ;-)
> 
> Diesen Namen kann man sich leicht merken - welchen Vorschlag hätten 
> Sie für den Namen einer Variablen, die Werte bei "Verhinderung" der 
> iV ersatzweise aufnehmen soll? 

Nicht so einfach, evtl. habe ich da auch nicht alles verstanden:

Prinzipiell problematisch ist, dass die iV eine viel hoehere Kapazitaet
hat als die normalen $-Variablen (und die unnormale $-Variable "$"
aka iV2 will man dem Anwender ja nicht wegnehmen)

(In Analogie zu meinem, wesentlich weniger ausgearbeiteten Ansatz):
/Aufrufe/ von solchen Pseudounterprogrammen koennten die iV nutzen,
Sie scheinen das normalerweise aber nicht zu einzusetzen und legen
lieber alles auf den Stack, selbst wenn "alles" ein einzelnes
Argument ist?

Fuer Rueckgabewerte haben Sie kein Beispiel gegeben, offensichtlich
ist aber $iv dazu gedacht. Theoretisch koennte man auch da den
Stack nutzen.

Apropos: Ich habe Ihr Beispiel nicht ausfuehrlich studiert, hatte aber
den Eindruck, dass in einem Fall die aufgerufene Routine den Stack manipuliert,
so etwa in Richtung Optimierung bei "tail recursion". Es ist aber eigentlich
so: Sie haben zwei Stacks, einen fuer Adressen und einen fuer Daten,
die eigentlich voellig unabhaengig voneinander sind? Beim Adress-Stack
ist es klar, beim (Pseudo-)Call wird er auf- und beim (Pseudo-)Return
jeweils um ein Element abgebaut. Beim Datenstack ist auch klar, dass
vor einem Call der Caller etwas draufzustapeln hat, aber wie wird der
genutzt: Soll sich die aufgerufene Routine alle Argumente herunternehmen
oder fundamental anders: Die aufgerufene Routine nutzt es als
(les- und/oder schreibbaren Datenbereich) und der Aufrufende ist
fuers abschliessende Aufrauemen zustaendig? (zunaechst hatte ich
sogar gedacht, Sie wuerden mit Doppelzaehlern arbeiten, d.h. pro
Ebene des Adressstacks wuerde ein eigener Datenstack simuliert, der
dann beim Pseudo-Return automatisch aufgeraeumt werden koennte)

viele Gruesse
Thomas Berger




Mehr Informationen über die Mailingliste Allegro