为什么苹果选用 PASCAL 做为 Lisa 和早期 Mac 的操作系统的编程语言?

PASCAL 不只用在 Lisa 和早期 Mac 操作系统开发中,从苹果 ][ 开始它就介入了。将 PASCAL 引入苹果电脑操作系统开发的关键人物是比尔·阿特金森和杰夫·拉斯金。大约在 1978 年以前,苹果公司使用 BASIC 和 6502 汇编语言开发软件,阿特金森说服管理层,告诉他们 PASCAL 语言比 BASIC 和 6502 更适合苹果开发自己的软件。管理层同意后,阿特金森和拉斯金从加州大学圣迭戈分校获取了 PASCAL 语言和开发系统的授权,并在苹果公司成立了内部的 PASCAL 开发组。


苹果 ][ 的 PASCAL 系统包括 PASCAL 编译器、模式编辑器、6502 汇编器、一个强大的文件管理器和一些应用程序,这个系统通过一个命令行界面控制。Apple ][ 中的 PFS File 和苹果自己开发的 Apple Presents the Apple ][ 是用 PASCAL 开发的。苹果用 苹果 ][ 的 PASCAL 系统开发了苹果 /// PASCAL 系统,为了这个系统,苹果开发了一个非常复杂的浮点实现,它叫 SANE(Standard Apple Numeric Enviorment),到了苹果 ///,绝大多数软件是用 PASCAL 写的,在苹果 /// PASCAL 系统中扮演重要角色的人是伊拉·鲁宾和阿尔·霍夫曼。


Lisa 使用的处理器改换成摩托罗拉 68000 系列,它的大部分系统和应用软件由一个叫 Lisa PASCAL 的 PASCAL 扩展写成。操作系统 9 万行,开发环境 10 万行,7 个应用软件,例如 LisaWrite、LisaCalc,大约 5 万行。1981 年苹果从硅谷软件手中购买了摩托罗拉 68000 原生代码 PASCAL 编译器,从头开始开发 Lisa PASCAL。Lisa 的开发全部使用 Lisa Workshop 完成,这是一个命令行开发环境,和早期的苹果 ][、苹果 /// 的 PASCAL 系统类似。同苹果 /// PASCAL 类似,Lisa PASCAL 也支持 SANE,不过在其上增加了一个复杂的数学包叫做 Mathlib。 苹果还开发了 Lisa QuickDraw 图形库,它是 Lisa 技术的核心,虽然是用 68000 汇编语言写的,但是苹果为这个超凡图形环境提供了大量的 PASCAL 接口。Lisa PASCAL 身后的重要人物仍是伊拉·鲁宾和阿尔·霍夫曼。


Lisa Clascal(Lisa+Pascal)是苹果首次尝试进入面向对象世界而推出的编程语言,受到了施乐 PARC 研究中心正在试验的 Simula 和 Smalltalk 编程语言的影响,除了 Clascal,苹果还开发了许多类库,统称 Lisa Toolkit,这些类库可以显著缩短开发者开发桌面软件的时间。不过 Clascal 主要在苹果内部使用,Clascal 背后的工程是拉里·特斯勒和一些前施乐的 Smalltalk 专家。


麦金塔上的 PASCAL 是 Lisa PASCAL 的移植版,1982 年苹果开始使用 Lisa PASCAL 和 Lisa Workshop 开发麦金塔电脑。1986 年苹果推出 MPW(Macintosh Programmer's Workshop),这是一个非常专业的开发环境。MPW PASCAL 提供了对新型 68000 处理器的支持,也提供了对摩托罗拉浮点和内存管理芯片的支持,条件编译指令使得 MPW PASCAL 支持浮点芯片指令的直接生成,大幅度提高了浮点运算速度。MPW PASCAL 还增强了对面向对象编程和支持,于是被命名为 Object PASCAL,这个扩展版被苹果用来开发名为 MacApp 的类库。


大约 1988 年,苹果开始转用 C 和 C++ 开发软件,C 和 C++ 的优势促使了 PASCAL 在苹果内部和外部开发者中的显著衰退。


总结


PASCAL 在苹果内部的使用从 1978 至 1992,集中使用在 1980 年代。启用的原因是为利替代 BASIC 和 6502 汇编语言,弃用的原因是 C 和  C++ 的兴起。这篇回答的内容节选自苹果开发者 David T. Craig 在 1992 年写的一篇文章《Apple Lisa Computer: History of Apple and Pascal》[1],里面有关于苹果采用的技术的更深入的探讨。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值