| 摘要: |
| 针对面向对象软件在动态更新中遇到类型安全问题,定义了一个多版本类的动态更新演算(MCUFJ演算(multi-version class dynamic updatable calculus based on FJ calculus))来描述类动态更新.MCUFJ演算以FJ(featherweight Java)演算为核心,通过增加update操作表示类的动态更新,运用多版本技术使动态更新可以在保持新旧对象共存的情况下完成,讨论了类的数据域和方法进行增加、删除、修改以及类型变化对程序类型安全性的影响,并且指出MCUFJ上类型安全的动态更新需要满足的约束.定义了类的可动态更新限制,并且证明了在该条件下多版本类的动态更新在类型上的安全性.该演算可以用于指导Java语言和面向对象程序语言的类动态更新. |
| 关键词: 动态软件更新 FJ(featherweight Java)演算 Java 类型系统 程序设计语言 |
| DOI: |
| 分类号: |
| 基金项目:Supported by the National Natural Science Foundation of China under Grant No.60673116 (国家自然科学基金); the National High-Tech Research and Development Plan of China under Grant No.2006AA01Z166 (国家高技术研究发展计划(863)); the Natural Science Foundation of Fujian Province of China under Grant No.2007J0315 (福建省自然科学基金); the F5 Foundation of Fujian Province of China under Grant No.2007F5037 (福建省教育厅资助省属高校项目F5项目) |
|
| FJ Extended Calculus for Multi-Version Class Dynamic Update |
|
ZHANG Shi,HUANG Lin-Peng
|
| Abstract: |
| Aiming at resolving the problem of type-safety in dynamic updating O-O (object-oriented) software, a simple formal system, MCUFJ (multi-version class dynamic updatable calculus based on FJ (featherweight Java) calculus) calculus, is established with the goal of understanding the underlying foundations of updating classes dynamically. MCUFJ is formulated as an extension of a core calculus for Featherweight Java with an update operator. Multi-Version classes make objects with different versions coexisting. This study also discusses what kind of change is type-safe, such as adding, deleting, modifying methods/fields, or changing methods'/fields' type, and concludes some restrictions on type-safe updating. The paper also proves the results formally. This calculus can be used as a foundation of Java and O-O update. |
| Key words: dynamic software update FJ (featherweight Java) calculus Java type system program language |