Smalltalk

✍ dations ◷ 2025-09-16 18:07:21 #面向对象的编程语言,基于类的编程语言,Smalltalk编程语言家族,1972年创建的编程语言

Smalltalk是一种面向对象的、动态类型的编程语言。Smalltalk由艾伦·凯,Dan Ingalls,Ted Kaehler,Adele Goldberg等于70年代初在Xerox PARC开发。

Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:C++,C#,Objective-C,Actor,Java和Ruby等。90年代的许多软件开发思想得利于Smalltalk,例如设计模式、敏捷编程和代码重构等。

Smalltalk和许多程序设计语言不同,它不仅仅是一门语言。下面从几个不同的角度来解释Smalltalk。

在Smalltalk中所有的东西都是对象,或者应该被当作对象处理。例如下面的表达式:

2 + 3.

应当被理解为:向对象2发送消息+,参数为对象3。

纯面向对象使得Smalltalk在语言结构方面有许多与其他语言不同的特点,例如在Smalltalk语言中没有条件语句,取而代之的是一些发送给对象true或者false的消息,因此它们不属于语言部分,而属于Smalltalk的类库;也没有循环重复语句(C语言中的for, while),Smalltalk用向数字对象或块对象发送消息来实现重复执行。

最早的Smalltalk原型由艾伦·凯于70年代初提出。类(来自Simula-67)、海龟绘图(来自MIT的LOGO)以及图形界面等概念的有机组合,构成了Smalltalk的最初的蓝图。

在1971年到1975年之间,艾伦·凯在Xerox PARC的小组设计并实现了第一个真正的Smalltalk语言系统,编译器由Dan Ingalls负责主要实现。这个系统具有以下几个技术创新:

开发环境的革新相当迅速。虽然当时的位图显示器十分昂贵,但是艾伦·凯却说服了PARC让他使用这些位图显示器,这使得艾伦·凯和他的小组能够实现不同大小和字体的文字,使用多窗口环境,以及一些对图像处理的高端支持。

1975-76年间,艾伦·凯小组认识到应当对执行效率和规模进行优化。于是他们在许多重要方面重新设计了Smalltalk系统,在语言上:

前述的所有Smalltalk系统都是在特殊的硬件上实现的,直到1977-78年,Bruce Horn和Ted Kaehler把Smalltalk-76移植到由Intel 8086处理器和自定显示器所组成的硬件环境(被称为NoteTaker)上。虽然这种硬件环境只生产了10台,但是它证明了在通常的处理器上实现Smalltalk的可能性。

在1979-80年,部分受NoteTaker项目的影响,Smalltalk小组的注意力转移到Smalltalk的销售可行性上。小组设计并实现了新一代的Smalltalk系统,这次修改的目标着重于在标准硬件上的移植性等方面,包括:

(15 * 19) + (37 squared)

可以理解为:向15发送消息'*',参数为19;向37发送消息squared;最后向15*19的结果发送消息'+',参数为37 squared的结果。

相关

  • 依法韦仑CADN通用名:依法韦仑依法韦仑(英文:Efavirenz)是一种抵抗人类免疫缺乏病毒的特效药物。依法韦仑的商业名称为Sustiva® 或Stocrin®,它是一种属于非核苷逆转录酶抑制物(NNRTI—non
  • 自然资源自然资源,亦称天然资源,是指在其原始状态下就有价值的物产。一般来说假如获取这个物产的主要工程是收集和纯化,而不是生产的话,那么这个物产是一种自然资源。采矿、采油、渔业和
  • 黑腹果蝇黑腹果蝇也称黑尾果蝇(学名:Drosophila melanogaster),是被人类研究得最彻底的生物之一,为模式生物。从查尔斯·伍德沃斯(英语:Charles W. Woodworth)(Charles W. Woodworth)关于利用
  • 五角大楼五角大楼(英语:The Pentagon)是美国国防部所在地,位于华盛顿特区西南方的弗吉尼亚州阿灵顿县。由于其特殊的职能,所以有时“五角大楼”一词不仅仅代表这座建筑本身,也常常用作美国
  • 佛莱迪大战杰森之开膛破肚《佛莱迪大战杰森之开膛破肚》(英语:)是一部2003年美国恐怖片,由于仁泰执导。本片为知名恐怖片系列“十三号星期五系列电影”的面具杰森魔与“猛鬼街系列电影(英语:A Nightmare on
  • 亚诺-奥伊米亚孔高地亚诺-奥伊米亚孔高地是俄罗斯的高原,横跨该国萨哈共和国、哈巴罗夫斯克边疆区和马加丹州,位于上扬斯克山脉和切尔斯基山脉之间,最高点波别达山海拔高度3,003米。
  • 延彩延彩(1799年-1845年),字紫筠、子云,号丽峰,清代人物,山西阳城县润城北音村人。“才思敏捷,学富五车”,喜游历四方。1818年嘉庆戊寅科,延彩曾参加乡试未能考中,至1825年考中道光乙酉科
  • 汤姆·罗伯·史密斯汤姆·罗伯·史密斯(1979年-)是一位英国作家。史密斯在伦敦出生和长大,父亲是英国人,母亲是瑞典人。史密斯就读于剑桥大学圣约翰学院,2001年他毕业后,他获得了获得了奖学金到意大利
  • 潘琪 (1917年)潘琪(1917年-1990年),男,江苏南汇(今属上海市)人,中华人民共和国政治人物,曾任第六机械工业部副部长,交通部副部长。
  • 卡洛·波桂卡洛·波桂(法语:Carole Bouquet,1957年8月18日-),是出生于法国巴黎的女演员及模特儿。她曾经在007电影只为你的双眼(英文:For Your Eyes Only) 中担任邦德女郎的角色。最近则是在