9

I saw 3 different VMs while learning about Smalltalk. They are Squeak/Pharo/Newspeak. What's the difference between them?

4

3 回答 3

9

Squeak 和 Pharo 是 Smalltalk 的不同方言,而 Newspeak 是不同的语言,尽管受到启发并且在许多方面与 Smalltalk 和 Self 相似。

至于 Squeak 和 Pharo,由于 Pharo 是 Squeak 的分支,它们都运行在同一种虚拟机上,它们依赖于相同的 VM 指令集和原语集。

至于 Squeak 和 Pharo 虚拟机,有几个版本,但最重要的 2 种是经典的 Squeak VM 和新的基于 jit 的 Cog 虚拟机。但是它们都执行通常相同的指令集。

当我们使用 sqeak 和 pharo VM 时,有趣的是您可以破解自己的 VM,源代码可用并且是用 Smalltalk 子集编写的,并且有工具集允许您进行更改并构建自己的 VM。Mariano Martinez Peck 有一系列很棒的帖子描述了如何使用 VM,这是介绍性帖子:

http://marianopeck.wordpress.com/2011/03/31/journey-through-the-vm/

于 2011-06-14T07:02:50.553 回答
7

Smalltalk 的虚拟机非常基础。它包含一组直接从 Smalltalk 代码引用的原始指令。这使得实际的 VM 易于插入。所以 Squeak 常用于虚拟机实验。

Pharo 是一个替换 Squeaks 基本库的项目,因为 Squeak 的外观和感觉有些过时。它使用 Squeak VM,大部分兼容,但界面完全不同。

在 Squeak 的 VM 端有 vanilla VM。据我所知,它是作为 Squeak 项目的一部分开始的,并且仍在使用。

不久前,VM 的研究员 Eliot Miranda 宣布他正在为 Squeak 开发一种新的优化 VM。Cog 是开源的,可以与 Squeak 和 Pharo 一起使用。它仍在积极开发中,但比基本 VM 更快。

新话是一种完全不同的动物。这是创建一种语言的实验,该语言使用纯消息传递作为该语言的唯一原语。它基于 Squeak VM,但不是真正的 Smalltalk。您可以在http://bracha.org/Site/Newspeak.html找到更多信息。

于 2011-06-13T22:15:14.047 回答
5

到目前为止,Squeak 和 Pharo 都共享同一个 VM。Newspeak 有它自己的,它起源于 Squeak VM。

于 2011-06-13T18:00:47.557 回答