博文
Forth 常见问题解答(2)(2005-08-05 13:16:00)
摘要:
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......
Forth 常见问题解答(1)(2005-08-05 13:15:00)
摘要:本文译自 comp.lang.forth Frequently Asked Questions (1/6): General/Misc
原文整理 M. Anton Ertl, anton@mips.complang.tuwien.ac.at
Forth 是什么?
Forth 是怎么来的?
Forth 用在什么地方?为什么要使用 Forth?
Forth 过时了吗?
Forth 比 C 语言还要小、还要快吗?
Forth 是什么?
----------------------------------------
Forth 是一个基于堆栈的、可扩展的、没有类型检测的语言,可能最有名的是它的“逆波兰”(后缀)算术表达法,使用过 HP 计算器的人应该对这种方法比较熟悉:在 Forth 中把两个数相加,你需要输入 3 5 + 而不是 3 + 5 。
在 Forth 中,基本的程序单位是“字”:字可以是一个命名的数据项、子程序或者操作符。 Forth 的编程就是用已经存在的字来定义新的字。
Forth 语句:
: SQUARED DUP * ;
定义了一个新的字 SQUARED ,它的功能是对一个数求平方(通过自身相乘)。由于全部的语言结构都是由字组成的,应用程序员可以根据需要“扩展” Forth 以加入新的操作符、程序结构或者数据类型。 Forth 的“内核”包含了用于整数、地址、字符和布尔值的操作符,字符串和浮点操作可以选择加入。
Forth 是怎么来的?
-------------------------------------
Forth 这个名字的本意是想说明这个软件是为第四代(下一代)计算机设计的,那正是 Moore 通过分布式小型计算机所看到特色。不过,当时他使用的操作系统限制文件名只能少于 5 个字符,所以字母 'U' 就被去掉了。
直到 70 年代未期,还是使用着 FORTH 这种全部大写的字母,因为那个时候流行着只支持大写字母的 I/O 设备。随着小写 I/......
维基中的Forth(2005-08-05 13:00:00)
摘要:http://zh.wikipedia.org/wiki/Forth
Forth
维基百科,自由的百科全书
Forth是六十年代末期,由Charles H. Moore发展出来的一种程序设计语言,允许使用者将现有的简单叙述,定义成较复杂的叙述。
FORTH采用以词典为核心,以堆栈为基础的高度模块化结构,是一种将解译程序和组译程序合并运用的双态系统。使用FORTH,可在编译过程中检测差错,并且逐步增加编译程序代码部份。利用FORTH所写的程序几乎不必任何修改,就能在各类计算机运作;甚至在特别设计的电脑上可以完全放弃组合语言,直接由FORTH转化成机器语言,就好像现代的Java machine。台湾的黄大一是这方面的专材,并在1980年代后期开发过两部完全使用FORTH的嵌入式系统。同时,使用者也可以自由使用自己定义的运算功能,加入编译器 (compiler) 中,使Forth语言更有弹性。
最常用在内建程序,以及系统与过程控制。现在,它也用在微计算机上,主要运用在数据搜集与处理、图形处理、专家系统,以及实时流程控制等。
[编辑]
Forth语言的Hello World程序
下面是一个在标准输出设备上输出Hello World的简单程序,这种程序通常作为开始学习编程语言时的第一个程序:
." Hello, world!" CR
[编辑]
从程序员的角度看Forth
用Forth的“追随者”的话来说,Forth是一种“人机一体”的语言。在程序员的意识中必须要有一台逻辑上的机器(可能是实际的芯片,也可能是虚拟机)。这台机器拥有两个堆栈(数据堆栈和返回堆栈),一个词典(在Forth中的词(word)对应于高级语言的函数或者子程序,若干的词构成词典。)一个内部解释器和一个外部解释器。
和Forth语言一样,也是基于堆栈的程序设计语言还有PostScript。
......