找回密码
 立即注册
查看: 126|回复: 1

Forth入门(02):引 论

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2025-4-2 02:46:45 | 显示全部楼层 |阅读模式
本系列文章将依托《Starting Forth》这一权威著作,通过PC-DOS51单片机上运行的FORTH系统实例,引领各位读者系统探索Forth计算机语言的奥秘。
一、初学者指南:揭秘计算机语言
初识“计算机语言”这一术语,初学者或许会遐想:“计算机究竟说着怎样的语言?这定是难以捉摸的密码,或许形如:976#!@NX714&+”。然而,计算机语言实则并不晦涩。它仅是人与计算机沟通的一座便捷桥梁。
不妨以木偶为例。操控者只需轻摇木制控制器,木偶便能“翩翩起舞”,无需直接接触操控线。在此情境下,摇动控制即木偶的“行走”指令。操控者以木偶能懂、自身易掌握的方式,引导木偶行动。
xFig_01_提线木偶.jpg
计算机亦如提线木偶,需以特定语言精确指示其操作。因此,我们亟需一种兼具两种看似矛盾特性的语言:既需精确传达计算机执行操作所需的所有信息,又需简洁易用,便于程序员驾驭。
自计算机诞生以来,语言层出不穷:Fortran乃先驱,COBOL仍是数据处理标杆,BASIC作为初学者语言,正逐步迈向FortranCOBOL的殿堂;CJava则是90年代的通用语言。
而本书聚焦的,是一种别具一格的语言——Forth。近年来,Forth的受欢迎程度历久弥新,在各领域程序员中均享有盛誉。
前述所有语言,包括Forth,均属“高级”语言范畴。对于初学者而言,明晰高级语言与运行它的计算机之间的差异至关重要。高级语言对程序员而言始终如一,无论运行于何种品牌或型号的计算机。但每种品牌或型号均有其独特的内部语言,即“机器语言”。
为阐释机器语言,让我们再次以木偶为例。设想没有木制控制器,木偶师需直接操控琴弦。每根琴弦对应木偶身体的一部分,琴弦运动的和谐组合便构成了木偶的“机器语言”。
现将琴弦绑定至控制器,控制器犹如高级语言,操控者只需手腕一转,便能同时驱动多根琴弦。
高级计算机语言亦然,简单熟悉的符号“+”背后,是众多内部功能的协同执行。
xFig_02_ .jpg
计算机的巧妙之处在于:它能通过编程,将高级符号(如“+”)翻译为自身的机器语言,进而执行机器指令。高级语言实则是一种计算机程序,将人类可理解的单词与符号,翻译为特定品牌与型号的计算机所能理解的机器语言。
Forth与其他高级语言有何不同?简而言之,这关乎人与计算机之间的妥协。语言设计需兼顾人类用户的便捷性与计算机操作的兼容性。
Forth在语言领域中独树一帜,因其对此问题的解决方案独具匠心。本书将为您揭晓其独特之处。
二、专业人士探秘:Forth在现实世界中的风采
直至1994年前后,Forth的受欢迎程度持续攀升,在爱好者与业余爱好者中尤为显著。约1996年后,其受欢迎程度保持相对稳定。然而,这一发展仅是Forth悠久历史中的新篇章。
1972年起,Forth便已在重要的科学与工业应用中崭露头角。事实上,若您专业使用小型或微型计算机,Forth或许能以更高效的方式运行您的应用程序。
此刻,您或许会问:“若Forth如此高效,为何我未曾使用?”答案在于,您与大多数人一样,对Forth知之甚少。
欲深入了解Forth,建议您阅读本书,并尽可能寻找Forth系统亲身体验。
然而,对于仍在书店徘徊的读者,本部分将解答两个关键问题:“Forth究竟为何?”以及“Forth有何妙用?”
Forth集多重身份于一身:
高级语言
汇编语言
操作系统
一套开发工具
软件设计哲学
1)作为高级语言,Forth以一组强大的标准命令为起点,进而提供定义自定义命令的机制。在先前定义的基础上构建定义,这一结构化过程便是Forth的高级编码之道。
2)作为汇编语言,Forth允许使用汇编程序,在汇编助记符中直接定义单词。所有命令均由同一解释器解释,由同一编译器编译,赋予语言极大的灵活性。
3)您的代码顶层将酷似应用程序的英语描述。Forth被誉为“元应用语言”——一种能够创建面向问题语言的语言。
4)作为操作系统,Forth具备传统操作系统的所有功能,包括解释、编译、汇编、虚拟内存处理、I/O、文本编辑等。
5)然而,得益于Forth的独特设计,Forth操作系统较传统操作系统更为简洁,运行更迅速,使用更便捷,且占用内存更少。
Forth有何优势?Forth提供了一种简便方法,以最大化处理器效率。例如:
Forth运行迅捷。高层Forth的执行速度与其他高级语言并驾齐驱,较同等汇编语言程序仅慢20%75%。而时间关键代码可用汇编语言编写,以全速运行。Forth摒弃传统操作系统,消除冗余与不必要的运行时错误检查。
Forth编译后的代码紧凑。Forth应用程序较同等功能的汇编程序所需内存更少,能耗更低(对于手持设备与便携式设备至关重要!)。以Forth编写,整个操作系统及其标准词集驻留于不足8K字节之中。对目标应用程序的支持或许仅需不足1K字节。
Forth具备可移植性。它已在工业界所知的几乎每一种小型与微型计算机上实现。大多数微控制器与DSP,即便规模小巧,亦有Forth实现。
众所周知,Forth能将相当于汇编语言编程的程序开发时间缩短10倍,将相当于CJava高级编程的时间缩短2倍。生产率的提升,源于Forth是“结构化编程”的典范,亦因其具备交互性与模块化特性。
以下是Forth在现实世界中的部分应用实例:
1AVCO/Textron系统,用于楼宇自动化与辅助服务,服务于沙特阿拉伯哈立德国王国际机场。系统包含9PDP 11/44378台基于8086的计算机与320台基于8085的安全处理器,共同监控与控制超过36,000个点。
2)伊士曼柯达公司,质量控制系统监控摄影胶片密度,包括胶片运动控制、胶片密度步长的自动识别以及定制的IEEE-488总线接口。
3)联邦快递,手持超级追踪器,由每位联邦快递递送员携带。包含条形码阅读器、键盘、2x20行显示器,执行广泛的包裹输入与跟踪功能,包括从机场代码到所有10,000个美国邮政编码的交叉索引,并具备智能断电序列,以延长电池寿命。
xFig_03_联邦快递.jpg
4)美国国家航空航天局?戈达德航天飞行中心:
1)航天飞机模拟器的50英尺长六关节臂的控制。大量数学例程将两个三轴操纵杆命令转换为六个不同坐标系中所需的关节速度。
2)航天飞机仪器中使用的UT69R000抗辐射微处理器的多任务操作系统、Forth语言编译器与库。

