Forth/FORTH 的核心思想
外觀
< Forth
在詳細介紹語言規範之前,讓我們花點時間指出 FORTH 風格的幾個方面,以便在後續頁面中牢記它們。
- 傳統程式設計環境的許多需求實際上是不必要的,並且基於歷史包袱。
- 系統元素的仔細規範會導致它們在程式碼大小上變得更小。這個過程會自我迴圈。
- 單遍編譯和一種不鼓勵引用尚未定義的事物的風格提供了微妙的壓力,消除了大量基於羅素悖論型別程式碼(迴圈定義)的程式設計錯誤。
- 鼓勵分解,因為定義和呼叫子程式的開銷由於資料堆疊上的隱式引數傳遞而降低。這鼓勵為在多個地方使用的操作序列定義子程式。這縮小了程式碼的大小,並鼓勵良好的編碼實踐,即在單個集中且可維護的子程式中實現每個演算法元件。
- 使用結構化程式設計條件,以最佳的數學計算機科學風格。程式設計師被引導遵循數學要求,即程式碼片段只有一個入口點和一個出口點。
- 程式設計師應該能夠按照他們想要的方式閱讀程式碼,消除由於語言語法要求而導致的混淆。程式碼的含義應該能夠從略讀中脫穎而出。
- 潛伏在計算機語言中的“巴別塔”問題變得顯而易見且民主化。您,而不是語言設計者,可以建立字典併為其中的單詞命名。這是你的詞典。如果你想與其他人共享詞彙,那麼你們都需要就特定功能的單詞名稱達成一致。如果你不喜歡給定的名稱,你可以用你喜歡的名稱定義一個指向原始定義的新單詞。
- 如果軟體中已經內建了某種功能,那麼它應該始終可以供程式設計師呼叫。這就是 Forth 原則:“不要隱藏你的工具”。這與大多數其他系統不同,在其他系統中,您會看到許多應用程式已經包含用於執行您可能希望使用的程式設計任務的程式碼,但是如果您坐下來編寫程式,這些程式碼及其組成部分是不可呼叫或不可用的。
- 對“編譯器”概念的去神秘化。編譯器及其所需的功能在字典中變成了幾個單詞,這些單詞的行為可以被中等程度的學生掌握。它們可以被使用、擴充套件和修改。
- 即使是編譯器的概念在 Forth 的理解中也被簡化了。
- 逗號運算子“編譯”一個整數到下一個可用記憶體位置。
- C 運算子將一個字元(或位元組)編譯到記憶體中
- Forth 彙編程式單詞 MOV 只是一個用於單個機器指令的“編譯器”
- 即使是編譯器的概念在 Forth 的理解中也被簡化了。
- Forth 指定了它的語言規則,透過這些規則,你和計算機進行交流,這些規則是簡單的,並且與其背後的清晰哲學保持一致。沒有大量的特殊字元和複雜的優先順序規則,雙方都將受益。程式設計師會感覺他們正在與幾 KB 的可理解的編譯器程式碼和諧地工作,而不是與數兆位元組的編碼異常和特殊情況作鬥爭。編譯器編寫者有一套定義明確的規則,可以準確無誤地實施。因此,編譯器錯誤和語言手冊含糊不清之間的模糊時刻被最小化了。