我想开始学习Forth(就像相关的Stack Overflow问题 Is it practical to learn and use Forth? )。我看到有many implementations。我想用
可以推荐哪些具体实施?
答案 0 :(得分:13)
Win32Forth真是太棒了。它有一个很好的集成开发环境,是一个非常现代的实现,似乎与标准非常匹配,包括一些更实验但被广泛接受的功能。
我使用Gforth,但我也使用Vim来编辑源文件。 :)就其支持的功能而言,Gforth是好的和“经典的”。它为您提供了一个非常“老派”的Forth体验,而不会过于古怪。 (一些免费的Forth用他们的命令行做奇怪的事情 - 我使用Brodie的“Starting Forth”作为Forth解释器应该如何表现的模型。)
我看了SwiftForth,这是一个非常好的“高科技”Forth系统,远远超出了经典的Forths在语言功能方面提供的功能,并且真正将Forth引入现代编程世界。如果你想真正专业地做Forth程序,SwiftForth看起来它可以处理你想用它做的任何事情。
答案 1 :(得分:8)
前段时间我评估了4tH,Forth的实现。 我认为它符合所有 你的要求。例如,编译器只有61 KB。还有对浮点数的完全支持,如果你愿意,这很重要 尽量将其用于技术/科学目的。
4tH在大多数操作系统上运行,包括MS-DOS,MS-Windows(16位和32位),Linux,Coherent,AIX,SunOS,{{3 },BSD,Mac OS X,BOS,BeOS等RISC OS(Windows安装程序,1.5 MB,包括手册)。 Download(PDF,1.1 MB)。
有一个以Google群组Manual为中心的活跃社区。 例如,今天我收到两条消息。
请注意,在4tH中,您无法定义自己的定义单词(在编译时执行的单词)。这不是一个严重的问题 限制,除非您想要涵盖高级Forth功能。
为了帮助您入门(因为从手册或交互式编译中不是很清楚),在安装后将编译器4th.exe
复制到空文件夹中,在此目录中创建两个文件{{1 }和HelloWorld.bat
,并运行HelloWorld.bat:
HelloWorld.bat:
HelloWorld.4th
HelloWorld.4th:
4th.exe cx HelloWorld.4th
pause
答案 2 :(得分: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
答案 3 :(得分:2)
我意识到他们可能无法满足您的所有要求,但从学习的角度来看,以下类似Forth的语言也会让您感兴趣。
此外,我发现Re-Factor博客是对Factor的一个很好的介绍。
答案 4 :(得分:2)
如果您能找到FORTH Inc旧版的polyFORTH副本,以及可以运行它的旧版x86,这就是Leo Brodie最初的“Starting FORTH”中使用的语言。这是一个干净而且非常强大的FORTH。
答案 5 :(得分:1)
Win32Forth对我有用。
答案 6 :(得分:1)
下载适用于PC和Android的Gforth。
修补它使用它作为计算器,解决简单的问题,斐波纳契,解决二次方a b c等。
答案 7 :(得分:1)
我建议使用ciforth,因为您是Windows用户,因此为Windows构建的版本称为wina: an MS-WIndows NAtive Forth。
ciforth是一个用NASM汇编器编写的小型系统,并具有适用于多种系统的类似接口。它体积小巧,速度快,经典(ftw块),易于使用,因为它很老派,附带大量文档和一个单词列表,不像Gforth的单词列表那样令人难以理解(Lina的单词列表为here,我认为是wina多数相同)。Gforth有很多膨胀的定义,例如,某些 Starting Forth 不能在其中使用。 ciforth唯一缺少的是浮点堆栈,但是Forth可以很好地处理定点(如果读 Starting Forth ,就会知道如何使用它)。
答案 8 :(得分:0)
durexForth是符合ANS的C64,非常小。