Generic and Automated Runtime Program Repair

Abstract

This document is the final technical report for Award FA8750-11-2-0039, Generic and Automated Runtime Program Repair. The work carried out under this and other awards aimed to reduce costs associated with software maintenance by improving GenProg, a technique for the automated repair of program defects. This report discusses technical improvements to GenProg and its evaluation on over 100 defects in over 5 million lines of code involving over 10,000 test cases. In addition, this report details algorithms developed to automatically infer important program specifications: nonlinear invariants between program variables, invariants involving arrays, and invariants describing the use of programming interfaces. Finally, this report elaborates on techniques for scaling Gen- Prog to resource-constrained environments, such as embedded systems. Executable binaries and assembly-language programs for the x86 and ARM architectures are specifically targeted. Advances allow program repairs to be carried out using 15% of the memory and 5% of the disk space of pre-award work, and concrete examples of repairs using Nokia N900 smartphones are described. Overall the work partially supported by this award combines empirical and theoretical advances to significantly extend the reach of automated program repair.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Sep 01, 2012
Accession Number
ADA568179

Entities

People

  • Stephanie Forrest
  • Westley Weimer

Organizations

  • University of Virginia

Tags

Communities of Interest

  • Autonomy
  • Cyber
  • Engineered Resilient Systems
  • Ground and Sea Platforms

DTIC Thesaurus Topics

  • Air Force
  • Air Force Research Laboratories
  • Algorithms
  • Application Software
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Debugging
  • Embedded Systems
  • Language
  • Mobile Phones
  • Operating Systems
  • Software Development
  • Software Testing
  • Standards
  • Test And Evaluation

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computer Science.
  • Distributed Systems and Data Platform Development
  • Software Engineering.

Technology Areas

  • AI & ML
  • Space