|
Win32Forth
Win32Forth 的历史
历史
[ 本文仅作为对历史的好奇而保留;请参看其它的文档以知晓它现在的状态。最初由 Tom Zimmer 组织 ]
Andrew McKewan 最初用汇编语言编写了 Win32Forth (1994 年中期 ) 内核,这只是作为把 Forth 带入 Microsoft Windows NT 过程的一次个人体验。 Win32Forth 使用一个(相对)较小的、用 C 语言编写的封装装入 Forth 映像文件并执行,这个封装提供了一些有限的控制台 I/O 功能以支持程序开发。 Andrew 也移植(实际上是重写了) NEON OOP ( 面向对象的编程 ) 以支持对操作系统调用的接口简化。
在 1994 年后期, Andrew 的“ baby ”内核转给了我 (Tom Zimmer) 用于支持一个可能的应用:将一个大型的数据处理系统从 DOS 环境转移到 Windows NT 环境。 我们考察和购买了许多当时的商业 Forth 系统,但是不幸的是这些都不足以处理我们的任务和需要。我从自己的公共域 F-PC 系统中把大部分的工具和实用程序移植到 Win32Forth 中,以便使我们的应用系统移植更容易。
Win32Forth 系统,从 Andrew 的个人工作和公共域的 F-PC 导出,现在仍然把自己留在公共域。但是有一个例外: Jim Schneider 编写的 486 前缀汇编器,它使用 GNU 公共许可。请阅读 Jim 的文档,其中包含有它用于商业应用的细节。
1995 早期, Robert Smith 为 Win32Forth 编写了浮点支持。 Robert 在这些方面有丰富的经验,过去编写过几个浮点包,其中有两个是专门为 F-PC 编写的。浮点包括了对 8 字节和 10 字节浮点格式的支持。 Win32Forth 在 1995 期间使用一个“旁路”进入这个领域,它使用绝对地址,但是许多与 Windows95 和 Win32s 的兼容问题导致我像大多数兼容问题解决方案那样地使用相对地址。
1996 年 1 月, Andrew 完成了“F83”风格的 meta 编译器和为 Win32Forth 而写的 Forth 内核源代码。这为进一步的内核开发,包括分离的首部、双字典打开了一道大门。版本 3.1 在 1996 年 3 月发布,包含有 WinView [ 现在是 WinEd] 编辑器中和在 DPANS94 文档中描述的 ANS Forth 字上的 'Ctrl+F1' 帮助。这个版本也能够更好地与运行在 OS/2 和 Windows 3.1 上的 Win32s 的兼容性,这是由于对存储器管理代码进行修正的结果。
1996 年 5 月,为 WinView 编辑器开发的源码级调试器完成。现在能够远程地调试一个 Win32Forth 应用程序、设置断点、单步执行和参数监控。为了执行这些操作,应用程序需要按“ APPLICATION ”程序保存,而不再是“ TURNKEY ”,这样程序中的符号就可以为调试控制所使用。
1996 年 7 月,一个对窗口的增强使得它们可以有自己的菜单,另一个增强是针对对象的,它使得可以使用点 (.) 访问对象中的局部数据。与 Windows 3.1 和 OS/2 下 Win32s 的兼容性得以保留。但是您应该知道那时微软在 Visual C++ 的最后版本 V4.2 中已经停止了对 Win32s 的支持。未来版本的 Win32Forth 可能不再与 Win32s 兼容。我相信事实就摆在眼前:现在是离开 Windows 3.1 进入 Windows95 或者 Windows NT 的时候了。我不知道 OS/2 的用户该怎么办。如果 IBM 不再直接支持 Win32 API ,那么您很快就不能再访问 Windows95 和 Windows NT 了。
[ 事实上, OS/2 已经死亡, Win32Forth 不再支持 Win32s 。它支持 Windows95/98/ME/NT3.51/NT4/2000 和 XP, 尽管对 Windows 95 和 NT 的有些支持是理论上的 ; 现在好象也没有用户要求我们测试这些系统 ]
版本 3.2 于 1996 年七月发布,包含了对 Windows 的增强以支持每个应用程序窗口有独自的菜单;增加了关于如何使用 Win32Forth 创建 DLL 的文档 ( 在文件 Win32For.PRV 中 ) ;增加了一个优化器 ( 在 OPTIMIZE.F 中 ) ,使得 Win32Forth 能够允许代码段与汇编语言兼容以提高性能;更正了浮点支持中的小错误;增加了对类中数据结构的支持 ( 在文件 RECORD:) 中;增加点的表示法用于支持类和子对象。
版本 V 3.3 于 1996 年 10 月发布,包含了新的字体类,使得应用程序中的字体更具有可管理性。我开始为 WinView 添加 HTML 支持,这样最终可以用于文档。所做的改变都是增强与 ANS 的兼容性。 Andrew 给出了一个 DLL ,它可以移动 2000 多个 Windows 常量。这个 DLL 连接进入 NUMBER ,所以它可以查找 8000 多个 Windows 常量而不需要在 Forth 字典中包含它们。广泛的文档加入 到 FSAVE 、 TURNKEY 和 APPLICATION 中, 这些字用于创建程序。
版本 3.5 在 1997 年中期发布,基本上是为了更改 BUG ,但是也对 WinView 编辑器做了一些改进,我确定了屏幕更新代码,增加了重新显示的性能,这都是一些人抱怨的。
在几乎整个 1997 年和 1998 年的上半年, Win32Forth 进入商用 Forth 系统的世界。不幸、或者可能是幸运的,这当然依赖您如何看, Win32Forth 在商业开发者看来是太大、文档和使用都太复杂。在 1998 年中期, Win32Forth 找回了自己,从此之后,它开始了快乐尽管是有限的开发。
[ 附注 : Tom Zimmer 离开 Win32Forth 之后,它在版本 4 和 5 之间沉寂了几年。在 John Peters 和一个小组的坚持和艰苦努力下, Win32Forth 已经发展成为一个分离字典的系统 ( 通过 Rainbow Sally) ,它为初学者和开发者提供了更清晰和更友好的环境,并通过一些原始的 BATCH 文件工具使开发者能够共享和高效地修改系统。同时, Alex McDonald 的独立工作把 C 语言的封装从内核中消除了,现在内核施行对 Meta Compile 过程的完全控制,使用 Laxen 和 Perryp 传统风格,它将允许编译独立运行的 Windows 可执行应用程序。通过 Dirk Busch 、 Ezra Boyce 、 George Hubert 和其它人的持续支持,通过 Ron Aaron 提供的 CVS , Alex McDonald 已经担负起维护、调整的责任,开发组的人气也在不断地恢复。 ]
|