• 1.摘要
  • 2.基本信息
  • 3.起源
  • 4.历史
  • 5.程序
  • 6.特点
  • 7.编程
  • 8.设计原理
  • 9.主要元素
  • 10.开发的项目
  • 11.参考资料

forth语言

Forth 语言是 Charles Moore 在 20 世纪 60 年代发明的基于堆栈、交互式、具有简单性哲学思想的计算机编程语言和环境,已被证明特别适合于软件代码在千行数量级的中规模嵌入式系统应用,作为国外大公司竞争系统开发周期、生产成本和系统可靠性的秘密武器之一,被广泛应用于天文、军事、航空、航天、工业自动化、图形、仪器仪表、工作站领域,并且研制了以 Forth 为体系结构的处理器芯片。

基本信息

  • 中文名

    Forth 语言

  • 外文名

    Forth Language

  • 发明人

    Charles Moore

  • 时间

    20 世纪 60 年代

  • 隶属

    计算机语言

起源

Forth 并不起源于其它已有的程序设计语言,所以它的外观和内部特点对于新用户来说是特殊的。但是 Forth 的简单性、高度模块化和交互式特性可以弥补初学者的陌生感,使得 Forth 非常易于学习和使用。一个新的程序员通常需要花一些时间来掌握 Forth 巨大的命令集,通过一个月左右的全面使用,程序员就可以理解它的整个内部工作机理,所学到的东西要比传统操作系统和编译器多得多。

Forth 与传统语言最大的不同是它的可扩展性。 Forth 的编程过程就是定义新的字,字实际上就是语言的新命令。字可以用一系列以前定义的字来定义,这个过程与教育孩子的过程相似:我们总是用孩子们以前理解的概念来教给孩子们新的概念,而这些字被称为“高级定义”。同样,新的字也可以用汇编代码定义,因为在多数 Forth 实现中都包括宿主处理器的汇编器,而这些字被称为 CODE 字。

可扩展性的结果是我们在开发一个应用的同时,也间接地开发了一个特殊的、针对这一类应用的“面向应用的语言”,它可以用于或者经过修改之后被用于相似的应用。

Forth 的可扩展性并不仅仅是为语言自身增加新的命令,所以不要把定义字与传统高级语言定义函数、过程等同。可扩展性还能够创建一个可以定义其它字的字,这种字被称为“定义字”。在创建这样一个定义字的时候,程序员能够指定它所创建的字在编译时间、运行时间或者这两种状态下的特殊行为。这个能力允许我们定义特殊的数据类型,并对其行为和结构实施完全的控制。又由于这种字的运行时间行为可以用高级语言或者汇编语言来定义,所以由定义字创建的字将具有与其它 Forth 字一样的性能。系统也允许我们增加一个新的“编译指示符”以实现特殊类型的循环或者其它的控制结构,比如CASE 结构。

历史

Forth 语言是 60 年代发明的,当时 Moore 在斯坦福线性加速器中心做计算机程序员工作,后来变成了一个自由工程师。当时的工程技术人员为了控制编译程序必须学习大量的方法,包括连接器、汇编器、伪指令以及高级语言,开发这个新工具的目标就是为了克服这些问题。

按照Forth语言的发明人Charles Moore( Chuck )的说法:

我第一次把各种想法组合成一个整体之后,它在“第三代计算机” IBM1130 上工作得如此有效,以致于我认为它是“第四代语言”,理所当然地应该被称为 FOURTH 。不过,当时的 IBM 计算机只允许 5 个字符的标识符。所以 FOURTH 变成了 Forth ,这是一个非常好的的文字游戏。

第一个称为 Forth 的程序大约是在 1970 年编写的。第一个完整的实现是 1971 年在一台 PDP-11 上完成的,用于亚利桑那州国家射电天文台的 11 米射电望远镜。这个系统的责任是定向和跟踪望远镜,收集数据并记录到磁带上,支持一个交互式的图形终端,供天文学家分析以前记录的数据。系统的多任务特点允许这些功能同时执行,没有时间上和其它方面的冲突。

这个系统取得了巨大的成功,世界各地的天文学家开始请求提供软件拷贝。Forth的使用范围迅速也扩大,国际天文学会于 1976 年接受了 Forth 作为标准语言。

这个应用的成功还促使 Moore 和 Elizabeth Rather ( ("Bess") 于 1973 年成立了 Forth, Inc. 公司,目标是开发这种语言的商业应用。 Forth, Inc. 在小型机上开发了多用户的 Forth 版本,可以用于从数据库到图像处理等科学和应用领域。和第一个应用一样,它们需要不同工具的组合。

1977 年,公司为刚刚出现的 8 位处理器开发了一个称为“microForth”的版本,对小型机上的“miniForth”做了扩展和补充。1979 年,称为“PolyForth”的产品替代了这些系统。从此以后,它就成了市场上销售量最大的 Forth 系统。

“microForth”系统在美国、欧洲和日本的嵌入式微处理器应用中取得了成功,由此产生了欧洲 Forth 用户团体 (EFUG) ;1978年,位于北加利福尼亚的计算机爱好者成立了 Forth 兴趣组织 (FIG).

FIG 从天文台得到 Forth 系统,再用这个系统开发出一个简单的模型,然后在几个不同的系统上实现(那当然是得到了 Forth,Inc 的许可之后)并以非常低的价格销售。这个模型后来变成了著名的 FIG-Forth 模型。所有这些使得对 Forth 的兴趣迅速增大。 FIG 在 15 个国家中有 60 个分支1

程序

下面是一个在标准输出设备上输出Hello World的简单程序,这种程序通常作为开始学习编程语言时的第一个程序:

: run-hello \定义一个单词,名字叫run-hello ." Hello, world!" CR ;run-hello

只有在编译模式,也就是在定义一个单词的中使用."指令,才能输出字符串2