Reasoning About the Unknown in Static Analysis.

Static program analysis techniques cannot know certain values, such as the value of user input or network state, at analysis time. While such unknown values need to be treated as nondeterministic choices made by the program's execution environment, it is still possible to glean very useful informati...

Descripción completa

Detalles Bibliográficos
Publicado en:Communications of the ACM Vol. 53; no. 8; pp. 115 - 124
Autores principales: Dillig, Isil, Dillig, Thomas, Aiken, Alex
Formato: Artículo
Publicado: Association for Computing Machinery Aug2010
Materias:
Acceso en línea:Ver este registro en EBSCOhost
Descripción
Sumario:Static program analysis techniques cannot know certain values, such as the value of user input or network state, at analysis time. While such unknown values need to be treated as nondeterministic choices made by the program's execution environment, it is still possible to glean very useful information about how such statically unknown values may or must influence computation. We give a method for integrating such nondeterministic choices with an expressive static analysis. Interestingly, we cannot solve the resulting recursive constraints directly, but we give an exact method for answering all may and must queries. We show experimentally that the resulting solved forms are concise in practice, enabling us to apply the technique to very large programs, including an entire operating system.