Forth 有哪些标准?
什么是 RFI ?
Forth 有编码规范吗?
我在管理堆栈时遇到了麻烦,是不是应该使用全局变量?
什么是 Forth 兴趣组织?
Chuck Moore 是谁?他现在做什么?
Forth 有哪些标准
-------------------------------------
Forth 的美国国家标准是 ANSI X3.215-1994, 作为一个权威的 Forth 标准在国际上被广泛接受 ("ANS Forth") 。 这个标准也被国际标准化组织所接受 (ISO/IEC 15145:1997).
IEEE Standard 1275-1994, 称为“开放式固件”标准,派生于 Forth ,已经被 Sun Microsystems 、 HP 、 Apple 、 IBM 等公司做为编写引导程序和固件的公司遵循标准。参见 <http://playground.sun.com/1275/home.html>.
早先的 Forth 标准包括 Forth-83 Standard 和 Forth-79 Standard ,这些都是 Forth Standards Team 提出的,而更早的 FIG-Forth 标准没有像这样正式发布,但它却是许多年里 Forth 的“事实标准”。
Forth STANDARDS 自 1978 年以来 Forth Standard Team 发布了 Forth 79 和 Forth 83 标准, ANS Forth 文档 X3.215-1994 是 X3J14 技术委员会发布的。最近的标准 ANS Forth 定义了一系列的核心字,并给这些字的实现方式以很大的自由度。 ANS Forth 可以支持的硬件范围比以前的任何 Forth 标准都大,可能也比任何其它程序设计语言大,参看 <ftp://ftp.uu.net/vendor/minerva/uathena.htm> 得到最新信息。标准的拷贝为 193 美元,但是 ANS Forth 草案是免费的(有一些版权的限制),可以通过 FTP 得到。
ANS Forth 文件可以从下面网站得到
<http://www.taygeta.com/forthlit.html>
<ftp://ftp.uu.net/vendor/minerva/x3j14/>.
最好的 HTML 格式是 <http://www.taygeta.com/forth/dpans.html>.
为了把自己的加入到 ANS-Forth 邮件列表中,可以参考不同的 README 文件,这些文件在 ftp://ftp.uu.net/vendor/minerva/x3j14/ 上 .
有两个非官方的网站可以检查与 ANS Standard Forth 的一致性 :
• John Hayes 编写的测试站点 <http://www.taygeta.com/forth.html>.
• JET Thomas 编写的测试站点 <ftp://ftp.forth.org/pub/Forth/ANS/stand4th.zip>
还有 ANS Forth FAQ <http://dec.bournemouth.ac.uk/forth/ans/faq.html> ,它解释了标准化的过程。
什么是 RFI ?
------------------------------------------
RFI 是解释请求( A Request For Interpretation )。如果你发现标准文本中有不清楚或者不明确的地方,可以发一个 RFI ,发布标准的 TC (技术委员会)将负责给出一个解释。
你可以通过电子邮件把请求发送到 greg@minerva.com 上,写明邮件的主题是 RFI 。
以前的 RFI 列表可以通过 ftp://ftp.uu.net/vendor/minerva/x3j14/queries/ 得到,也集中到标准的 HTML 版本中, <http://www.taygeta.com/forth/dpans.html>.
Forth 有编码规范吗?
------------------------------------------
在 Leo Brodie 的书《 Thinking Forth 》中给出了一些建议;这些建议的摘录可在 http://www.forth.org/forth_style.html 得到。 Forth 在各个公司中有一些它们自己的编码标准。 Paul Bennet 发布了他自己公司的标准 <http://www.forth.org/forth_coding.html>.
我在管理堆栈时遇到了麻烦,是不是应该使用全局变量?
---------------------------------------------------------
不。这里有更好的方法,那就是坚持使用堆栈,重新组织(重新因子化)所定义的字,直到有一天你找到了使用堆栈的诀窍。 Elizabeth Rather<mailto:erather@forth.com> 写到:
舒适而自然地编写 Forth 程序的一个基本技巧就是良好的堆栈管理。对于一个初学者来说这是有困难的,因为其它的语言对使用堆栈并没有要求,其它的语言都通过使用变量来实现所有的事情。经过了 25 年几百次教学,我觉得初学者对此很是茫然,所以我就开发了一些练习(就像 Starting Forth 书一样)来帮助他们。这个过程有点儿像骑自行车:开始的时候慌慌张张而且摇摇晃晃,但是突然有一天,你头脑中的一个开关打开了,从那以后就变得又舒适又自然了。
Andrew Haley 写到:
试着把你的定义全部写成只有一行、最多两行。为每个字写一个堆栈图释并画出它的输入和输出。如果你还要有一个“中间的”堆栈图释才能够明白做了什么的话,就在这一点上把你的字分裂成两个。这样,你就可以在命令行上测试字的一半,每一次都检查堆栈。不要使用 PICK 和 ROLL. 。
当你坚持这样编写代码之后,有些规则就可以放松,但是一开始必须按这样的风格去做。
• 使用返回栈;
• 使用局部变量;
• 使用存储器中的数据结构,在堆栈上传递指针;
公认的经常遇到麻烦的领域是图形处理。我们可以看看 Postscript 是怎么做的:它们确实是使用全局状态变量以避免麻烦,但是只能通过特定的字来访问这些状态。
什么是 Forth 兴趣组织?
---------------------------------------------------
Forth 兴趣组织 Forth Interest Group ( FIG )成立于 1978 年,它的目的是发布信息、普及 Forth 语言,也是 Forth 专业程序员最早机构。 Forth 兴趣组织目前还维护一个网页
http://www.forth.org/forth.html
其中有 Forth 语言更完整的介绍和许多 Forth 开发者的链接。
Chuck Moore 是谁?他现在做什么?
----------------------------------------------------
Chuck Moore 发明了 Forth 语言,有关 Forth 的历史信息可以参看
<http://www.forth.com/Content/History/History1.htm>).
最近他用自己的哲学思想来设计硬件,并且已经设计了几个能够很好地运行 Forth 语言的处理器 : Novix 4016 、 Shboom 、 uP20 、 uP21 、 F21 、 i21 …… .
他还不断地探索新的思想,更新他早先关于软件和 Forth 的思想:他为 Novix 实现的 cmForth 非常有影响力,最近的开发成果是 Color Forth 和 Machine Forth 。
Machine Forth 是一个只有 27 条指令的简单虚拟机,这个机器通过硬件在 uP21 和后续的处理器上实现,但是也通过软件在 386 处理器上以简单本地代码的方式实现。它与 ANS Forth 的差别是:每个堆栈顶都包含一个扩展的进位 CARRY 位,有一个寄存器 A 用于存储器访问(替代通过栈顶元素作地址指针访问存储器的寻址方式)。
正文
Forth 常见问题解答(2)2005-08-05 13:16:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/forth/3446.html
阅读(3288) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论