Eon*_*nil 8 smalltalk squeak pharo newspeak vm-implementation
在学习Smalltalk时,我看到了3个不同的VM.他们是Squeak/Pharo/Newspeak.他们之间有什么区别?
Squeak和Pharo是Smalltalk的不同方言,而Newspeak是不同的语言,虽然受到启发,并且在很多方面类似于Smalltalk和Self.
至于Squeak和Pharo,由于Pharo是Squeak的分支,它们都运行在同一种虚拟机上,它们依赖于相同的VM指令集和一组原语.
至于Squeak和Pharo虚拟机,有几个版本,但最重要的两种是经典的吱吱声VM和新的基于Jog的虚拟机.但是它们都执行通常相同的指令集.
当我们在sqeak和pharo虚拟机时,有趣的是你可以破解你自己的虚拟机,可用资源,并且有Smalltalk子集编写,并且有工具集可以让你进行更改并构建自己的虚拟机.马里亚诺·马丁内斯·派克(Mariano Martinez Peck)发表的一系列帖子描述了如何玩VM,这里是介绍性帖子:
http://marianopeck.wordpress.com/2011/03/31/journey-through-the-vm/
Smalltalk的虚拟机非常基础.它包含一组直接从Smalltalk代码引用的基本指令.这使得实际VM易于插拔.所以Squeak经常用于虚拟机的试验.
Pharo是一个取代Squeaks基本库的项目,因为Squeak的外观和感觉有些陈旧.它使用Squeak VM并且大部分兼容,但界面完全不同.
在Squeak的VM端有一个vanilla VM.据我所知,它开始作为Squeak项目的一部分,仍然使用.
不久之后,VM公司的研究员艾略特·米兰达宣布他正在为Squeak开发一款新的优化VM.Cog是开源的,可以与Squeak和Pharo一起使用.它仍然在积极开发,但比基本VM更快.
Newspeak是一个不同的动物.这是一个创建语言的实验,该语言使用纯消息传递作为语言的唯一原语.它基于Squeak VM但不是真正的Smalltalk.您可以在http://bracha.org/Site/Newspeak.html上找到有关它的更多信息.