是什么让 Smalltalk 能够进行图像持久化,为什么像 Ruby/Python 这样的语言不能自我序列化?

2023-12-26

在smalltalk中,您可以将世界状态保存到图像文件中。我认为这与 Smalltalk 的“序列化”自身能力有关——也就是说,对象可以生成自己的源代码。

1)这是一个准确的理解吗?

2)将这种能力添加到现代语言(显然是非 Lisp)中面临的挑战是什么?

3)“序列化”这个词正确吗?正确的行话是什么?


它比“序列化”简单得多。 Smalltalk 映像只是对象内存的快照。它获取整个 RAM 内容(垃圾收集后)并将其转储到文件中。启动时,它将快照从磁盘加载到 RAM 中,并从中断处继续处理。有一些钩子可以在快照上和恢复时执行特殊操作,但基本上这就是它的工作原理。

(补充:请参阅下面 Lukas Renggli 的评论,了解一个关键的设计选择,与其他环境相比,它变得如此简单)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是什么让 Smalltalk 能够进行图像持久化,为什么像 Ruby/Python 这样的语言不能自我序列化? 的相关文章

随机推荐