2010-03-13 93 views
19

我想開始學習Forth(如在相關堆棧溢出問題Is it practical to learn and use Forth?)。我看到有many implementations。我想用一個Forth用什麼實現學習?

  • ANS 1994兼容版本(如果合理,但堅持的標準會是個不錯)
  • 小而緊湊的實現,我不想要一個完整的操作系統。
  • 的Windows
  • 好用,我是新來的第四;-)

可以推薦什麼具體的實現?

+0

一些大學課程使用gforth(http://www.complang.tuwien.ac.at/forth/gforth /),這也是很好的開始。 – 2010-10-29 06:35:51

+0

問題「*是否可以學習和使用Forth?*」已被刪除。如果操作系統或信譽爲10k的用戶(需要查看已刪除的帖子)可以訪問該帖子並將其緩存/保存在某個地方,那就太好了 - 聽起來好像是一個有趣的問題(儘管我承認它不太貼切/不適合所以)。 – 2016-01-28 02:33:21

回答

11

Win32Forth真的太棒了,如上所述。它有一個很好的集成開發環境,並且是一個非常現代的實現,似乎與標準非常匹配,並且包含一些更實驗但廣泛接受的特性。

我使用Gforth,但我也使用Vim來編輯源文件。 :) Gforth就其所支持的功能而言是不錯的和「經典」的。它給你一個非常「古老的」Forth體驗,而不會過於古怪使用。 (一些自由的Forths用他們的命令行做了奇怪的事情 - 我使用Brodie的「Starting Forth」作爲Forth解釋器應該如何表現的模型)。

我看着SwiftForth,這是一個非常不錯的「高科技「Forth系統遠遠超出了經典Forths在語言特性方面的優勢,並真正將Forth帶入了現代編程世界。如果你想真正做Forth程序的專業,SwiftForth看起來像它可以處理任何你想做的事情。

+0

是的,可以說是最好的開始。 (種)IDE有語法着色,WinForth幾乎運行了我用gforth開發的所有代碼(在某些過程中)。儘管如此,幫助和單詞索引有點粗糙,但有幫助。 – 2010-10-29 06:34:43

7

前段時間我評估4tH,執行Forth。 我認爲它符合您的要求的所有 。例如,編譯器只有61 KB。還有對浮點數的全面支持,如果您想要 嘗試將其用於技術/科學目的,這一點非常重要。

第四運行在大多數操作系統,包括MS-DOS,MS-Windows系統(同時16位和32位),Linux和CoherentAIXSunOSBOS,BSD,Mac OS X中,BeOSRISC OSDownload(Windows安裝程序,1.5 MB,包括手冊)。 Manual(PDF,1.1 MB)。

有一個活躍的社區圍繞谷歌集團4tH-compiler。例如,今天我收到了兩條消息。

請注意,在4tH中,您無法定義自己的定義字(在編譯時執行的字)。這不是嚴重的 限制,除非您想要覆蓋高級的Forth功能。


,讓你開始(因爲這是無法從手動或交互編譯很清楚),安裝後的編譯器,4th.exe,複製到一個空文件夾,使兩個文件在此目錄中,HelloWorld.batHelloWorld.4th ,並運行HelloWorld.bat:

HelloWorld.bat:

4th.exe cx HelloWorld.4th 
    pause 

HelloWorld.4th:

: hello ." Hello from XYZ!" cr cr ; 
    hello 
+0

我看了一下。第四名聽起來不錯。我會試一試。 – 2010-03-21 09:47:03

+0

我試過了。雖然它似乎符合ANS,但我無法像WinForth或gforth那樣輕鬆運行它。文檔不清楚它是一個真正的Forth還是隻是與Forth非常類似於由後綴計算器開發的東西。 – 2010-10-29 06:32:54

1

Win32Forth對我很好。

+0

似乎比第4個社區更大。謝謝,我也會檢查出來。 – 2010-03-23 22:29:46

2

SwiftForth。它不是自覺地小而緊湊;它恰好是。它很容易使用(LOCATE WH EDIT,比平時更好的一句話),附帶兩本書,並且擁有一個擁有十多年檔案的優秀郵件列表。評估版本不會讓您編譯交鑰匙應用程序或DLL;它仍然爲學生提供了一個出色的控制檯,並且可以以通常的方式支持腳本。快速Windows示例:

: sleep-monitor (--) 
    HWND_BROADCAST WM_SYSCOMMAND SC_MONITORPOWER 2 SendMessage drop ; 


library dnsapi.dll 
(... DLL imports, constants ...) 
variable results 
: DnsQuery (z -- res) 
    DNS_TYPE_A 0 NULL results NULL DnsQuery_UTF8 ; 

: resolves? (z -- f) 
    DnsQuery if false exit then 
    results @ DnsRecordListFree true ; 


\ an example use of the dialog compiler 
\ this compiled DSL is an example of something that 4th 
\ precludes with its "not ... serious limitation" 
DIALOG (HELLO-ABOUT) 
[MODELESS " About Hello" 10 10 120 70 
    (FONT 8, MS Sans Serif) ] 
\ [class   text      id x y sx xy ] 

    [CTEXT   " HELLO"     -1 10 10 100 10 ] 
    [CTEXT   " (C) 1997 Forth, Inc."  -1 10 25 100 10 ] 
    [CTEXT   " http://www.forth.com"  -1 10 35 100 10 ] 
    [DEFPUSHBUTTON " OK"      IDOK 35 50 50 14 ] 
END-DIALOG 
+0

這很清楚不是一個基於屏幕的FORTH,我在D85中看到了太多的意識流運行代碼,它也不是基於屏幕的。 – 2014-02-04 13:05:33

2

我意識到他們可能不符合您的所有要求,但從學習的角度來看,以下類似Forth的語言可能也會讓您感興趣。

此外,我已經找到了Re-Factor博客是一個很好的介紹因素。

2

如果您可以找到FORTH Inc的舊polyFORTH和一個可運行它的舊x86的副本,這是Leo Brodie最初的「Starting FORTH」中使用的語言。這是一個乾淨,非常強大的FORTH。

+1

polyFORTH,[Forth,Inc.](http://forth.com)的創建者仍然在... – Mei 2011-12-23 00:00:25

+0

而不是舊的x86,您可以使用[DOSBox x86 emulator](http://www.dosbox .com/download.php?main = 1)可以在大多數現代Windows機器上運行 - 我已經成功地將它用於WinXP和Win7。 – 2014-02-04 10:32:13

0

下載適用於PC和Android的Gforth

鼓搗使用它作爲一個計算器,解決簡單的問題,斐波那契,解決了二次ABC等