KupC - A Formal Tool for Modeling and Verifying Dynamic Updating of C Programs.

Jiaqi Qian,Min Zhang,Yi Wang,Kazuhiro Ogata
DOI: https://doi.org/10.1007/978-3-030-16722-6_17
2019-01-01
Abstract:Dynamic Software Updating (DSU) is a useful technique for updating running software without incurring any downtime. Its correctness must be guaranteed because updating a running software is a complicated and safety-critical process. In this paper, we present a formal tool called KupC for modeling and verifying dynamic updating of C programs. The tool is built on (mathbb {K})–a formal semantic framework for programming languages. We formalize a patch-based dynamic updating mechanism in (mathbb {K}) based on the formal executable operational semantics of C. The formalization automatically yields an interpreter and several verification tools, which can be used to formally analyze the correctness of dynamic updating for C programs. To our knowledge, KupC is the first formal tool for code-level verification of dynamic software updating.
What problem does this paper attempt to address?