Automatic Detection and Repair of Semantic Errors in Programs

An approach to detection and repair of application level semantic errors in deployed software includes inferring aspects of correct operation of a program. For instance, a suite of examples of operations that are known or assumed to be correct are used to infer correct operation. Further operation of the program can be compared to results found during correct operation and the logic of the program can be augmented to ensure that aspects of further examples of operation of the program are sufficiently similar to the examples in the correct suite. In some examples, the similarity is based on identifying invariants that are satisfied at certain points in the program execution, and augmenting (e.g., “patching”) the logic includes adding tests to confirm that the invariants are satisfied in the new examples. In some examples, the logic invokes an automatic or semi-automatic error handling procedure if the test is not satisfied. Augmenting the logic in this way may prevent malicious parties from exploiting the semantic errors, and may prevent failures in execution of the programs that may have been avoided.

Researchers

Jeff Perkins / Stylianos Sidiroglou / Eric Lahtinen / Paolo Piselli / Basil Krikeles / Greg Sullivan / Tim Anderson / Martin Rinard

Departments: Computer Science & Artificial Intelligence Lab, Dept of Electrical Engineering & Computer Science
Technology Areas: Computer Science: Networking & Signals
Impact Areas: Connected World

  • automatic correction of program logic
    United States of America | Granted | 8,788,884

License this technology

Interested in this technology? Connect with our experienced licensing team to initiate the process.

Sign up for technology updates

Sign up now to receive the latest updates on cutting-edge technologies and innovations.