Computer Engineering and Applications ›› 2013, Vol. 49 ›› Issue (14): 39-44.

Previous Articles     Next Articles

Logical validity in dynamic updating of C programs

XIE Guozhen, MA Xiaoxing   

  1. State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing 210046, China
  • Online:2013-07-15 Published:2013-07-31

C语言程序动态更新中的逻辑正确性

谢国珍,马晓星   

  1. 南京大学 软件新技术国家重点实验室,南京 210046

Abstract: Dynamic updating is now very important. Applications need to be updated constantly during their life time, to fix the bugs, and to add new functions. A common way to get the application updated is to shut it down, install the new version and then restart it. Dynamic updating can accomplish it when the program is running, that is it doesn’t have to reboot the application. On the other hand, some applications should run continually, transient break-off may cause huge loss, which drives the research of dynamic updating further. There are some updating techniques for different program languages. As to C, all the techniques are for researchers, they are not mature enough to be put to use. Program correctness is a crucial part of the dynamic updating research. It should guarantee the update safety. At present, most of the update safety considerations are focused on grammatical level, and rarely deal with the logical validity. Considering the deficiency, it makes some improvement on logical validity during the dynamic updating process.

Key words: dynamic updating, program correctness, logical validity, constraint-based analysis

摘要: 动态更新的研究已变得越来越重要,应用程序生命周期中需要不断进行更新,以修复程序中的错误或者为其添加新的功能。一般更新方式是关闭应用程序、安装更新,然后重启新版本的应用程序,而动态更新可以在程序的运行过程中使程序完成更新,免于重启的麻烦。另一方面,很多应用程序需要不间断的运行,短时间的中断会造成巨大的损失,这也使得动态更新的研究成为必然。针对不同的语言,有一些不同的更新技术,关于C语言,目前动态更新的研究都还停留在实验室阶段,投入到实际运用的很少。程序正确性是动态分析研究中一个重要的方向,目前C语言的动态更新正确性研究还都停留在语法层面的正确性,没有涉及的程序更新前后的逻辑正确,针对这一不足,旨在Ginseng平台上,对C程序动态更新逻辑正确性上做出改进。

关键词: 动态更新, 程序正确性, 逻辑正确性, 基于约束分析