繁体   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