"": 200,
"": "",
"": "Smalltalk被公認為曆史上第二個麵向對象的程序設計語言和第一個真正的集成開發環境(IDE)。由AlanKay,DanIngalls,TedKaehler,AdeleGoldberg等於70年代初在XeroxPARC開發。Smalltalk對其它眾多的程序設計語言的產生起到了極大的推動作用,主要有:Objective-C,Actor,Java和Ruby等。90年代的許多軟件開發思想得利於Smalltalk,例如DesignPatterns,ExtremeProgramming(XP)和Refactoring等。
什麼是Smalltalk?
Smalltalk和許多程序設計語言不同,它不僅僅是一門語言。
一種麵向對象的程序設計語言:它是一種麵向對象的語言,包含語言的語法和語義。一些編譯器可以通過Smalltalk源程序產生可執行文件。這些編譯器通常產生一種能在虛擬機上運行的二進製代碼。Smalltalk語言本身非常精煉。
一種程序設計環境:這裡指的是一種提供許多對象的係統,而不是某種特殊的開發環境。和許多語言不同(包括C++),Smalltalk附帶有一個巨大的、相當標準的類庫。這些類使得開發Smalltalk程序的效率非常高。在其它語言(例如Ada,C和Pascal)中通常被作為語言的一部分的功能(例如條件判斷,循環等),在Smalltalk由特定的類提供。
一個應用開發環境(ADE):由於Smalltalk的曆史原因,它具有一個非常優秀的高度集成、開放的應用開發環境。由於開發環境中的瀏覽器、監視器以及調試器都由同樣的源程序衍生出來的,不同的版本之間也具有相當好的兼容性。此外,這些工具的源程序都可以在ADE直接存取。
Smalltalk中的對象
在Smalltalk中所有的東西都是對象,或者應該被當作對象處理。
例如下麵的表達式:
2+3
應當被理解為:向對象2發送消息+,參數為對象3。
純麵向對象使得Smalltalk在語言結構方麵有許多與其他語言不同的特點,例如在Smalltalk語言中沒有條件語句,取而代之的是一些發送給對象true或者false的消息,因此它們不屬於語言部分,而屬於Smalltalk的類庫;也沒有循環重複語句(C語言中的forwhile),Smalltalk用向數字對象或塊對象發送消息來實現重複執行。
Smalltalk的曆史
最早的Smalltalk原型由AlanKay於70年代初提出。類(來自Simula-67)、海龜繪圖(來自MIT的LOGO)以及圖形界麵等概念的有機組合,構成了Smalltalk的最初的藍圖。
在1971年到1975年之間,Kay在XeroxPARC的小組設計並實現了第一個真正的Smalltalk語言係統。這個係統具有以下幾個技術創新:
語言完全基於Simula的類和消息的概念。
語言沒有固定的語法,語法分析由類本身完成。
讓您第一時間享受最新章節,請訪問𝗼𝗼𝗽.𝘁𝘄
開發環境的革新相當迅速。
雖然當時的位圖顯示器十分昂貴,但是Kay卻說服了PARC讓他使用這些位圖顯示器,這使得Kay和他的小組能夠實現不同大小和字體的文字,使用多窗口環境,以及一些對圖像處理的高端支持。
1975-76年間,Kay小組認識到應當對執行效率和規模進行優化。於是他們在許多重要方麵重新設計了Smalltalk係統,在語言上:
引入了繼承和子類的概念。
確定了語言的語法,這使得編譯器能夠產生高效、可執行、精煉的二進製代碼。
。率效程編的員序程klatllamS了高提地大極這,器覽瀏了計設relseTyrraL
。性能可的klatllamS現實上器理處的常通在了明證它是但,台01了產生隻境環件硬種這然雖。上)rekaTetoN為稱被(境環件硬的成組所器示顯定自和器理處6808letnI由到植移67-klatllamS把relheaKdeT和nroHecurB,年87-7791到直,的現實上件硬的殊特在是都統係klatllamS有所的述前
08-klatllamS
:括包,麵方等性植移的上件硬準標在於重著標目的改修次這,統係klatllamS的代一新了現實並計設組小。上性行可售銷的klatllamS到移轉力意注的組小klatllamS,響影的目項rekaTetoN受分部,年08-9791在
。符字殊特的用使中67-和27-klatllamS在先原了棄摒,集碼IICSA取采
。能功的應相供提法方始原的列係一入引是的之代而取。力能的存內取存接直法方)evitimirp(始原了消取
。念概的類元了入引
。發開的件軟用應式互交便方以統係)rellortnoC-weiV-ledoM(CVM入引
例實序程
:算計學數
)derauqs73(+)91*51(
。果結的derauqs73為數參,'+'息消送發果結的91*51向後最;derauqs息消送發73向;91為數參,'*'息消送發51向:為解理以可