Die Exemplarvariablen ("inst vars") der Klasse BlockClosure sind outerContext, startpc und numArgs ("number of arguments"). Frage: Wovon ist startpc die Abkürzung und wie lässt sich die Funktion dieser Variablen kurz erläutern? (Danke.)
Leider hat Squeak 4.1 keinen Klassenkommentar. Die Version 3.9 hatte einen (zu BlockContext); der war allerdings nur für Experten / Entwickler verständlich.
R. Baumann
Guten Tag,
2010/8/25 R. Baumann baumann-garbsen@t-online.de:
Die Exemplarvariablen ("inst vars") der Klasse BlockClosure sind outerContext, startpc und numArgs ("number of arguments"). Frage: Wovon ist startpc die Abkürzung und wie lässt sich die Funktion dieser Variablen kurz erläutern? (Danke.)
eine BlockClosure ist auch "nur" eine Methode mit Bytecodes, die zur Ausführung gelangen. Blöcke sind syntaktisch Bestandteile von Methoden. Die Bytecodes von Blöcken sind dann in der Regel in die Bytecodes der Methoden eingebettet, deren Bestandteil sie sind.
startpc ist dann einfach der Bytecode-Index in besagter "äußerer" Methode, an dem die Bytecodes des Blocks beginnen. Die Abkürzung steht für "starting program counter" oder so ähnlich.
Viele Grüße,
Michael Haupt
Michael Haupt schrieb:
Blöcke sind syntaktisch Bestandteile von Methoden.
Trifft diese Aussage auch für den Fall zu, dass ein Block innerhalb des Workspace definiert und ausgeführt wird?
Worauf bezieht sich eigentlich das Wort "Closure"? Was wird hier "ab-" oder "eingeschlossen"?
Ist die Vorstellung richtig, dass ein BlockClosure-Objekt gewisse Daten (nämlich seine lokalen, temporären Variablen und die Blockparameter) "einschließt" ?
Danke für Erläuterungen.
R. Baumann
Guten Abend,
2010/8/25 R. Baumann baumann-garbsen@t-online.de:
Trifft diese Aussage auch für den Fall zu, dass ein Block innerhalb des Workspace definiert und ausgeführt wird?
ja, denn wenn man Code im Workspace markiert und ausführt, wird hinter den Kulissen eine Methode daraus erzeugt.
Worauf bezieht sich eigentlich das Wort "Closure"? Was wird hier "ab-" oder "eingeschlossen"?
Ist die Vorstellung richtig, dass ein BlockClosure-Objekt gewisse Daten (nämlich seine lokalen, temporären Variablen und die Blockparameter) "einschließt" ?
Das kommt etwa hin; ich verweise an dieser Stelle der Einfachheit halber auf http://de.wikipedia.org/wiki/Closure - die Erklärungen da sind ganz ordentlich. :-)
Viele Grüße,
Michael Haupt
squeak-ev@lists.squeakfoundation.org