首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从哪个Forth开始移植?

从哪个Forth开始移植?
EN

Stack Overflow用户
提问于 2010-07-09 00:29:33
回答 7查看 3.3K关注 0票数 26

我基本上是在寻找特定Forth与其他Forth的优缺点。我已经阅读了JonesFORTH的源代码,以及对它的赞扬和批评,以及对它的讨论,不幸的是,我感到相当困惑。据我所知,Forth社区在标准遵从性问题上似乎存在相当残酷的分歧,两个阵营都提出了非常好的论点,为什么标准既是好的,也是糟糕的。然而,我似乎找不到关于标准到底改变了什么的好的实用建议,除了一种普遍的感觉,那就是它使事情比它们可能需要的更复杂和臃肿。

我希望让程序员和业余爱好者更容易进行开发,目前他们被用汇编语言或C语言开发的前景吓跑了,所以我倾向于使用更简单的Forth,但我对Forth的了解还不够多,无法做出明智的决定。

EN

回答 7

Stack Overflow用户

发布于 2010-07-16 02:00:54

我和你现在的处境差不多。我偶然阅读了Forth有一段时间了,我也认为它有很大的潜力--也许在脚本方面也是如此。然而,我并不是一个权威人士,但以下是我的想法。

首先,Forth似乎是终极的可编程编程语言--甚至超过了lisp。为此,我不确定您需要编写多少C或汇编代码。我更倾向于在Forth中开发词汇表。毕竟,这就是它应该被使用的方式。

其次,在我尝试过的实现中,我最喜欢Gforth和Pforth。

你用的是哪几种?

最后,这是我发现的在线阅读列表:

  • Starting Forth
  • Thinking Forth
  • Forth Primer
  • Forth Language
  • Forth Tutorials
  • Pforth Tutorial
  • Gforth Manual
  • Begin Forth
  • WikiForth
  • OLPC Forth
  • Lets Build a Compiler

你找到其他的了吗?

票数 7
EN

Stack Overflow用户

发布于 2010-07-21 04:28:02

一个基本的Forth系统非常小,可以快速实现。我认为下面的页面会对你非常有用:"A sometimes minimal Forth compiler and tutorial for Linux / i386 systems“。这是一个关于引导Forth系统的线性教程!

确保实现定义词(在编译时执行的词)。这就是Forth的力量所在;使其真正具有可扩展性。

我还没有真正尝试过,但我曾经选择了bigFORTH,因为它是为数不多的具有开源许可证的平台之一。它也得到了积极的维护;例如,今年早些时候发布了一个版本。

在过去的几年里,我收集了a set of annotated links about Forth。有些东西很难找到。

关于标准的讨论:这是一个20年前的讨论。我认为更重要的是实际做一些事情,而不是空谈:实现软件,提供杀手级示例,编写文档,邀请其他人参与,等等。Charles Moore后来继续前进,完成了Forth chipsmachineForthColorFORTH。如果在带注释的链接列表中搜索"machineForth“和"ColorFORTH”,可以找到一些有趣的文章和语句。查尔斯·摩尔现在也有了一台blog

票数 4
EN

Stack Overflow用户

发布于 2010-07-29 05:48:54

作为第一步,你可能想要尝试的一件事是用一些更高级的语言编写Forth解释器,比如Java、C++、Python等等。它将缺乏机器级Forth的主要优点:速度和紧凑,但通过编写自己的虚拟机,您将了解在各种风格的Forth中使用的不同类型的线程等。

大多数新的Forth实现基本上都是从将CPU视为虚拟机开始的--因此,当需要从解释版本迁移到机器代码版本时,创建一个显式的虚拟机并不是浪费知识。此外,您将拥有自己的代码蓝图,以便在构建机器版本时进行交叉引用。

但是,如果您真的非常熟悉机器码,那么您可以跳过上面的步骤,直接移植其中一个标准。

至于标准,我会选择一些标准,但从一开始就保持最小。如果您需要在用户定义的单词以外的其他方面超越标准,则可以根据实现需要随时向其发展--无论是标准还是非标准。关于Forth最酷的事情之一是,它非常简单,你可以重写整个编译器,而不是重写你将在上面运行的一些Forth代码,哈哈。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3205861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档