• Forth

    編輯
    本詞條由“匿名用戶” 建檔。

    Forth

    編輯

    Forth 是一種命令式的、基于堆棧的編程語言。 Forth 系統包括用于運行的操作系統和用于創建 Forth 程序的開發環境。 因此,在計算機上實際實現的 Forth 稱為 Forth 系統。 與其他編程語言一樣,今天的許多版本都生成高度優化的機器代碼

    第四系統

    編輯

    只需幾千字節的內存就可以實現一個完整的 Forth 系統。 此屬性在其創建時極為重要,因為當時的計算機可用 RAM 相對較少。 此外,Forth 系統的實際核心非常小,系統的其余部分已經在 Forth 本身中定義。 這使得將 Forth 系統移植到其他處理器上變得更加容易。 這種積極的品質在 20 世紀 70 年代后期帶來了相對廣泛的分布。

    今天,這使 Forth 成為一種高級語言,特別適合對各種微控制器進行編程。 然而,組合系統用于開發,其中中間代碼在主機 PC 上預編譯,只有結果存儲在客戶端的微控制器中。 因此,可以省略 Forth 系統的一些交互功能,并且可以對源代碼進行更廣泛的注釋。

    內部 Forth 體系結構的基本元素是兩個堆棧(數據堆棧和返回堆棧),一小部分可以獨立于硬件模擬的寄存器和字典,一個將標記與要調用的函數鏈接起來的跳轉表。 放置在堆棧上的數據字稱為單元,其大小可以是 16、32 或 64 位。 此外,詞典還可以根據需要分為多個詞表。 Forth 系統本身是作為虛擬機實現的。 所有指令和數學表達式均以反向波蘭表示法 (RPN) 編寫。 這是因為 Forth 系統首先檢查每個輸入值是否存在于字典中。 如果是這種情況,則調用相應的函數,然后可以訪問到目前為止創建的所有條目。 如果字典中不存在該值,則將其解釋為數值或字符串。 在這兩種情況下,后續條目此時尚未被讀入,因此對程序流程沒有影響。 因此,人們還可以按照創建時的習慣,輕松地通過順序介質傳輸輸入數據流,例如一疊穿孔卡片或磁帶。

    Forth 有兩個主要特征,使它有別于同時代的許多其他編程系統:

    • Forth 從一開始就是公共領域
    • Forth是自編譯的,允許用戶直接訪問編譯器,這意味著命令結構可以隨意擴展

    第四次編程

    用 Forth 編程與其他語言有根本的不同。 在 Forth 中,內置函數和編程函數(所謂的詞)之間沒有區別,但是有一個直接在機器代碼中實現的詞(原語)的功能核心。 也沒有直接的例程,而是將語言擴展為包含其他單詞。 在 Forth 中,程序的開始對應于一個詞的調用,因此它代表了程序的主例程。 由于編譯器也通過定義在開發環境中運行的詞來擴展,從而直接操作中間代碼,這導致一定程度的靈活性,只有少數其他高級語言才能實現。

    UPN 表達式示例

    表達式在讀取時已被處理。 輸入字符串按空格分成單詞。 “5”這個詞通常不在字典中,它被解釋為一個數字,即它的值(這里是 5)被壓入值棧。 這同樣適用于單詞“3”。 但是,現在后面的“+”字在字典里。 因此調用相應的函數。 該函數將棧頂的兩個值彈出,將它們相加,并將結果壓回棧中。 小“+”功能通常以各自的機器語言實現。 數字 8 現在在堆棧中。下一個單詞是 "7",數字 7 被放入堆棧。

    Forth編程語言

    后面跟著單詞“2”,這是數字 2 在堆棧中結束的地方。 接下來,再次是單詞“+”,它再次調用加法函數。 數字 9 現在在堆棧的頂部,數字 8 在它下面。然后在字典中讀取并找到單詞“*”; 相應的函數從棧中取出頂部的兩個值并將其乘積放在頂部。 根據 Forth 系統,乘法函數可以作為機器代碼實現,或者本身已經在 Forth 中實現。 下一個單詞現在是“.”。 這個詞從堆棧彈出頂部值(現在是數字 72)并將其打印在顯示設備上。

    應用

    編輯

    與匯編程序相比,Forth 是一種高級語言,但與硬件相關,因此執行速度非常快。 可升級性是 Forth 的核心原則; 無論如何,您必須自己編寫大部分功能。 有了 RTX2010,甚至還有可以直接運行 Forth 的太空應用芯片組

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/372003/

    (5)
    詞條目錄
    1. Forth
    2. 第四系統
    3. 第四次編程
    4. UPN 表達式示例
    5. 應用

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久