Forth

Forth是六十年代末期，由查理斯·摩尔发展出来在天文台使用的电脑自动控制系统及程序设计语言，允许使用者很容易组合系统已有的简单指令，定义成为功能较复杂的高阶指令。由于其结构精简、执行快速、操作方便，广为当代天文学界使用。八十年代以后，有爱用者成立Forth Interest Group在世界各地推广，并陆续在各类计算机上建立Forth系统及标准的语言。

FORTH以可延伸的词典为核心，采用两个堆栈为基础的高度模块化结构，是一种将解译器和编译器合并运用的双态系统。使用FORTH，可在编译过程中检测差错，并且逐步扩充编译程序代码。利用标准FORTH所写的程序几乎不必大修改，就能在各类计算机运作；甚至在特别设计的电脑上可以完全放弃组合语言，直接由FORTH转化成机器语言，就好像现代的Java虚拟机。同时，使用者也可以把自己定义的运算功能加入编译器中，使Forth语言更有弹性。台湾的黄大一及现旅居美国的丁陈汉荪是这方面的专材，黄大一在1980年代后期开发过两部完全使用FORTH的嵌入式系统，丁陈汉荪于2002年代即以eforth架构打通软硬体任督二脉发展完成forth芯片，并将毕生研究forth的心得于2003年代编辑成书嵌入式系统：使用eForth。

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

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

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

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

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

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

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

  在微软的windows操作系统下，一个很好的Forth系统是Win32Forth。
  详见http://win32forth.sourceforge.net 。

 GForth是GNU对ANS Forth的一个实现，可在ftp://ftp.gnu.org/gnu/gforth/ 下载（另有HTTP链接，GNU软件一般推荐通过镜像站点下载）。下载后，使用通常的codice_1指令即可编译安装。GForth还可以内置在著名的文本编辑器Emacs中使用。若出现问题，请阅读codice_2文件。

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