03 詞的生成

#01 編碼指示器 STATE 的兩種狀態

符式的INTERPRET(文字翻譯器)有兩種不同狀態的處理模式

即EXECUTE TIME(執行態)跟COMPILE TIME(編碼態)

由 STATE(狀態)之值是否為零而決定

如果 STATE @ = 0 即為 EXECUTE TIME(執行態)

如果 STATE @ =/= 0 即為 COMPILE TIME(編碼態)

#02 STATE 編碼指示器 之開與關

: [ STATE OFF ; 此詞讓 INTERPRET(文字翻譯器) 切到  EXECUTE TIME(執行態)

: ] STATE ON ;  此詞讓 INTERPRET(文字翻譯器) 切到  COMPILE TIME(編碼態)

: SLOW 1024 64 / ;

: QUICKER [ 1024 64 / ] LITERAL ;

#03 立即詞

立即詞之設立 使用IMMEDIATE 在定義之後 如下例

: [COMPILE]  '  , ; IMMEDIATE

#04 延遲編碼

延遲編碼有兩個詞 COMPILE 跟 [COMPILE] 

前者使用對象為普通一般的詞

後者使用對象為立即詞 

延遲編碼的用途 最常見在 定義詞時用到的 ;定義詞 

;定義詞 是個 立即詞

因當編碼器見到它的時候 INTERPRET(文字翻譯器) 還在編碼態(由 : 的 ] 而來)

所以這個詞要設為立即詞 才會被執行 否則是會被編碼

在 ;定義詞中 

最主要的是 COMPILE UNNEST 及 [COMPILE] [ 這兩個詞組合

前者 在被定義的詞中 加編一個 UNNEST到 詞典裡去

後者 把INTERPRET(文字翻譯器) 切到執行態 

結束了整個詞定義的動作

因為 UNNEST 是個普通詞 所以用 COMPILE

而 [是個立即詞 所以用 [COMPILE]