系统编程的起点

联合语言项目联系了丹麦奥胡斯大学计算机科学系、区域计算中心、奥尔堡大学,以及挪威奥斯陆的挪威计算中心。1977年修订报告保留了1976年11月的设计状态:DELTA用于系统描述,GAMMA面向高级编程,BETA面向系统编程。研究者最初考虑以语言自身的子集编写编译器和运行系统;随后认为,发展BETA本身也有独立价值。

参考:[1]

以模式描述数据与动作

1987年教程署名为Bent Bruun Kristensen、Ole Lehrmann Madsen、Birger Møller-Pedersen和Kristen Nygaard。模式统一承担类、过程、函数和类型的作用。教程用屏幕上的点说明:Point保存整数坐标x、y,内嵌Move模式接收dx、dy,再分别累加到坐标。调用“(11,22) → P1.Move”把两个位移量送入P1的Move,并执行移动。Point描述可生成的对象,Move则产生执行动作的临时实例;同一机制由此组织状态和操作。

沿用教程的坐标操作,假设P1的初始坐标为4和7,把位移3和负2送入Move,两个加法分别将坐标改为7和5。参数给出这次动作的输入,P1则保存动作前后的状态。再生成另一个点对象时,它有自己的坐标;执行P1的移动也就不会把两个点同时改写。这个推演用同一组简单数值,展示模式如何把对象状态和操作联系起来。

参考:[2]

1983年的首个编译器

设计者的历史论文记载,Madsen于1983年用SIMULA实现首个BETA编译器:第一版为Pascal编写的解释器生成代码,第二版生成DEC-10机器码。1985年,该编译器移植到基于Motorola 68020的Sun工作站。当时尚未包含垃圾收集器。论文又记载,1987年已有完整可工作的实现。这些是实现进度,未据此确定首次向公众发行的日期。

参考:[3]

1991年的工作环境

1991年4月的系统报告说明,Mjølner BETA以大型工业程序为目标,把编译器、编辑器、调试器和程序库组合为开发环境。报告列出Macintosh实现,并称UNIX版可用于SUN3、Apollo DN3500和HP9000工作站。第35页特别限定:编译器实现了顺序执行和交替执行部分,未实现并发。语言描述中的功能与当时编译器实际支持的功能,因此需要分别说明。

参考:[4]

教学与1993年专著

专著前言介绍,奥胡斯大学信息与媒体科学系以BETA教授入门编程,计算机科学系则用于二年级语言课程。书稿也用于OOPSLA 1989—1991年的教程。书籍版权年为1993,前言落款为同年5月;该出版阶段应与此前的系统预发布分开。

参考:[5]

统一模式怎样支持扩展

统一模式还让继承与专门化适用于多类程序成分。项目的语言说明把子模式同时用于类、过程、函数和协程等对象,而不只用于类的层级;虚模式也可以表示可再定义的类。模式又能在另一个模式内嵌套,使某个对象专用的类或过程写在它所属的位置。这些机制说明,统一模式的作用不仅是缩短语法,还在于让不同抽象成分共享扩展和组织规则;具体编译器当时实现了哪些部分,仍须依各版本报告判断。

参考:[6]