基于FJ的多版本类动态更新演算
作者:
基金项目:

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
  • 摘要
  • | |
  • 访问统计
  • |
  • 参考文献 [12]
  • |
  • 相似文献 [20]
  • | | |
  • 文章评论
    摘要:

    针对面向对象软件在动态更新中遇到类型安全问题,定义了一个多版本类的动态更新演算(MCUFJ演算(multi-version class dynamic updatable calculus based on FJ calculus))来描述类动态更新.MCUFJ演算以FJ(featherweight Java)演算为核心,通过增加update操作表示类的动态更新,运用多版本技术使动态更新可以在保持新旧对象共存的情况下完成,讨论了类的数据域和方法进行增加、删除、修改以及类型变化对程序类型安全性的影响,并且指出MCUFJ上类型安全的动态更新需要满足的约束.定义了类的可动态更新限制,并且证明了在该条件下多版本类的动态更新在类型上的安全性.该演算可以用于指导Java语言和面向对象程序语言的类动态更新.

    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.

    参考文献
    [1] Igarashi A, Pierce B, Wadler P. Featherweight Java: A minimal core calculus for Java and GJ. ACM Trans. on Programming Languages and Systems, 2001,23(3):396-450.
    [2] Baumann A, Heiser G, Appavoo J, Silva DD, Krieger O, Wisniewski RW, Kerr J. Providing dynamic update in an operating system. In: Enderson E, ed. Proc. of the USENIX Annual Technical Conf. 2005 on USENIX Annual Technical Conf. General Track: USENIX Association, 2005. 279-291.
    [3] Ajmani S. Automatic software upgrades for distributed systems [Ph.D. Thesis]. Boston: Massachusetts Institute of Technology, 2004.
    [4] Hicks M, Nettles S. Dynamic software updating. ACM Trans. on Programming Languages and Systems, 2005,27(6):1049-1096.
    [5] Malabarba S, Pandey R, Gragg J, Barr E, Barnes JF. Runtime support for type-safe dynamic Java classes. In: Bertino E, ed. Proc. of the 14th European Conf. on Object Oriented Programming. LNCS 1850, Berlin: Springer-Verlag, 2000. 337-361.
    [6] Drossopoulou S, Lagorio G, Eisenbach S. Flexible models for dynamic linking. In: Degano P, ed. Proc. of the Joint European Conf. on Theory and Practice of Software. LNCS 2618, Berlin: Springer-Verlag, 2003. 38-53.
    [7] Wang XP, Wang QX, Mei H. An approach to online evolution of component based software. Chinese Journal of Computers, 2005,28(11):1891-1897 (in Chinese with English abstract).
    [8] Gupta D, Jalote P, Barua G. A formal framework for on-line software version change. IEEE Trans. on Software Engineering, 1996, 22(2):120-131.
    [9] Stoyle, G, Hicks M, Bierman G, Sewwell P, Neamtiu I. Mutatis mutandis: Safe and predictable dynamic software updating. In: Palsberg J, ed. Proc. of the 32nd ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages (POPL 2005). New York: ACM Press, 2005. 183-194.
    [10] Duggan D. Type-Based hot swapping of running modules. SIGPLAN Notices, 2001,36(1):62-73.
    [11] Zhang S, Huang LP. Formalizing class dynamic software updating. In: Mei H, ed. Proc. of the 6th Int’l Conf. on Quality Software (QSIC 2006). IEEE CS, 2006. 403-409. http://doi.ieeecomputersociety.org/10.1109/QSIC.2006.30
    [12] Bierman G, Hicks M, Sewell P, Stoyle G. Formalizing dynamic software updating. In: Proc. of the 2nd Int’l Workshop on Unanticipated Software Evolution (USE 2003). Warsaw, 2003. http://www.informatik.uni-bonn.de/~gk/use/2003/Papers/papers. html
    引证文献
    网友评论
    网友评论
    分享到微博
    发 布
引用本文

张 仕,黄林鹏.基于FJ的多版本类动态更新演算.软件学报,2008,19(10):2562-2572

复制
分享
文章指标
  • 点击次数:4288
  • 下载次数: 5356
  • HTML阅读次数: 0
  • 引用次数: 0
历史
  • 收稿日期:2006-10-08
  • 最后修改日期:2007-11-08
文章二维码
您是第19868341位访问者
版权所有:中国科学院软件研究所 京ICP备05046678号-3
地址:北京市海淀区中关村南四街4号,邮政编码:100190
电话:010-62562563 传真:010-62562533 Email:jos@iscas.ac.cn
技术支持:北京勤云科技发展有限公司

京公网安备 11040202500063号