夠指定它所創建的字在編譯時間、運行時間或者這兩種狀態下的特殊行為。這個能力允許我們定義特殊的數據類型,並對其行為和結構實施完全的控製。又由於這種字的運行時間行為可以用高級語言或者彙編語言來定義,所以由定義字創建的字將具有與其它Forth字一樣的性能。係統也允許我們增加一個新的“編譯指示符”以實現特殊類型的循環或者其它的控製結構,比如CASE結構。
編程
Forth語言和英語非常相似,它的基本元素是已命名的數據項、過程,以及創建用戶化數據項的定義字的能力。過程和定義字可以使用以前定義的字或者彙編代碼來定義,它們與其它語言的子程序相似,也與其它語言的命令等效。Forth允許我們在鍵盤上打入一個函數的名字,這個函數將被立即執行。然而,如果我們把功能的名字放到定義中,將編譯成對於這個函數的引用。
高級字是由其它字的集合來定義的,我們可以把這個過程想象成是其它語言的宏或者詞典中的英語定義。新的字被加入到它們可以使用的存儲器中,其定義被加入到字典中。在一個Forth字的命名規則中,隻有很少的幾個字符不能作為命名字符使用。許多程序組織使用更好的命名約定,通過可打印的字符以增加程序的可讀性。
當遇到一個字的時候,Forth就通過字典搜索希望找到這個字的定義,如果找到,這個字定義的功能或者被立即執行,或者作為引用而被編譯到新的定義中。然而,如果在字典中沒有找到這個字,係統就試著把它轉換成一個數。如果轉換成功,就把它放在堆棧上。如果不能轉換成數字,就顯示這個字並打印出一個錯誤的信息來報告這個字是係統所不知道的。
Forth堅持“結構化程序設計”原理:
·字必須在引用之前被定義;
·邏輯流限製隻有順序、條件和循環,有專門的字用於實現常用的程序控製結構;
·程序員使用許多小的、獨立的模塊(字)來實現最大的可測試性和可靠性;
這種方法有兩個明顯的優點
·新的字總是用以前定義和測試過的字來構造,所以調試更容易。模塊可以單獨執行以測試它的功能;
·固有的模塊性使Forth成為一個“設計性語言”,允許自頂向下的設計同時保持自底向上的測試。一個字可以在不同的程序中使用,但是它的功能隻需要定義一次;
這些都保證了Forth軟件能夠快速和有效地被開發,同時,如果管理得當,也可以作為自身文檔的基礎。
Forth的5個主要元素決定了它的特點:
·一個字典;
·兩個堆棧,一個是參數棧,另一個是用於嵌套的返回棧;
·鍵盤(輸入流)解釋器;
·一個彙編器;
·虛擬存儲;
請前往oop.tw閱讀本書最新內容
目項的發開htroF用
目項的發開htroF用使些一是下以
。環循的層內最寫重來言語編彙用使上加,htroF用使是法方快最的碼代能性高發開信相們他。的發開htroF用是都機戲遊幣投多許的iratA
。的成寫htroF用是也器釋解戲遊的們他,話談的者發開戲遊級高mocofnI的名著與近最照按
。月個3於多不間時的型典,上9086CM者或2056到植移戲遊的08Z於基個一把,法說的toorGedcraM監總術技們他按。的寫編htroF-GIF用是都部全,戲遊多許了發開統係作操M/\PC為dlroWnosinU
。間時的月個6要需少至則碼代言語C護維組小的它其,言而比相,件固新級升內期星個幾在要需按以可他,說rarraFeneG理經目項。的寫編htroF用是序程的統係撿分李行式持手的司公)遞快邦聯(sserpxElaredeF國美
。素因的要主個一是性活靈,題問件硬的中行飛決解來htroF擇選們他,法說seyaHnhoJ的yrotarobaLscisyhPdeilppAs'ytisrevinUsnikpoHsnhoJ一之隊團計設按。的程編htroF用是個3有中荷載個4的機飛天航亞比倫哥月11年0991
。礎基的台平件硬用通CPREWOP是也這,準標的件固)置配始初(TOOB於用htroF將4991-5721EEEI年4991。的大最量數中統係htroF程編可是,貨發度速的台0001-005天每以,中MORtooB程編可站作工的它於用htroF把司公NUS
。的生產htroF包件軟gnihproM於基是果效技特的統係0001TsmetsySenydrebyC,中》日末界世:II者結終《影電在