Validating Library Usage Interactively

Loading...
Thumbnail Image

Authors

Jha, Somesh
Lu, Shan
Jin, Guoliang
Harris, William R.

Advisors

License

DOI

Type

Technical Report

Journal Title

Journal ISSN

Volume Title

Publisher

Grantor

Abstract

Programmers who develop large, mature applications often want to optimize the performance of their program without changing the semantics of the program. They often do so by changing how their program invokes a library function or a function provided by another module of the program. Unfortunately, once a programmer makes such an optimization, it is difficult for him to determine that the optimization does not change the semantics of the original program, because the orig- inal and optimized programs are equivalent only due to subtle, implicit assumptions about library functions called by the programs. In this work, we present an interactive program analysis that a program- mer can apply to determine that his optimization does not change the behavior of a program. Our analysis casts the problem of validating an optimization as an abductive inference problem in the context of checking program equivalence. Our analysis solves the abductive equivalence prob- lem by interacting with the programmer so that the programmer imple- ments a solver for a logical theory that models library functions invoked by the program. We have used our analysis to validate optimizations from a set real-world, mature applications consisting of the Apache webserver, the Mozilla software suite, and the MySQL database.

Description

Related Material and Data

Citation

TR1782

Sponsorship

Endorsement

Review

Supplemented By

Referenced By