在学习Smalltalk时,我看到了3个不同的虚拟机。他们是Squeak/Pharo/Newspeak。它们之间的区别是什么?
发布于 2011-06-14 06:15:14
Smalltalk的虚拟机是非常基础的。它包含一组直接从Smalltalk代码引用的原语指令。这使得实际的VM很容易插拔。因此,Squeak经常用于虚拟机的实验。
Pharo是一个用来替换Squeak基本库的项目,因为Squeak的外观和感觉有点过时。它使用的是Squeak VM,基本上是兼容的,但接口完全不同。
在Squeak的VM端,有一个普通的VM。据我所知,它最初是Squeak项目的一部分,现在仍在使用。
不久前,VM的研究员Eliot Miranda宣布,他正在为Squeak开发一个新的优化VM。Cog是开源的,可以与Squeak和Pharo一起使用。它仍在积极开发中,但比基本VM更快。
新语言是一个完全不同的动物。创建一种使用纯消息传递作为语言的唯一原语的语言是一种实验。它基于Squeak VM,但不是真正的Smalltalk。你可以在http://bracha.org/Site/Newspeak.html上找到更多关于它的信息。
发布于 2011-06-14 15:02:51
Squeak和Pharo是Smalltalk的不同方言,而Newspeak是不同的语言,尽管受到启发,并且在许多方面类似于Smalltalk和Self。
至于Squeak和Pharo,因为Pharo是Squeak的分支,所以它们都运行在相同类型的虚拟机上,它们依赖于相同的VM指令集和原语集。
至于Squeak和Pharo虚拟机,有几个版本,但最重要的两种是经典的squeak VM和新的基于jit的Cog虚拟机。但它们通常执行相同的指令集。
当我们在sqeak和pharo虚拟机时,有趣的是你可以破解你自己的虚拟机,源代码是可用的,并且有用Smalltalk子集编写的,还有允许你进行更改和构建自己的虚拟机的工具集。Mariano Martinez Peck有一系列很棒的文章描述了如何使用VM,这里是介绍性文章:
http://marianopeck.wordpress.com/2011/03/31/journey-through-the-vm/
发布于 2011-06-14 02:00:48
到目前为止,Squeak和Pharo共享同一个VM。Newspeak有它自己的,它起源于Squeak VM。
https://stackoverflow.com/questions/6334082
复制相似问题