延遲編碼

符式是單次編碼器(One Pass Compiler).

因此;

它除了通常不容許前瞻參考(Forward Referencing),

即定義所用的詞,一定要用已經定義過的詞,不能用未定義過的詞

所以;

他需要一些特殊的功能,這就是在某些詞中,要有延遲編碼的功能.

延遲編碼的意思就是:

在定義這些詞本身的時候(即在第二時區中),沒有什麼特別的動作.

但在它的執行時(即在在第三時區中),要做編碼的動作.

延遲編碼的詞,有兩個,

一個給普通詞用 COMPILE ,一個給立即詞用 [COMPILE]

: 未來1+2 1 2 + ;

: 未來4+5 4 5 + ;

: 延遲編碼 compile 未來1+2 compile 未來4+5 ; immediate 

\ 此時 將 未來1+2 未來4+5 兩詞 做 延遲編碼

: 現在 延遲編碼 ; 

\ 此時 將 未來1+2 未來4+5 兩詞 編入 現在的定義中

現在 

 \ 執行 現在一詞

.s

\ 可以看到 資堆中 有 未來1+2的結果 3 跟 未來4+5的結果 9