奎克的藏经阁 · 原书印刷页

编码 隐匿在计算机软硬件背后的语言 · 第 408 页

PDF 物理页索引 424 · 编码隐匿在计算机软硬件背后的语言

书名
编码 隐匿在计算机软硬件背后的语言
作者
未记录
印刷页
408
PDF 物理页
424(从 0 开始)
章节
编码隐匿在计算机软硬件背后的语言
UUID
38270854-596f-4a26-8183-db8c968c6020
来源类型
original_book
页面 SHA-256
e7a17be95dd12a3c2ac728f0f25d926682eb0c6ad2356ba0ea7fca54897e1c4f

Windows才真正受到大众瞩目。星星之火从那时开始燎原。在本书出版的2000年,约90%的小型计算机上使用的都是Windows操作系统。除了外观上的不同,Macintosh和Windows这两种操作系统所包含的API也有着天壤之别。

从原理上来分析,除了图形显示器,图形操作系统与文本操作系统相比,对硬件支持的要求并没有太多不同。从理论上来讲甚至硬盘驱动器都可以算是多余的:比如最初的Macintosh没有配备,Windows1.0也不需要。虽然大家都认为使用鼠标操作会更加方便,但其实Windows 1.0可以不需要鼠标。

有一点很容易想到,随着微处理器速度越来越快,内存和外存的容量越来越大,图形用户界面将更加深入人心。图形操作系统将会支持越来越多的特性,它们所占的存储空间也将越来越大。2000年左右的主流图形操作系统通常需要200MB的硬盘空间和32MB以上的内存。

在图形操作系统中,应用程序几乎都不使用汇编语言来开发。就拿早期的几款操作系统来看,Pascal 是Macintosh下的主流开发语言。在 Windows 操作系统中,C语言一统江湖。还有一个不得不提到的例子,那就是PARC向我们展示的一种全新的方法。大概从1972年开始,PARC的研究员着手开始研发一种名为Smalltalk的语言,这种语言嵌入了面向对象程序设计思想(Object-Oriented Programming),也就是今天的 OOP。

从传统意义上来讲,高级程序设计语言会自然而然地区分出代码(比如以set、for、if这样的关键词开头的语句)和数据,即变量所代表的数字。这种区分毫无疑问来自于冯·诺依曼计算机的体系结构。在这样一种体系结构中,只有两种元素,一种是机器码,一种是机器码所操作的数据。

在面向对象的程序设计中,和冯·诺依曼计算机的体系结构所不同的是,对象(object)实际上是代码和数据的组合。在对象内部,与其相关联的代码决定了数据存在的意义,要理解数据的存储方式首先需要理解代码。对象如果需要与其他对象通信,则通过发送或接收消息(message)来实现这一过程,比如一个对象可以通过给另一个对象发送指令来获得相应信息。

在图形操作系统的应用程序开发过程中,面向对象语言可以算得上是一种很不错的工具,因为编程人员处理屏幕上的对象(如窗口和按钮等)的过程就是用户感知屏幕元素的过程。举例来讲,假设按钮是面向对象语言中的一个对象。屏幕上的按钮具备一定尺寸和位置,按钮上可以显示文本或小图标,这些都可以抽象成为与对象关联的数据。如果用户通过键盘或鼠标按下按钮,系统就会向按钮对象发送一个表示其被触发的消息,该按钮对象收到消息后就会调用与自身关联的代码进行响应。

编码—隐匿在计算机软硬件背后的语言

408