Smalltalk

✍ dations ◷ 2025-07-01 03:47:35 #面向对象的编程语言,基于类的编程语言,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的结果。

相关

  • 氢化锂氢化锂(化学式:LiH)是锂的氢化物。它是无色晶体,通常带有杂质而呈灰色。氢化锂属于类盐氢化物,熔点很高(689°C)且对热稳定。比热容为29.73 J/mol*k,导热性随温度升高而下降,随组成和
  • 美国陆军参谋长美国陆军参谋长(英语:Chief of Staff of the United States Army,缩写:CSA)为美国陆军中军阶最高的军官之一,亦为参谋长联席会议成员。1903年以前,陆军的军事主官是美国陆军总司令(
  • 小星形十二面体在几何学上,小星形十二面体 是一个 星形正多面体,施莱夫利符号中利用{5/2,5}来表示,在考克斯特符号(英语:Coxeter-Dynkin digram)中利用来表示. 它是4个非凸正多面体之一,由12个五
  • 娜塔莉·贝伊娜塔莉·贝伊(法语:Nathalie Baye,1948年7月6日-)是法国女演员。自1970年开始,她已演出超过80部电影,并曾以《线民(法语:La Balance)》(1982)与《小警探(法语:Le Petit Lieutenant)》(200
  • BG~身边警护人~《BG~身边警护人~》(日语:BG〜身辺警護人〜),2018年1月18日于朝日电视台周四晚间九点连续剧播出。主演为木村拓哉 。2020年3月宣布开拍第二季。岛崎章(木村拓哉饰)过去曾经是一位保
  • 黄背小檗黄背小檗(学名:)是小檗科小檗属的植物,是中国的特有植物。分布于中国大陆的云南等地,多生在山顶林缘,目前尚未由人工引种栽培。
  • 梅普·吉斯梅普·吉斯(又译作米普·吉斯,荷兰语:Miep Gies,本名:赫米内·桑特鲁希茨(Hermine Santruschitz),1909年2月15日-2010年1月11日),荷兰籍奥地利人。她在二战期间曾联同丈夫扬·吉斯(Jan G
  • .uz.uz为乌兹别克国家及地区顶级域(ccTLD)的域名。A .ac .ad .ae .af .ag .ai .al .am .ao .aq .ar .as .at .au .aw .ax .az  B .ba .bb .bd .be .bf .bg .bh .bi .bj .bm .
  • 靳伟靳伟(1972年5月-),山西长治人,汉族,中华人民共和国政治人物,中国共产党党员,第十三届全国人民代表大会北京地区代表。2018年,被选为全国人大代表。6 副主任☆
  • 米兰2米兰2( 意大利语:Milano 2、Milano Due,英语:Milan 2,也译作“米兰-2”、“米兰第二住宅区”)是位于意大利共和国赛格拉特城的一个住宅区。最初作为市区重建由意大利总理贝卢斯科