Smalltalk

✍ dations ◷ 2025-07-24 10:18:08 #面向对象的编程语言,基于类的编程语言,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的结果。

相关

  • 数位数码(英语:digital)通常指一个数码系统,它使用离散(即不连续的)值(0或1)代表信息,用以输入,处理,传输、贮存等。相对的非数码(模拟信号)系统使用一个个连续的范围代表信息。虽然数码的表
  • 形式主义形式主义(英语:formalism),指在艺术、文学、与哲学上,对形式而非内容的着重。有形式主义行为的人,被称为形式主义者。没有无形式的内容,也没有无内容的形式。宗教的形式主义,代表对
  • 罗伯特·麦克阿瑟罗伯特·麦克阿瑟(Robert MacArthur,1930年4月7日-1972年11月1日)是一位美国生态学家,主要研究种群生态学和群落生态学(英语:Community (ecology))。麦克阿瑟在马尔伯勒学院(英语:Marl
  • 火刑火刑,是死刑的一种,意即将犯人绑在柱上用火活活烧死。在不同的文化中,火刑是常用的死刑之一,是为极其残酷的刑法。例如:古中国的炮烙;还有西方的中世纪到近代早期,异端裁判所用此方
  • 彼得·马克斯韦尔·戴维斯彼得·马克斯韦尔·戴维斯爵士,CH,CBE(英语:Sir Peter Maxwell Davies,1934年9月8日-2016年3月14日),一般简称为马克斯韦尔·戴维斯,英国作曲家。早年在曼彻斯特音乐学院求学,与同学伯
  • 吴白龙吴白龙(韩语:오백룡,1914年10月24日-1984年4月6日),生于朝鲜咸镜北道会宁,朝鲜民主主义人民共和国政治家、军人。朝鲜人民军大将。1933年,在满洲参加东北人民革命军独立师。此后在东
  • 李馨巧李馨巧(英语:Crystal Lee,2003年5月26日-),马来西亚童星,生于吉隆坡一个华裔商人家庭,她是个勤奋活泼机灵可爱的女孩,非常有自信,总是对自己的表现非常满意,对长辈说话就像大人事先写好
  • 1887-88球季英格兰足总杯1887/88球季英格兰足总杯(英语:FA Cup),是第17届英格兰足总杯,今届赛事的冠军是西布朗,他们在决赛以3:0击败普雷斯顿,夺得冠军。本届赛事继续在椭圆体育场举行。西布朗击败劲旅普雷
  • 逻辑分析仪逻辑分析仪是一种采集和显示数字电路信号的仪器。逻辑分析仪的最主要作用在于时序判定。逻辑分析仪不像示波器那样有许多电压等级,只显示两个电压,逻辑1和逻辑0,以及不确定x。
  • 小乔万尼万国旅行记《小乔万尼万国旅行记》是意大利儿童文学作家贾尼·罗大里所著的长篇童话。吊儿郎当的小乔万尼独自一人去旅行,来到了奇奇怪怪的地方:全是蜜糖的糖国、连桌椅都是巧克力的星球