簡體   English   中英

Forth 中的詞重定義

[英]Word redefinition in Forth

在 Forth 中,在重新定義單詞的情況下,使用重新定義的單詞的另一個單詞的預期行為是什么? 例如,如果x調用y

: Y ." Old Y " CR ;
: X 10 0 DO Y LOOP ;
\ ... 
: Y ." New Y " ;

那么在重新定義YXOld YNew Y的輸出應該是什么?

簡短的回答: X將輸出Old Y ,另請參閱在線測試中的示例。 第二次定義Y的時候, X已經編譯好了。

在 Forth 中,重新定義只是遮蔽:當一個新定義的名稱遮蔽了同一個單詞列表中的另一個名稱時,就會出現這種情況,並且遮蔽的定義變得無法通過該名稱訪問(無法找到)。

Forth 還使用增量編譯和靜態名稱解析(在編譯時執行)。 因此,新定義不會影響任何以前的定義(以及已編譯的代碼)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM