GGrantIndex
← Search

CAREER: Cooperative Program Analysis: Bridging the Gap Between User and Tool Reasoning

$459,584FY2011CSENSF

University Of Colorado At Boulder, Boulder CO

Investigators

Abstract

While not perfect, the depth and breadth of what today's automated analysis tools can figure out about a program is truly remarkable. Yet, despite the prevalence and cost of software defects and despite the wealth of information such automated tools could provide, program analyzers are largely ignored by today's software engineers. This situation is not due to a lack of interest from software engineers or a lack of effort in deployment from analysis experts but rather a gap in the way a tool and its user reasons about the program, which results in, for example, a difficulty in providing analysis results understandable to the user. This research confronts closing this user-tool reasoning gap. The focus of the work is an effective approach to user-driven refinement of the analysis process. Novel techniques for generating explanations of program analysis results will be created. New approaches for trading off the exhaustiveness of compile-time verification and the simplicity of run-time checking will be developed. Together with prior work on user-centric analysis specifications, this project lays the foundation for tomorrow's tools where users and tools cooperate to reason effectively about programs. Significant potential impacts include the following: a change in the way software engineers view program analysis--replacing a magic box with a transparent reasoning assistant, improved software quality as a result of this change in view, and tools that engage students in algorithmic thinking in a hands-on manner.

View original record on NSF Award Search →
CAREER: Cooperative Program Analysis: Bridging the Gap Between User and Tool Reasoning · GrantIndex