2012年6月2日 星期六

JForthBlocks--穿梭陰陽界,任意切換編譯或直譯狀態

今天的標題下的有點奇怪,不過Jimmy's papa只是在強調,就像某些科幻電影主角一樣,可依意願將意識狀態切換到不同的維度,Forth也可以隨時切換為編譯或直譯狀態,所以Forth亦有雙態系統之稱

底下是個小測試範例,首先定義名為statereporter的高階積木,並將它設為立即詞(immediate),這樣一來,statereporter就像維度穿梭者一樣,可以隨時報告目前身處的狀態
寄件者 scratchlab02
寄件者 scratchlab02
這是產生出來的Forth原始碼,附上註解
: statereporter
state@ \ 是否為編譯狀態
if s" (編譯中compiling)" . \ 印出訊息
else s" (執行中executing)" . \ 印出訊息
then ; immediate \ 設為立即詞,進入編譯狀態也會立即執行
: test
statereporter ; \ 處於編譯中
statereporter \ 處於直譯中
] \ 系統進入編譯狀態
statereporter \ 處於編譯中
[ \ 系統進入直譯狀態

沒有留言:

張貼留言