正文

Forth 常见问题解答(3)2005-08-05 13:17:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/forth/3447.html

分享到:


哪些观点是口水大战?
商业化的还是自由软件的 Forth 系统?
自由软件的 Forth 是很差的 Forth ?
块还是文件?
我从哪里能够找到 C-to-Forth 编译器 ?
从哪里可以找到 Forth-to-C 编译器 ?
Forth 中有记录类型吗?




哪些观点是口水大战?
----------------------------------------------------
有些观点引起了长久和热烈的争论,参加的双方都在重复自己的观点而从来都想听别人是怎么说有,我希望你不要陷入其中。

这里我列出了一些针锋相对的观点,作为你阅读的起点,这样可以避免像他们一样地投身到战斗中去。



商业化的还是自由软件的 Forth 系统?
----------------------------------------------------
“付出什么,你就会得到什么。使用一个商业化的 Forth 系统,你可以得到商业化的文档和支持,我们需要一个商业化的系统,否则 Forth 就是死路一条”。

“我使用自由软件方式的 Forth 系统有良好的经验。我没有钱付给商业 Forth 系统。我想要源代码(有些商业系统不提供整个系统的源代码),文档和支持很差的商业软件开发者也不乏其例。没有自由软件方式, Forth 就是死路一条 ” 。



自由软件的 Forth 是很差的 Forth ?
----------------------------------------------------
“任何人都可以写一个很坏的 Forth ,然后没有文档和支持地发布出来;使用了这样的系统之后,没有人再想用 Forth 做任何工作。自由的 Forth 败坏了 Forth 的名声,自由的 Forth 抢了开发者的生意。 ”

“许多人通过 fig-Forth 学习 Forth ,确实有优秀的自由软件 Forths 。许多成功的语言开始都(并且现在仍然)提供自由软件版本。没有自由软件式的实现(就像 Ada、Eiffel 和 Miranda ),一种语言就不能普及(现在也有了自由软件的 Ada 和 Eiffel 实现).”



块还是文件?
---------------------------------------------------
“每个人都使用文件,所有的第三方工具都是使用文件来进行设计的。文件浪费的空间更少。块导致水平的、不可读的代码。块使得 Forth 很可笑。”

“我们并不总是在操作系统的支持下工作,在有些机器上我们就没有文件。我们已经有了非常优秀的块编辑器和其它工具以及与块一起工作的编码标准(比如 shadow screens )。”



我从哪里能够找到 C-to-Forth 编译器 ?
---------------------------------------------------
Parag Patel <mailto:parag@pinhead.parag.codegen.com> 写到 :

我们 (CodeGen, Inc. <http://www.codegen.com>) 销售 C-to-Fcode 编译器。它实际产生 IEEE-1275 Forth 并以 token 化方式运行。

但它产生的 Forth 代码真的是很难看。产生不好的代码比较容易,而产生清晰的代码则非常困难。 C 和基于堆栈的语言不能很好地混合在一起,我最后通过使用 Forth $frame 变量用于局部变量而实现 C 语言的变量栈帧。

Stephen Pelc <mailto:sfp@mpeltd.demon.co.uk> 写到:

MPE 生产 C 语言到堆栈机器的编译器,它为两个堆栈的虚拟机器产生 TOKEN 化的代码。这种代码质量好, TOKEN 所占用的空间情况比我们测试的商业化 C 语言编译器要好,这是虚拟机设计的结果。当然,需要的改进是虚拟机可以支持局部变量。

tokens 可以由编译器后端进行解释,也可以翻译到一个 Forth 系统中去,所以大部分是可移植的,只有与目标体系结构相关的部分除外。

这个软件是收费的,支持一个二进制兼容系统。



从哪里可以找到 Forth-to-C 编译器 ?
--------------------------------------------------
一个没有技术支持的原型 Forth-to-C 编译器在

<http://www.complang.tuwien.ac.at/forth/forth2c.tar.gz>.

有关它的描述在 EuroForth'95 paper

<http://www.complang.tuwien.ac.at/papers/ertl&maierhofer95.ps.gz>.

另一个 Forth-to-C 编译器由 Rob Chapman编写:

<mailto:rc@compusmart.ab.ca> Timbre

<http://www.compusmart.ab.ca/rc/Timbre/timbre.htm> system.



Forth 中有记录类型吗?
--------------------------------------
许多软件包提供了像 Pascal 的 RECORD 和 C 的 struct 一样的数据结构,比如 Forth

Scientific Library ( <http://www.taygeta.com/fsl/fsl_structs.html>) 或者

<http://www.complang.tuwien.ac.at/forth/struct.fs>.

阅读(2367) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册