3)开发基于Forth的小型有效载荷住宿接口模块(SPAIM),将航天飞机的太阳反向散射紫外线(SSBUV)仪器与航天飞机的航空电子系统相连。SSBUV仪器用于校准NOAA卫星上的臭氧测量仪器。
xFig_04_NASA1.jpg
5)欧文斯科宁玻璃纤维公司,多年来一直将Forth作为其分布式工业控制器的基本固件。这些控制器执行多种功能,管理绕线机、称重设备等,用于制造各种玻璃纤维产品。韩国与墨西哥的工厂亦使用FORTH, Inc.EXPRESS提供监控与报告功能。
6)土星公司,整个土星汽车装配厂的分布式暖通空调系统,控制超过20040马力加热-冷却-加湿单元(配备Z-80s),通过双层网络使用PC作为文本与图形系统监视器。外部空气传感器为智能设定点控制以及燃气加热与冷却水冷却系统的经济使用提供输入。
xFig_05_土星1.jpg
7)萨克拉门托市政公用设施区(加利福尼亚州):州议会大厦中的光伏阵列提供用户可配置的实时趋势、历史趋势、警报/异常报告、规则跟踪、I/O系统练习器、基于类的实时数据库、图形过程显示、同步多供应商I/O系统扫描、I/O与开发过程模拟,以及带有完整图形的多个远程终端访问。Digitronics Sixnet(TM) I/O系统的定制驱动程序在一周内便可提供;EXPRESS已支持ModiconAllen-BradleyOPTO-22 OPTOMUXPAMUX等。

