簡體   English   中英

ANSI Smalltalk和Smalltalk-80有什么區別?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM