Smalltalk,被公认为历史上第二个
面向对象的
程序设计语言,和第一个真正的
集成开发环境(IDE)。Smalltalk由
艾伦·凯,Dan Ingalls,Ted Kaehler,Adele Goldberg等于70年代初在
Xerox PARC开发。
什么是Smalltalk
Smalltalk和许多程序设计语言不同,它不仅仅是一门语言。下面从几个不同的角度来解释Smalltalk。
Smalltalk中的对象
在Smalltalk中所有的东西都是对象,或者应该被当作对象处理。例如下面的表达式:
应当被理解为:向对象2发送消息+,参数为对象3。
纯面向对象使得Smalltalk在语言结构方面有许多与其他语言不同的特点,例如在Smalltalk语言中没有条件语句,取而代之的是一些发送给对象true或者false的消息,因此它们不属于语言部分,而属于Smalltalk的类库;也没有循环重复语句(C语言中的for, while),Smalltalk用向数字对象或块对象发送消息来实现重复执行。
Smalltalk的历史
最早的Smalltalk原型由
艾伦·凯于70年代初提出。类(来自Simula-67)、海龟绘图(来自MIT的
LOGO)以及
图形界面等概念的有机组合,构成了Smalltalk的最初的蓝图。
Smalltalk-71与-72
在1971年到1975年之间,艾伦·凯在Xerox PARC的小组设计并实现了第一个真正的Smalltalk语言系统,编译器由Dan Ingalls负责主要实现。这个系统具有以下几个技术创新:
开发环境的革新相当迅速。虽然当时的位图显示器十分昂贵,但是艾伦·凯却说服了PARC让他使用这些位图显示器,这使得艾伦·凯和他的小组能够实现不同大小和字体的文字,使用多窗口环境,以及一些对图像处理的高端支持。
Smalltalk-76
1975-76年间,艾伦·凯小组认识到应当对执行效率和规模进行优化。于是他们在许多重要方面重新设计了Smalltalk系统,在语言上:
前述的所有Smalltalk系统都是在特殊的硬件上实现的,直到1977-78年,Bruce Horn和Ted Kaehler把Smalltalk-76移植到由Intel 8086处理器和自定显示器所组成的硬件环境(被称为NoteTaker)上。虽然这种硬件环境只生产了10台,但是它证明了在通常的处理器上实现Smalltalk的可能性。
Smalltalk-80
在1979-80年,部分受NoteTaker项目的影响,Smalltalk小组的注意力转移到Smalltalk的销售可行性上。小组设计并实现了新一代的Smalltalk系统,这次修改的目标着重于在标准硬件上的移植性等方面,包括:
程序实例
数学计算
可以理解为:向15发送消息'*',参数为19;向37发送消息squared;最后向15*19的结果发送消息'+',参数为37 squared的结果。