Benutzer-Werkzeuge

Webseiten-Werkzeuge


words:axiome:threaded-code:tokenthreadedcode

Token Threaded Code

(token = engl. für Zeichen, Marke)

Der hierbei hintereinander aufgereihte Code besteht aus Zeichen die für eine Aktion stehen. Es sind symbolische Angaben darüber was zu geschehen hat. Typischerweise wird die CFA eines Forth-Wortes als token eingetragen. (CFA = Code Field Address)

Da hierbei Bytes aneinander gereiht werden, die selbst gar nichts mehr mit dem Maschinencode der ausführenden Maschine zu tun haben, heißt diese Codeform auch Byte-Code.

Gegeben sei die Forth Definition:

: name	  word1 word2 word3 ;

Token threaded code hat folgende Struktur:

header with nametoken of NESTtoken of word1token of word2token of word3token of EXIT

Die Einsprungstelle NEST sogt dafür, das der Reihe nach Word1, Word2 und Word3 ausgeführt werden. Abgeschlossen wird die Sequenz durch EXIT, wodurch die Kontrolle wieder an das aufrufende Wort zurück gegeben wird. EXIT führt zu NEXT, dem Inner Interpreter.

Der Inner Interpreter für Token Threaded Code sieht so aus (pseudo-code):

Next   T <- (IP)
       IP++
       W <- TokenTable[T]
       JMP (W)
Anmerkung

„Bytecode“ kann auf ARM7 Controllern nützlich sein, also wenn eine CPU zwar ein Speicherfresser ist, der aber eine hoher Rechenleistung aufweist. Ein Compiler würde dort alternativ JSR-threaded für normale Programmteile und Bytecode für zeitunkritische Programmteile (d.h. der Compiler selbst) erzeugen. Beide greifen auf einen identischen Nucleus zu.

MfG JRD

words/axiome/threaded-code/tokenthreadedcode.txt · Zuletzt geändert: 2010-12-29 18:12 (Externe Bearbeitung)