Translating Xd-C programs to MSVL programs
Abstract
C language is one of the most popular languages for software systems. In order to verify safety, reliability and security properties of such systems written in C, a tool UMC4M for runtime verification at code level based on Modeling, Simulation and Verification Language (MSVL) and its compiler MC is employed. To do so, a C program has to be translated to an MSVL program M and the negation of a desired property is also translated to an MSVL program M', then "M and M" is compiled and executed armed with MC. Whether violates is checked by evaluating whether there exists an acceptable execution of new MSVL program M and M". Therefore, how to translate a C program to an MSVL program is a critical issue. However, in general, C is of complicated structures with goto statement. In this paper, we confine the syntax of C in a suitable subset called Xd-C without loss of expressiveness. Further, we present a translation algorithm from an Xd-C program to an MSVL program based on translation algorithms for expressions and statements. Moreover, the equivalences between expressions and statements involved in Xd-C and MSVL programs are inductively proved. Subsequently, the equivalence between the original Xd-C program and the translated MSVL program is also proved. In addition, the proposed approach has been implemented by a tool called . A benchmark of experiments including 13 real-world Xd-C programs is conducted. The results show that works effectively.
Cite
@article{arxiv.1809.00959,
title = {Translating Xd-C programs to MSVL programs},
author = {Meng Wang and Cong Tian and Nan Zhang and Zhenhua Duan and Chenguang Yao},
journal= {arXiv preprint arXiv:1809.00959},
year = {2019}
}