Advanced Search

Browse by Discipline

Scientific Societies

E-print Alerts

Add E-prints

E-print Network

  Advanced Search  

Instrumenting C programs with Nested Word Swarat Chaudhuri and Rajeev Alur

Summary: Instrumenting C programs with Nested Word
Swarat Chaudhuri and Rajeev Alur
University of Pennsylvania
1 Introduction
In classical automata-theoretic model checking [6], a system model generates
a language L of words modeling system executions, and verification involves
checking if L L
= , L
being the language of words deemed "unsafe" by the
specification. This view is also used in program analyzers like Blast [5] and
Slam [2], where a specification is a word automaton (or monitor) with finite-
state control-flow that accepts all "unsafe" program executions. Typical analysis
constructs the "product" of a program and a monitor, in effect instrumenting the
program with extra instructions, so that the input program fails its specification
iff the product program fails an assertion. The latter is then checked for possible
assertion failures. Monitors also find use in testing and runtime verification,
where we try finding assertion violations in the product program at runtime.
One shortcoming of these notations is expressiveness. As finite automata
cannot argue about the nested structure of procedure calls and returns in pro-


Source: Alur, Rajeev - Department of Computer and Information Science, University of Pennsylvania
Chauduri, Swarat - Department of Computer Science and Engineering, Pennsylvania State University


Collections: Computer Technologies and Information Sciences