首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Smalltalk VM与图像的关系?

Smalltalk VM与图像的关系?
EN

Stack Overflow用户
提问于 2013-03-14 12:41:07
回答 5查看 482关注 0票数 2

我想错了。我原以为Smalltalk是一成不变的东西,但最近我意识到Smalltalk被分离成VM和image。在这种情况下,我可以调用VM是必不可少的部分,而图像只是应用程序的集合。语言语法只是用来制作图像代码的助手。

这让我有了一些问题。

  1. 在任何Smalltalk VM上运行映像似乎都是可能的。这是真的吗?例如,我可以从任何Smalltalk VM运行from吗?
  2. 似乎所有Smalltalk VM都应该完全兼容。至少在一组特性和执行源代码。这是真的吗?
  3. 有没有可能在光秃秃的VM上建立我自己的形象?这是不实际的,但应该是很好的学习。
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-03-14 13:12:33

我将试着回答你的问题(你一定会提供更多的细节):

  1. 这似乎可以在任何Smalltalk VM上运行映像。这个是可能的吗?例如,我可以从任何Smalltalk VM运行from吗?

Smalltalk有多种方言,这意味着Image+Vm有许多组合。其中一些是法罗吱吱声VisualWorks海豚GNU Smalltalk琥珀色宝石 (我肯定会错过更多)。但是,每个映像都以其特定的VM运行,因为原语或内存管理是由每个VM定义的。事实上,取决于Smalltalk的风格,我的图像甚至在主要版本之间也是不兼容的。

话虽如此,been是一个特定的web框架,它已经移植到不同的Smalltalk风格。因此,您可以在一个St (例如Pharo)中编写一个基于海边的应用程序,并在导入到另一个St (例如Gemstone)时导出代码。

这似乎所有Smalltalk VM都应该完全兼容。至少在一组特性和执行源代码。这是真的吗?

是的,在大多数Smalltalk中,基本的概念思想是相同的。如果您想要与风味兼容,您应该尝试坚持ANSI Smalltalk规范,您将能够(与一些头痛:)移动代码的方言。但是,请注意,这并不是通常的事情,因为大多数时候您将使用一个特定的组合(也许Squeak/ <=> Gemstone组合是最常见的,而且AFAIK非常好)。

有没有可能在光秃秃的VM上建立我自己的形象?这是不实际的,但应该是很好的学习。

正如我之前说过的,在一个图像中有很多事情是您应该处理的,以便做到这一点。所以,从技术上讲,你可以,实际上,这很难。马里亚诺( Mariano )推出了一系列名为“虚拟机之旅”( 博客帖子 )的小Smalltalk,你可以从中找到有趣之处。此外,AFAIK蒂姆·巴德( Tim )创建了小Smalltalk作为学习来源(我需要找到这句话:( ))。无论如何,有无数人构建自己的Smalltalk VM来学习他们的工作原理。这是一项艰苦的工作,但你肯定会学到很多东西(我知道你要求建立一个形象,但知道你也可以构建一个VM)。哦,你也可能对此链接感兴趣。

HTH

票数 3
EN

Stack Overflow用户

发布于 2013-03-14 18:29:57

为了回答问题3,关于形象创造,另一个POV是基于生物学隐喻。

从头开始创建一个图像是非常困难的,就像从头开始构建一个活的细胞是非常困难的:有许多交互作用需要考虑(造物论者会说你必须是某种上帝才能做到这一点)。

但是,克隆图像是一项非常容易的操作,因为克隆一个单元格(只需让它自己克隆)。这是如此容易,我们通常只是克隆-例如,斯奎克和法老图片已经有几十年的历史-看到有趣的讨论,关于一个对象的生活在网站上的http://forum.world.st/About-a-object-life-td4653839.html

请注意,gnu-Smalltalk拥有从零开始组装映像的所有工具,而且法老计划重新创建这样的工具。

最后一点,Squeak关心向后兼容性,最近的解释器VM仍然提供了运行十年前冻结的映像所必需的接口。

票数 5
EN

Stack Overflow用户

发布于 2013-03-14 14:55:35

不同厂商的Smallatalk通常不兼容,一个VM保存的映像不能加载到另一个VM中,至少不能直接加载。例外是Squeak和法老图像共享(或大多数情况下)相同的VM接口。

海滨程序可以(也可以做)作为源包在不同VM的映像之间传输。

尽管需要对VM有很好的理解,但从零开始构建映像是可能的。您可能会发现勺子系统很有趣。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15409567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档