The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.
The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.
Patent No.:
Date of Patent:
Jul. 22, 2014
Filed:
Dec. 07, 2010
Jeff Herbert Perkins, Cambridge, MA (US);
Stylianos Sidiroglou, Cambridge, MA (US);
Martin Conway Rinard, Arlington, MA (US);
Eric Patrick Lahtinen, Canton, MA (US);
Paolo Mario Piselli, Arlington, MA (US);
Basil C Krikeles, Wakefield, MA (US);
Timothy Alan Anderson, Sudbury, MA (US);
Greg Timothy Sullivan, Auburndale, MA (US);
Jeff Herbert Perkins, Cambridge, MA (US);
Stylianos Sidiroglou, Cambridge, MA (US);
Martin Conway Rinard, Arlington, MA (US);
Eric Patrick Lahtinen, Canton, MA (US);
Paolo Mario Piselli, Arlington, MA (US);
Basil C Krikeles, Wakefield, MA (US);
Timothy Alan Anderson, Sudbury, MA (US);
Greg Timothy Sullivan, Auburndale, MA (US);
Massachusetts Institute of Technology, Cambridge, MA (US);
BAE Systems Information and Electronic Systems Integration Inc., Nashua, NH (US);
Abstract
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.