fbpx
维基百科

Forth

Forth是1960年代末期,由查理斯·摩爾发展出来在天文台使用的電腦自動控制系統程序设计语言[1],允许使用者很容易組合系統已有的簡單指令,定义成為功能较复杂的高階指令。由於其結構精簡、執行快速、操作方便,廣為當代天文學界使用[2][3]。八十年代以後,有愛用者成立Forth Interest Group在世界各地推廣,並陸續在各类计算机上建立Forth系統及標準的语言。

Forth
编程范型面向堆栈过程式反射式串接
設計者Charles H. Moore
发行时间1970年,​54年前​(1970
型態系統无类型
文件扩展名.fs, .fth, .forth
網站forth-standard.org
主要實作產品
SwiftForth (Forth, Inc.)
Gforth英语Gforth (自由软件)
VFX Forth (微处理器引擎)
啟發語言
Burroughs大型系统英语Burroughs large systems, Lisp, APL
影響語言
Factor, Joy, PostScript, RPL英语RPL (programming language), REBOL

简介 编辑

Forth以可延伸的词典为核心,采用以堆栈为基础的高度模块化结构,是一种将解译器编译器合并运用的双态系统。使用FORTH,可在编译过程中检测差错,并且逐步扩充编译程序代码。利用標準Forth所写的程序几乎不必大修改,就能在各类计算机运作;甚至在特別设计的电脑上可以完全放棄组合语言,直接由Forth转化成机器语言,就好像现代的Java虚拟机。同时,使用者也可以把自己定义的运算功能加入编译器中,使Forth语言更有弹性。

Forth是一种可扩展的,交互式的语言。最初为小型的嵌入式电脑设计的,现在它几乎可以在任何主流的芯片上解译和编译,甚至已有多種可直接运行Forth指令的芯片。在电子表格,专家系统,多用户数据库,和分布式实时控制系统中有广泛的应用。表面来看,Forth是一种基于堆栈的概念机。例如要计算(3+4)*5,程序就是:3 4 + 5 *。首先把3和4入堆栈,然后调用+子程序,把堆栈的最顶上两个元素取出(也就是3和4)进行加法运算,然后把结果入堆栈,然后把5入堆栈,然后调用*子程序,把最顶的2个元素,也就是7和5取出,并进行乘法运算,然后把结果入堆栈,最后的。把结果从堆栈中取出列印。事实上这是一种最简单有效的概念机。当然Forth远远不止这些。

最常用在内建程序,以及系统与过程控制,它也用在微电脑上。主要运用在数据搜集与处理、图形处理、专家系统,以及实时流程控制等。

样例程序 编辑

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

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

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

从程序员的角度看Forth 编辑

用Forth的“追随者”的话来说,Forth是一种“人机一体”的语言。在程序员的意识中必须要有一台逻辑上的机器(可能是实际的芯片,也可能是虚拟机)。这台机器拥有两个堆栈(数据堆栈和返回堆栈),一个词典(在Forth中的词(word)对应于高级语言的函数或者子程序,若干的词构成词典。)一个内部解释器和一个外部解释器。

和Forth语言一样,也是基于堆栈程序设计语言还有PostScript。基于堆栈的工具还有linux下的计算器dc,在其内部是通过堆栈实现的。

使用Forth开发应用程序与使用其他语言开发应用程序的感受有很大的不同。Forth的一切都是透明的,使用者可以看到每一个功能的实现原理和过程,正是由于这一点,Forth可以作为学习操作系统及编程的非常好的工具。关于Forth编程的特点有一个较为贴切的描述:"如果C语言给你的感觉是:它是最好的程序设计语言,那么使用Forth给你的感觉则是:自己是最好的程序设计师。”

实现 编辑

在微軟的windows操作系统下,一個很好的Forth系統是Win32Forth。詳見win32forth[4]

GNU/Linux系列操作系统下,GForth是GNU對ANS Forth的一個實現,可在gnu网站[5]下载(另有HTTP链接[6],GNU软件一般推荐通过镜像站点[7]下载)。下載後,使用通常的configure; make; make install指令即可編譯安裝。GForth還可以內置在著名的文本編輯器Emacs中使用。若出现问题,请阅读BUILD-FROM-SCRATCH文件。

GForth同时适用于其他系统,例如OS X等UNIX类系统。

引用 编辑

  1. ^ C. H. Moore; E. D. Rather; D. R. Colburn. The Evolution of Forth. ACM SIGPLAN Notices. ACM SIGPLAN History of Programming Languages 28 (3). March 1993 [2021-04-04]. (原始内容存档于2011-08-22). 
  2. ^ (original NASA server no longer running, copy from archive.org)
  3. ^ . [2007-09-04]. (原始内容存档于2010-10-24). 
  4. ^ [1](页面存档备份,存于互联网档案馆
  5. ^ [2](页面存档备份,存于互联网档案馆
  6. ^ HTTP链接(页面存档备份,存于互联网档案馆
  7. ^ 镜像站点(页面存档备份,存于互联网档案馆

外部連結 编辑

  • FIG(页面存档备份,存于互联网档案馆),Forth兴趣小组,是致力于教育和推广Forth编程语言的一个全球性的非盈利组织。
  • Forth公司主页(页面存档备份,存于互联网档案馆),上面有很多经典的Forth学习资料,历史和教程。
  • ,Forth程序员社区和资料站。
  • Starting Forth(页面存档备份,存于互联网档案馆),Leo Brodie写的Forth语言的入门教材,该书的特色是使用大量生动的图片来说明程序执行的流程。

forth, 是1960年代末期, 由查理斯, 摩爾发展出来在天文台使用的電腦自動控制系統及程序设计语言, 允许使用者很容易組合系統已有的簡單指令, 定义成為功能较复杂的高階指令, 由於其結構精簡, 執行快速, 操作方便, 廣為當代天文學界使用, 八十年代以後, 有愛用者成立, interest, group在世界各地推廣, 並陸續在各类计算机上建立系統及標準的语言, 编程范型面向堆栈, 过程式, 反射式, 串接設計者charles, moore发行时间1970年, 54年前, 1970, 型態系統无类型文件扩展名. Forth是1960年代末期 由查理斯 摩爾发展出来在天文台使用的電腦自動控制系統及程序设计语言 1 允许使用者很容易組合系統已有的簡單指令 定义成為功能较复杂的高階指令 由於其結構精簡 執行快速 操作方便 廣為當代天文學界使用 2 3 八十年代以後 有愛用者成立Forth Interest Group在世界各地推廣 並陸續在各类计算机上建立Forth系統及標準的语言 Forth编程范型面向堆栈 过程式 反射式 串接設計者Charles H Moore发行时间1970年 54年前 1970 型態系統无类型文件扩展名 fs fth forth網站forth standard wbr org主要實作產品SwiftForth Forth Inc Gforth 英语 Gforth 自由软件 VFX Forth 微处理器引擎 啟發語言Burroughs大型系统 英语 Burroughs large systems Lisp APL影響語言Factor Joy PostScript RPL 英语 RPL programming language REBOL 目录 1 简介 2 样例程序 3 从程序员的角度看Forth 4 实现 5 引用 6 外部連結简介 编辑Forth以可延伸的词典为核心 采用以堆栈为基础的高度模块化结构 是一种将解译器和编译器合并运用的双态系统 使用FORTH 可在编译过程中检测差错 并且逐步扩充编译程序代码 利用標準Forth所写的程序几乎不必大修改 就能在各类计算机运作 甚至在特別设计的电脑上可以完全放棄组合语言 直接由Forth转化成机器语言 就好像现代的Java虚拟机 同时 使用者也可以把自己定义的运算功能加入编译器中 使Forth语言更有弹性 Forth是一种可扩展的 交互式的语言 最初为小型的嵌入式电脑设计的 现在它几乎可以在任何主流的芯片上解译和编译 甚至已有多種可直接运行Forth指令的芯片 在电子表格 专家系统 多用户数据库 和分布式实时控制系统中有广泛的应用 表面来看 Forth是一种基于堆栈的概念机 例如要计算 3 4 5 程序就是 3 4 5 首先把3和4入堆栈 然后调用 子程序 把堆栈的最顶上两个元素取出 也就是3和4 进行加法运算 然后把结果入堆栈 然后把5入堆栈 然后调用 子程序 把最顶的2个元素 也就是7和5取出 并进行乘法运算 然后把结果入堆栈 最后的 把结果从堆栈中取出列印 事实上这是一种最简单有效的概念机 当然Forth远远不止这些 最常用在内建程序 以及系统与过程控制 它也用在微电脑上 主要运用在数据搜集与处理 图形处理 专家系统 以及实时流程控制等 样例程序 编辑下面是一个在标准输出设备上输出Hello World的简单程序 这种程序通常作为开始学习编程语言时的第一个程序 run hello 定义一个单词 名字叫run hello Hello world CR run hello 只有在编译模式 也就是在定义一个单词的中使用 指令 才能输出字符串 从程序员的角度看Forth 编辑用Forth的 追随者 的话来说 Forth是一种 人机一体 的语言 在程序员的意识中必须要有一台逻辑上的机器 可能是实际的芯片 也可能是虚拟机 这台机器拥有两个堆栈 数据堆栈和返回堆栈 一个词典 在Forth中的词 word 对应于高级语言的函数或者子程序 若干的词构成词典 一个内部解释器和一个外部解释器 和Forth语言一样 也是基于堆栈的程序设计语言还有PostScript 基于堆栈的工具还有linux下的计算器dc 在其内部是通过堆栈实现的 使用Forth开发应用程序与使用其他语言开发应用程序的感受有很大的不同 Forth的一切都是透明的 使用者可以看到每一个功能的实现原理和过程 正是由于这一点 Forth可以作为学习操作系统及编程的非常好的工具 关于Forth编程的特点有一个较为贴切的描述 如果C语言给你的感觉是 它是最好的程序设计语言 那么使用Forth给你的感觉则是 自己是最好的程序设计师 实现 编辑在微軟的windows操作系统下 一個很好的Forth系統是Win32Forth 詳見win32forth 4 GNU Linux系列操作系统下 GForth是GNU對ANS Forth的一個實現 可在gnu网站 5 下载 另有HTTP链接 6 GNU软件一般推荐通过镜像站点 7 下载 下載後 使用通常的configure make make install指令即可編譯安裝 GForth還可以內置在著名的文本編輯器Emacs中使用 若出现问题 请阅读BUILD FROM SCRATCH文件 GForth同时适用于其他系统 例如OS X等UNIX类系统 引用 编辑 C H Moore E D Rather D R Colburn The Evolution of Forth ACM SIGPLAN Notices ACM SIGPLAN History of Programming Languages 28 3 March 1993 2021 04 04 原始内容存档于2011 08 22 NASA applications of Forth original NASA server no longer running copy from archive org Space Related Applications of Forth 2007 09 04 原始内容存档于2010 10 24 1 页面存档备份 存于互联网档案馆 2 页面存档备份 存于互联网档案馆 HTTP链接 页面存档备份 存于互联网档案馆 镜像站点 页面存档备份 存于互联网档案馆 外部連結 编辑FIG 页面存档备份 存于互联网档案馆 Forth兴趣小组 是致力于教育和推广Forth编程语言的一个全球性的非盈利组织 Forth公司主页 页面存档备份 存于互联网档案馆 上面有很多经典的Forth学习资料 历史和教程 中国Forth程序员 Forth程序员社区和资料站 Starting Forth 页面存档备份 存于互联网档案馆 Leo Brodie写的Forth语言的入门教材 该书的特色是使用大量生动的图片来说明程序执行的流程 取自 https zh wikipedia org w index php title Forth amp oldid 71598003, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。