Subroutine threaded code is different from native code in that everything is a call including to constructs like IF Take this code in Forth X IF True THEN etc An STC potentially generates numbers are there to discuss in text 1 CALL 2 CALL IF 3 CALL 4 CALL 5 6 CALL THEN etc 1 tucks the address of the label on the return stack by popping the caller s return address pushing address of and returning 2 IF pops and checks the top of the data stack if it s zero then jump to label else return And so on 6 is in fact a no op but it s sometimes generated so that the code can be decompiled easily by printing off the labels in the symbol table called a dictionary in Forth associated with the CALLed address There are very few Forths that use STC in this extreme form and a blend between STC and NCC native code compilation is normally used An ITC is the same code but with addresses only and no CALL opcode a small VM interpreter does the call return management