Abstract debugging of higher-order imperative languages

  • Authors:
  • François Bourdoncle

  • Affiliations:
  • -

  • Venue:
  • PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
  • Year:
  • 1993

Quantified Score

Hi-index 0.00

Visualization

Abstract

Abstract interpretation is a formal method that enables the static determination (i.e. at compile-time) of the dynamic properties (i.e. at run-time) of programs. We present an abstract interpretation-based method, called abstract debugging, which enables the static and formal debugging of programs, prior to their execution, by finding the origin of potential bugs as well as necessary conditions for these bugs not to occur at run-time. We show how invariant assertions and intermittent assertions, such as termination, can be used to formally debug programs. Finally, we show how abstract debugging can be effectively and efficiently applied to higher-order imperative programs with exceptions and jumps to non-local labels, and present the Syntox system that enables the abstract debugging of the Pascal language by the determination of the range of the scalar variables of programs.