Eon*_*nil 9 standards smalltalk ansi
我发现thisContext在ANSI Smalltalk规范(草案)中没有提到.
我假设ANSI Smalltalk是标准化的Smalltalk-80,所以我无法理解它为什么不存在.它们的区别是什么?
Ben*_*ack 14
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草案在这一点上都比其他任何指南都要多.
| 归档时间: |
|
| 查看次数: |
1066 次 |
| 最近记录: |