Validating Library Usage Interactively
2013; Springer Science+Business Media; Linguagem: Inglês
10.1007/978-3-642-39799-8_56
ISSN1611-3349
AutoresWilliam R. Harris, Guoliang Jin, Shan Lu, Somesh Jha,
Tópico(s)Software Testing and Debugging Techniques
ResumoProgrammers who develop large, mature applications often want to optimize the performance of their program without changing its semantics. They often do so by changing how their program invokes a library function or a function implemented in another module of the program. Unfortunately, once a programmer makes such an optimization, it is difficult for him to validate that the optimization does not change the semantics of the original program, because the original 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 programmer can apply to validate that his optimization does not change his program’s semantics. 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 problem by interacting with the programmer so that the programmer implements a solver for a logical theory that models library functions invoked by the program. We have used our analysis to validate optimizations of real-world, mature applications: the Apache software suite, the Mozilla Suite, and the MySQL database.
Referência(s)