smalltalk

smalltalk

面向對象的程序設計語言
Smalltalk被公認為曆史上第二個面向對象的程序設計語言和第一個真正的集成開發環境 (IDE)。由Alan Kay,Dan Ingalls,Ted Kaehler,Adele Goldberg等于70年代初在Xerox PARC開發。Smalltalk對其它衆多的程序設計語言的産生起到了極大的推動作用,主要有:Objective-C,Actor, Java 和Ruby等。90年代的許多軟件開發思想得利于Smalltalk,例如Design Patterns, Extreme Programming(XP)和Refactoring等。20世紀70年代到80年代前期,美國施樂公司的帕洛阿爾托研究中心(PARC)開發了Smalltalk編程語言。從Smalltalk-72、Smalltalk-78到Smalltalk-80,他們開發完成了整個Smalltalk系列,Smalltalk編程語言對近代面向對象編程語言影響很大,所以稱之為“面向對象編程之母”。(此段摘自《松本行宏的程序世界》)[1]
    中文名:smalltalk 外文名: 别名: 開發:Smalltalk編程語言 美國施樂:20世紀70年代到80年代前期 DanIngalls:程序設計語言

曆史

最早的Smalltalk原型由Alan Kay于70年代初提出。類(來自Simula-67)、海龜繪圖(來自MIT的 LOGO )以及 圖形界面 等概念的有機組合,構成了Smalltalk的最初的藍圖。

在1971年到1975年之間,Kay在Xerox PARC的小組設計并實現了第一個真正的Smalltalk語言系統。這個系統具有以下幾個技術創新:

語言完全基于Simula的類和消息的概念。

語言沒有固定的語法,語法分析由類本身完成。

開發環境的革新相當迅速。

雖然當時的位圖顯示器十分昂貴,但是Kay卻說服了PARC讓他使用這些位圖顯示器,這使得Kay和他的小組能夠實現不同大小和字體的文字,使用多窗口環境,以及一些對圖像處理的高端支持。

1975-76年間,Kay小組認識到應當對執行效率和規模進行優化。于是他們在許多重要方面重新設計了Smalltalk系統,在語言上:

引入了繼承和子類的概念。

确定了語言的語法,這使得編譯器能夠産生高效、可執行、精煉的二進制代碼。

Larry Tesler設計了浏覽器,這極大地提高了Smalltalk程序員的編程效率。

前述的所有Smalltalk系統都是在特殊的硬件上實現的,直到1977-78年,Bruce Horn 和 Ted Kaehler 把Smalltalk-76移植到由Intel 8086處理器和自定顯示器所組成的硬件環境(被稱為NoteTaker)上。雖然這種硬件環境隻生産了10台,但是它證明了在通常的處理器上實現Smalltalk的可能性

内容簡介

在1979-80年,部分受NoteTaker項目的影響,Smalltalk小組的注意力轉移到Smalltalk的銷售可行性上。小組設計并實現了新一代的Smalltalk系統,這次修改的目标着重于在标準硬件上的移植性等方面,包括:

采取 ASCII 碼集,摒棄了原先在Smalltalk-72和-76中使用的特殊字符

取消了原始(primitive)方法直接存取内存的能力。取而代之的是引入一系列的原始方法提供相應的功能。

引入了元類的概念。

引入MVC(Model-View-Controller)系統以方便交互式應用軟件的開發。

程序實例

數學計算:

(15 * 19) + (37 squared)

可以理解為:向15發送消息'*',參數為19;向37發送消息squared; 最後向15*19的結果發送消息'+',參數為37 squared的結果。

面向對象

在Smalltalk中所有的東西都是對象,或者應該被當作對象處理。

例如下面的表達式:

2 + 3

應當被理解為:向對象2發送消息+,參數為對象3。

純面向對象使得Smalltalk在語言結構方面有許多與其他語言不同的特點,例如在Smalltalk語言中沒有條件語句,取而代之的是一些發送給對象true或者false的消息,因此它們不屬于語言部分,而屬于Smalltalk的類庫;也沒有循環重複語句(C語言中的for while),Smalltalk用向數字對象或塊對象發送消息來實現重複執行。

相關詞條

相關搜索

其它詞條