Inferring specifications to detect errors in code

  • Authors:
  • Mana Taghdiri;Daniel Jackson

  • Affiliations:
  • Computer Science and AI Lab, Massachusetts Institute of Technology, Cambridge, USA 02139;Computer Science and AI Lab, Massachusetts Institute of Technology, Cambridge, USA 02139

  • Venue:
  • Automated Software Engineering
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

A new technique is presented to statically check a given procedure against a user-provided property. The method requires no annotations; it automatically infers a context-dependent specification for each procedure call, so that only as much information about a procedure is used as is needed to analyze its caller. Specifications are inferred iteratively. Empty specifications are initially used to over-approximate the effects of all procedure calls; these are later refined in response to spurious counterexamples. When the analysis terminates, any remaining counterexample is guaranteed to be valid. However, since the heap is finitized, the absence of a counterexample does not guarantee the validity of the given property in general.