我计划有关实现动态链接到我的Smalltalk的方言。问题是关于得到的消息传递与动态链接到工作。

消息传递本身是如此简单:与选择消息被发送到对象,则对象拿起从它的协议选择的方法匹配,则它处理与消息捆绑在一起的数据,并返回一个结果。

在基于图像的实现,可以实现信息传递非常直接的方式 - 你的消息选择可以只是整数从全局符号表翻译,相关的协议可以在它们的整数和地址只是哈希表。假设它的所有编译成与全局符号表中的一个大的图像。

在动态链接,你不能假定指向正确选择一个符号表。你可以把解决此问题,使用字符串作为你的选择,但你注定的语言是比较慢。

还有一个方法,它涉及复制协议和选择的过程的表妥善搬迁他们。但它听起来像一个相当大量的工作。

是否有更好的方法来解决这个问题?此外,为动态链接值得吗?我怎么能实现的选择和协议拆迁?

有帮助吗?

解决方案

当然,你可以假设一个全局符号表,你只需要更新,并确保在该码只使用符号实例从该表链接时。你看看佳乐?载入代码是图像级(未VM),所以很容易从任何佳乐图像浏览。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top