Runtime Verification of C Programs

  • Authors:
  • Klaus Havelund

  • Affiliations:
  • Jet Propulsion Laboratory California Institute of Technology, , Pasadena, USA CA 91109

  • Venue:
  • TestCom '08 / FATES '08 Proceedings of the 20th IFIP TC 6/WG 6.1 international conference on Testing of Software and Communicating Systems: 8th International Workshop
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present in this paper a framework, Rmor, for monitoring the execution of C programs against state machines, expressed in a textual (non-graphical) format in files separate from the program. The state machine language has been inspired by a graphical state machine language Rmorrecently developed at the Jet Propulsion Laboratory, as an alternative to using Linear Temporal Logic (LTL) for requirements capture. Transitions between states are labeled with abstract event names and Boolean expressions over such. The abstract events are connected to code fragments using an aspect-oriented pointcut language similar to AspectJ's or AspectC's pointcut language. The system is implemented in the C analysis and transformation package Cil, and is programmed in Ocaml, the implementation language of Cil. The work is closely related to the notion of stateful aspects within aspect-oriented programming, where pointcut languages are extended with temporal assertions over the execution trace.