self語言

self語言

Self語言,是一種基於原型的面向對象程式設計語言,於1986年由施樂帕洛阿爾托研究中心的David Ungar和Randy Smith給出了最初的設計。

基本介紹

  • 中文名:self語言
  • 創設時間1986年
  • 創設者:David Ungar和Randy Smith
  • 創設地點:施樂帕洛阿爾托研究中心
基本特點,原則,程式,Self系統,進程,套用,發展簡史,80年代,90年代,

基本特點

原則

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

程式

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

Self系統

進程

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

套用

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

發展簡史

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兩個版本。在第一個版本中包括記憶體管理系統和編譯器

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的方案。

相關詞條

熱門詞條

聯絡我們