A formal approach to fixing bugs

  • Authors:
  • Sara Kalvala;Richard Warburton

  • Affiliations:
  • Department of Computer Science, University of Warwick, UK;Department of Computer Science, University of Warwick, UK

  • Venue:
  • SBMF'11 Proceedings of the 14th Brazilian conference on Formal Methods: foundations and Applications
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Bugs within programs typically arise within well-known motifs, such as complex language features or misunderstood programming interfaces. Some software development tools often detect some of these situations, and some integrated development environments suggest automated fixes for some of the simple cases. However, it is usually difficult to hand-craft and integrate more complex bug-fixing into these environments. We present a language for specifying program transformations which is paired with a novel methodology for identifying and fixing bug patterns within Java source code. We propose a combination of source code and bytecode analyses: this allows for using the control flow in the bytecode to help identify the bugs while generating corrected source code. The specification language uses a combination of syntactic rewrite rules and dataflow analysis generated from temporal logic based conditions. We demonstrate the approach with a prototype implementation.