複製鏈接
請複製以下鏈接發送給好友

self語言

鎖定
Self語言,是一種基於原型的面向對象程序設計語言,於1986年由施樂帕洛阿爾託研究中心的David Ungar和Randy Smith給出了最初的設計。
中文名
self語言
創設時間
1986年
創設者
David Ungar和Randy Smith
創設地點
施樂帕洛阿爾託研究中心

self語言基本特點

self語言原則

Self語言把概念上的精簡作為設計原則。它取消了的概念,只有對象的概念,同時把消息作為最基本的操作。把對象屬性理解為獲取或更改屬性這兩種方法,從而把屬性的概念簡化為方法;取消了變量賦值,替代它們的是通過消息來讀槽和寫槽。

self語言程序

在發展Self的過程中,Self的設計研究人員也探索了Self的程序設計。他們提出了traits的概念,用對象實現了名字(對象名或方法名)的管理,用動態繼承實現模式轉換。
在實現Self系統的過程中,設計研究人員發展出了一種適應性編譯(adaptive compilation)技術。這種技術的採用提高了Self代碼的執行效率。

self語言Self系統

self語言進程

儘管Self系統一次運行在一個進程中,但Self系統實際上可以分成兩個部分:Self 虛擬機和Self世界(Self world)。Self世界是一個Self 對象庫,Self 程序就是Self世界裏的對象,Self虛擬機用來執行這些Self程序。Self虛擬機還提供了一些可供調用的原語,用來實現算術運算對象複製、輸入輸出等。

self語言應用

當Self程序從終端、文件或者圖形用户界面輸入到系統中來時,Self系統把源程序解析轉化為Self對象。Self對象包括數據對象方法對象,方法對象的代碼部分是用一種指令非常簡單的字節碼(bytecode)表示的,字節碼由虛擬機來解釋。對經常執行的方法虛擬機將進一步把字節碼轉化為本機代碼,這樣可以提高運行效率。

self語言發展簡史

self語言80年代

Self語言的最初設計是由David Ungar和Randy Smith於1986年在施樂帕洛阿託研究中心提出的,並在1987年OOPSLA'87的論文SELF: The Power of Simplicity上給出了描述。
1987年初Craig Chambers, Elgin Lee 和 Martin Rinard在Smalltalk 上給出了Self的第一個實驗性解釋器
1987年夏Self項目在Stanford大學正式開始,1988年夏給出了第一個有效率的實現,併發布了1.0和1.1兩個版本。在第一個版本中包括內存管理系統和編譯器

self語言90年代

1991年初Self項目移至Sun Microsystems Laboratories Inc. ,並且在1992年發佈了2.0版。在第二個版本中採用了新的編譯技術,並引入了多重繼承
1993年1月Self 3.0版發佈。在這個版本中包括了一個實驗性的圖形用户界面,簡化了上個版本多重繼承的設計,引入了可見性概念,並採用了更新的編譯技術
1995年7月Self 4.0版發佈。在這個版本中包括了一個全新的圖形用户環境Morphic,提供了工具transporter用於保存對象,改進了虛擬機,改善了內存管理,在環境的層次上引入了模塊的概念,取消了語言層次上的可見性概念。
1995年之後Self的發展基本已經停滯,但在發展Self過程中探索出的一些技術在別的系統中得到了應用。在Self的實現中採用的各種編譯優化技術直接導致了Java Hotspot虛擬機的產生;在 Smalltalk的一個實現Squeak中採用了Self圖形用户界面Morphic的設計方案,放棄了標準 Smalltalk中採用的MVC的方案。