Capítulo de livro Acesso aberto Revisado por pares

Validating Library Usage Interactively

2013; Springer Science+Business Media; Linguagem: Inglês

10.1007/978-3-642-39799-8_56

ISSN

1611-3349

Autores

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

Tópico(s)

Software Testing and Debugging Techniques

Resumo

Programmers 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)