8)明尼苏达大学,基于PC的望远镜控制与数据采集系统(通过IEEE-488总线),数据分析与图形显示。包括提供远程观测,使用自定义协议在单条电话线上多路复用来自三个独立数据流的数据包。
xFig_06_大学1.jpg
9VertexRSI(分区),用于定制卫星跟踪接收器的软件。包括频率合成器控制、远程RS-232命令端口、真空荧光图形显示。
10)一家移动电话制造商正引入源自SENDIT项目的新游戏引擎。该引擎使用基于Forth的虚拟机,以减小电话中游戏的大小,并允许在电话中提供更多功能,而不增加存储器大小。
11)近期,一项基于MPE 8051ARM硬件的咨询项目即将向市场推出一系列全新的自动售货机,引领行业创新潮流。
12)开普敦的建筑计算机软件巨头CCS(建筑计算机软件公司),其研发的MARSCANDY应用程序已在全球范围内树立行业标杆。CCS软件是ProForth for Windows环境下开发的大型Windows应用程序典范,VFX Forth版本代码量已突破85万行。值得一提的是,CCS软件在香港新启德机场的规划中发挥了关键作用。欲了解更多,请访问CCS官方网站。
13Barefoot Auditor,这一微软用于收集自身电脑信息的工具,正是基于MPEForth系统精心打造。《赤脚审计者》近期频频亮相各大杂志封面,欲获取更多详情,请联系Pathfinder
xFig_07_WR.jpg
14)微系统电子公司,将MPEProForth for Windows作为商业洗衣控制系统的核心驱动力,同时采用MPEForth 6交叉编译器为PLC提供实时控制支持。这些系统已广泛应用于全球多个国家,您或许正躺在由Micross Tracknet控制系统清洗的床单上享受美梦。
15Forth虚拟机在支付终端领域大放异彩,助力EuropayInternational的开放终端架构(OTA)实现跨平台应用部署。OTA通过虚拟机(VM)架构,将支付终端应用程序直接推送至各类支付终端,无需考虑硬件或CPU差异。目前,OTA VM已适配多款CPU,正在全球范围内加速部署。OTA项目团队规模庞大,多达30名程序员在两大洲的多个地点协同作战。欲深入了解OTA,请点击此处。
三、精通Forth,开启高效计算之旅
我们不得不承认,这是一个难得的机遇:Forth赋予您更高效地利用电脑的能力。
打个比方:手动变速器虽比自动变速器更难驾驭,但对许多司机而言,它却能带来更佳的操控体验。
同理,Forth相较于传统高级语言,学习门槛或许更高,但传统高级语言之间相似性极高(即掌握一种后,学习另一种并不难)。然而,一旦您精通Forth,便能以最小化CPU时间和内存空间为目标,运用其独特的组织原则,显著缩短项目开发周期。
请记住,Forth的所有元素均遵循同一协议,包括操作系统(有时)、编译器、解释器、文本编辑器、虚拟内存、汇编程序以及多道程序。相较于逐一学习这些单独元素,掌握Forth的整体学习曲线要短得多。
若这一切让您心潮澎湃,那么,请翻开新的一页,开启您的Forth之旅吧!
2007年注:另请参阅维基百科上的第四条相关条目。
2007年:《Starting FORTH》出版后,FORTH语言正式迈入标准化时代,遵循ANS Forth标准。
2007年:ANS Forth标准于1994年尘埃落定,并以与ISO Forth标准几乎一致的形式获得广泛认可。
2007年:Forth早期的部分应用已逐渐淡出历史舞台。然而,更多Forth的应用实例,请访问Forth公司、MPE及其他相关网站。




