7.2.3. Podprogramy zřetězený kód (Subroutine Threaded Code)

$Header: /home/radek/cvs/forth-book/sec-subroutine_threaded_code.xml,v 1.4 2005/10/20 19:19:38 radek Exp $

section id="subroutine-threaded-code" xreflabel="Podprogramy zřetězený kód"

Model zřetězení slov podprogramy, také nazývaný nativně přakládaný kód (Native Code), je založený na tom, že definice slova v slovníku je sama o sobě výkonným kódem. Tedy volání slov je přeloženo na volání podprogramů.

Základní odlišnost od předcházejících modelu spočívá v použití instrukcí skoků místo prostých adres v definici slova.

Výhodou tohoto modelu je větší rychlost vykonávání programu. Toto však není obecně samozřejmé a je nutno pro daný konkrétní procesor porovnat jednotlivé modely. Tento model nerozlišuje mezi slovy nízkoúrovňovými a vysokoúrovňovými.

Obecně model nízkoúrovňového slova v zásobníku vypadá takto:

+----------++--------------------+-----+
| hlavička || Strojový kód slova | RET |
|  slova   ||                    |     |
+----------++--------------------+-----+

Vysokoúrovňové slovo pak vypadá takto:

+----------++-------+-------+-------+-----+
| hlavička || CALL  | CALL  | CALL  | RET |
|  slova   || word1 | word2 | word3 |     |
+----------++-------+-------+-------+-----+

Jak je na ukázkách vidět z hlediska organizace není mezi těmito slovy principiálního rozdílu. Obě obsahují přímo vykonavatelný strojový kód.

Tento model se dále vyznačuje