我正在寻找有关以下主题的参考文章和论文。

  1. 一般的, ,一些编程语言允许对类动态更改。例如,可以将新的实例变量“权重”添加到类中 Edge (图表的未加权边缘类)。但是现有的边缘对象应该发生什么?

    它们可以升级到包含具有默认值的新实例变量,也许是权重 0, ,在边缘示例中。或现有对象保持不变。

  2. 面向上下文 在运行时动态激活上下文时,可以出现编程,类似情况。这可能会影响当前执行的方法的变化(尽管目前我对单线执行感到担忧)。

  3. 考虑 设计模式, ,当代理对象包裹另一个对象时,对旧对象的引用可能会期望代理对象不遵守某些不变性。当对象被包装/“更新”与代理对象包装/“更新”时,这也可能导致不一致。

是否有任何参考可以列出在动态变化/激活的情况下处理问题的可能方法?喜欢保持状态一致的选项?

我主要看着动态软件演化的社区,面向上下文的编程和软件组件。我还可以搜索其他重要社区来查找参考吗?

有帮助吗?

解决方案

我偶然发现的有关此主题的最新论文是带有一流上下文的增量动态更新 由Erwann Wernli,Mircea Lungu和Oscar Nierstrasz作者。本文采用的方法不是基于全局更新。相反,系统的多个版本同时在所谓的 语境. 。对象逐渐从一个上下文迁移到另一个上下文,此时执行更新。双向转换用于保持旧环境之间的一致性。

通常,我认为您需要为任何更新提供一对更新功能,一个用于更新类,另一个用于更新对象。真正的问题是/何时/如何将更新功能应用于对象。无论如何,您通常会同时拥有多个版本的课程。 UPGradej (由Biermann,Parkinson和Noble撰写)是一种编程语言,以一种安全的方式处理多个版本的课程。

这些论文的书目提供了一些您可以遵循的潜在客户。还要查看Google Scholar,以查看基于这些论文的内容。

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