回复

使用道具 举报 送花

3

主题

1160

回帖

1031

积分

等待验证会员

积分
1031
发表于 2025-4-2 02:48:00 | 显示全部楼层
Forth入门(02):引论

本系列文章将以《Starting Forth》这一权威著作为基础,结合PC-DOS与51单片机上运行的FORTH系统实例,带领读者深入探索Forth计算机语言的精髓。本文作为系列的开篇,旨在为初学者揭开计算机语言的神秘面纱,并引导大家理解Forth语言的独特之处。

一、初学者指南:揭秘计算机语言

对于初次接触“计算机语言”这一术语的读者来说,可能会产生一种误解,认为计算机语言是一种晦涩难懂的密码,或许类似于“976#!@NX714&+”这样的符号组合。然而,事实并非如此。计算机语言实际上是人与计算机之间的一座便捷桥梁,它以一种既精确又易于理解的方式,帮助程序员向计算机传达指令。

为了更好地理解这一点,我们可以将计算机比作提线木偶。操控者通过摇动木制控制器来指挥木偶的动作,而无需直接接触操控线。在这个比喻中,摇动控制器的动作就是木偶的“行走”指令。操控者使用一种木偶能够理解且自身易于掌握的方式,来引导木偶完成各种动作。

同样地,计算机也需要一种特定的语言来精确指示其操作。因此,我们需要一种兼具两种看似矛盾特性的语言:一方面,它需要能够精确传达计算机执行操作所需的所有信息;另一方面,它又需要简洁易用,便于程序员驾驭。

自计算机诞生以来,出现了多种编程语言。Fortran作为先驱,COBOL至今仍是数据处理的标杆,BASIC作为初学者的入门语言,正逐步迈向Fortran与COBOL的殿堂;而C与Java则是90年代的通用语言。然而,本书聚焦的是一种别具一格的语言——Forth。近年来,Forth的受欢迎程度历久弥新,在各领域程序员中均享有盛誉。

二、高级语言与机器语言

前述所有语言,包括Forth,均属于“高级”语言范畴。对于初学者而言,理解高级语言与运行它的计算机之间的差异至关重要。高级语言对程序员而言始终如一,无论它运行于何种品牌或型号的计算机。然而,每种品牌或型号的计算机都有其独特的内部语言,即“机器语言”。

为了更形象地解释机器语言,让我们再次以木偶为例。假设没有木制控制器,木偶师需要直接操控琴弦。每根琴弦对应木偶身体的一部分,琴弦运动的和谐组合便构成了木偶的“机器语言”。现在,我们将琴弦绑定至控制器,控制器犹如高级语言,操控者只需手腕一转,便能同时驱动多根琴弦。

在计算机的世界中,高级语言就像控制器,它简化了程序员与计算机之间的交互。程序员只需使用高级语言编写代码,而无需直接操作底层的机器语言。这种抽象层使得编程变得更加高效和便捷。

三、Forth语言的独特之处

Forth语言之所以在众多高级语言中脱颖而出,主要得益于其独特的架构和设计理念。Forth是一种基于堆栈的语言,它通过堆栈来管理数据和操作。这种设计使得Forth语言在资源受限的环境中(如嵌入式系统)表现出色,因为它能够高效地利用有限的硬件资源。

此外,Forth语言还具有高度的可扩展性。程序员可以根据需要定义新的操作符和数据结构,从而灵活地适应各种应用场景。这种灵活性使得Forth语言在科学计算、嵌入式系统、实时控制等领域得到了广泛应用。

结语

通过本文的介绍,我们希望读者能够对计算机语言有一个初步的了解,并对Forth语言的独特之处产生兴趣。在接下来的系列文章中,我们将深入探讨Forth语言的各个方面,帮助读者掌握这一强大而灵活的工具。无论您是编程新手还是经验丰富的开发者,Forth语言都将为您打开一扇通往计算机世界的新大门。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 19:43 , Processed in 0.109199 second(s), 57 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表