Alan Kay 指出,"与Java不同,[Squeak]在每台机器上都运行相同 - 我们在20年前发明了这一点".在维基百科页面提及,这也:
Squeak适用于许多平台,在一个平台上生成的程序在所有其他平台上运行时都是相同的.
由于具有不同指令集的机器显然无法在本地运行位相同的程序,当有人说Squeak在不同的机器上运行位相同的程序时,这是什么意思,而Java则不然?
我的印象是编译的Java类在任何JVM上的任何机器上运行相同,是不是这样?
显而易见的解释是,在具有相同输入的不同机器上执行相同的图像将导致图像通过相同的位模式演变.这篇关于Squeak浮点数学的帖子暗示浮点在不同平台上具有相同的表示.Java要求平台之间的语义相同,但允许非规范化表示.Squeak用于确保跨平台的位相同的浮点是Sun的一个,Sun JVM也使用它,尽管他们提到使用编译器设置进一步限制它.