Concurrent programs are difficult to verify because the proof must consider the interactions between the threads. Fine-grained concurrency and heap allocated data structures exacer...
Cristiano Calcagno, Matthew J. Parkinson, Viktor V...
Variables in programs are usually confined to a fixed number of bits and results that require more bits are truncated. Due to the use of 32-bit and 64-bit variables, inadvertent ...
Interval analysis seeks static lower and upper bounds on the values of program variables. These bounds are useful, especially for inferring invariants to prove buffer overflow ch...
Sriram Sankaranarayanan, Franjo Ivancic, Aarti Gup...
Denotational static analysis of Java bytecode has a nice and clean compositional definition and an efficient implementation with binary decision diagrams. But it models only the f...
Abstract. Silicon chip design has passed a threshold whereby exponentially increasing transistor density (Moore’s Law) no longer translates into increased processing power for si...
abstraction on real-valued programs David Monniaux Laboratoire d’informatique de l’´Ecole normale sup´erieure 45, rue d’Ulm, 75230 Paris cedex 5, France June 30, 2007 In t...
Floating-point arithmetic is an important source of errors in programs because of the loss of precision arising during a computation. Unfortunately, this arithmetic is not intuitiv...
Abstract. Shape analyses are often imprecise in their numerical reasoning, whereas numerical static analyses are often largely unaware of the shape of a program’s heap. In this p...
Stephen Magill, Josh Berdine, Edmund M. Clarke, By...