[英]What's the difference of ANSI Smalltalk and Smalltalk-80?
我發現在ANSI Smalltalk規范(草案)中沒有提到thisContext
。
我假設ANSI Smalltalk是標准化的Smalltalk-80,所以我無法理解它為什么不存在。 它們的區別是什么?
Smalltalk-80指的是一個非常具體的東西:1980年在Xerox Parc中使用的Smalltalk版本。雖然有許多Smalltalks是基於直接意義上的(Squeak和Pharo)或意識形態意義上的(Ambrai) Smalltalk和GNU Smalltalk),在這種環境下,今天沒有Smalltalk實際上完全遵循該書中描述的語言和虛擬機。 即使Squeak,可能是最接近意識形態的,也有一些重大偏差:Squeak有封閉,Smalltalk-80沒有; Squeak有Unicode,Smalltalk-80沒有; Squeak的VM支持並使用命名原語,Smalltalk-80不支持; Squeak支持Smalltalk-80沒有的一些字節碼; 等等。
ANSI Smalltalk與ANSI Common Lisp一樣,試圖定義一個標准,該標准在主要的Smalltalk實現中包含Smalltalk功能的公共子集。 由於ANSI標准是在1998年編寫的,因此它必須考慮的不僅僅是原始實現。 特別是,一些主要的Smalltalks,如Smalltalk MT和VisualAge Smalltalk,完全沒有延續(結果是一個thisContext
變量)。 因此,ANSI標准中不存在該特征。
在實踐中,這些差異在某種程 你擔心這個thisContext
,但是GNU Smalltalk的語法完全不同,VisualWorks有命名空間,Squeak有Traits,Pharo缺少MVC ...還有更多的緊迫差異。 在Smalltalk的生活中,Smalltalk-80和ANSI Smalltalk草案在這一點上都比其他任何指南都要多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.