Forth还在使用吗?如果是这样,怎么样和在哪里?

时间:2010-01-27 15:10:25

标签: programming-languages forth

很久以前我记得我认为Forth编程语言非常酷。多年来我真的没有听说过任何关于它的事情。 Forth还在使用吗?如果是这样,它用于什么类型的应用程序?

15 个答案:

答案 0 :(得分:14)

Apple和Sun等人仍在使用它 - 请看http://en.wikipedia.org/wiki/Open_Firmware

答案 1 :(得分:7)

发明的男人查克摩尔使用了一种叫做颜色的方言。他有一些有趣的项目正在进行中:

http://colorforth.com/haypress.htm Haypress Creek超级计算机。它有9个S40多计算机芯片,每个芯片有40个c18计算机。总计360台计算机以700 Mips或250 Gips运行。每个芯片有3个A / D和3个D / As。每个共27个。

http://greenarraychips.com/ 他的硬件公司

答案 2 :(得分:6)

Factor,一种类似于Forth的连接语言,近来受到广泛关注。 This blog post分享了在教育中使用因子的经验。 Niue,Java应用程序的可嵌入语言受到了Forth的启发。

答案 3 :(得分:4)

我已经开始使用此http://www.forth.com/

最新更新是2009年12月29日。这似乎是确定的。有人在用它。

您可以要求提供客户清单。那会告诉你谁。你可以问他们如何以及在哪里。

答案 4 :(得分:4)

Eserv - 用于Windows的流行邮件,Web和代理服务器 - 用FORTH(SP-Forth方言)编写。数千个生产基地大约15年。

nnCron - 最强大的Windows调度程序 - 也是用SP-Forth编写的。

www.eserv.ru,spf.sourceforge.net,nncron.ru

答案 5 :(得分:3)

您可以查看一些NASA成员使用它的[已存档] Space-Related Applications of Forth网页。不知道该列表是如何更新的......

答案 6 :(得分:2)

Forth的一个很好的用法是作为系统的远程接口:(A)是一个轻量级的嵌入式系统,不适合运行Linux等操作系统; (B)需要在现场远程控制/可编程/可编写脚本; (C)远程交互具有高延迟特性(由于传输等)。

答案 7 :(得分:2)

你问的地方? MpeForth。这是一家位于英国的公司。他们的VFXforth(另一种方言)主要用于嵌入式解决方案。转到此页面About MPE。向下滚动并查看部分客户列表。

答案 8 :(得分:2)

是的,Forth确实"仍在使用"。我们刚刚发布了Version 1.2.0 of 8th,这是我们安全,跨平台的Forth衍生语言。它有一个小但不断增长的用户群。

除了我们之外,还有至少另外两个商业Forth:SwiftForth和MPE Forth。还有很多免费的Forth。

答案 9 :(得分:2)

我在MSP430和ATMega部件上使用它。我自己写了。这很简单,也不会花费任何成本。如果有bug,我会快速调试。你在键盘上测试。它很快,因为它有点像宏观级别的程序集。小而且你可以随时减小它。 可以,但是一个好的编译器需要真正的金钱而且非常传统..编辑编译负载。 你不会在Forth中这样做......我称之为Forth-Like。它不符合Forth标准,但任何了解的人都可以阅读我的代码。

答案 10 :(得分:1)

Forth仍被IBM,Apple和Sun使用。它用于设备驱动程序,尤其是在引导OS期间使用。

答案 11 :(得分:1)

我至少知道我工作过的公司。我们所使用的所有内容都是嵌入式系统,控制着科学仪器。

在这里你会看到大多数人的主要区别。诸如MPE或flashforth之类的嵌入式系统将倾向于使用协作循环多任务处理。这对于实时系统很有用,因为它非常防弹。

另一方面,桌面设备倾向于使用操作系统的多任务系统,它很棒但是使得一种类型的代码很难移植到另一种。这可能是它在桌面环境中失宠的主要原因之一,它曾经非常流行于MacFORTH。

我也听说其他项目,如JET - 联合欧洲圆环 - 使用诊断程序正在运行,所以至少在我工作的其他公司之外使用。

答案 12 :(得分:0)

还有Win32Forth,这是Windows的一个很好的FORTH实现,这里没有提到,它带有许多库,用于构建完整的Windows应用程序。

答案 13 :(得分:0)

FORTH在微控制器上非常有用,因为它占用的内存很少,比汇编中的代码甚至与交互相比,都更快,更容易编码。 Arduino有更多实现,例如AmForth

答案 14 :(得分:0)

一些大型项目正在虚拟机上运行-Java在JVM上运行,.NET在MSIL上运行,而LUA在其自己的VM(或至少具有该版本的VM)上运行。 Forth是创建在硬件上高效运行的虚拟机的理想选择。我不知道这些平台有任何Forth(或Factor)实现,但据我估计应该有。

对于我来说,我已经用C#创建了自己的Forth子集,以尝试创建嵌入式脚本语言。我已经在大约三周的时间内用三种不同的方式重写了它,一次是用或多或少的纯宏替换,然后是大多数为硬编码(C#)的单词。我已经开始开发一个可以随意使用的版本。 Forth允许进行这种实验,因为您可以轻松编写基础知识。由于我只是在玩耍,所以我对每个单词中的每个单词执行words = String.Split(){word.exec(); },这就是我需要开始的全部。而且很有趣。

更不用说Common Lisp是Forth的镜像,并且具有相同的功能性质和同质性,并具有使用与编写该语言相同的语言编写宏的能力,从而可以相当轻松地扩展该语言,我相信,就像在Forth中一样。因此,当您看到一种优势而不是另一种优势时,这可能是一种幻想。它们都具有相同的形状,并且具有许多相同的“力量”。两种语言都应该互相学习。 Lisp在任何CPU上都应该是“可仿造的”,例如Forth。而且Forth应该更多地了解Lisp中的宏。

今天是否使用了Forth?是。另外,请查看Forth.Com及其为其编写的专业开发系统的微控制器。

相关问题