Program analysis tools are necessary for high quality software. The goal of this research is to understand how expressiveness and scalability can be increased within and across these tools, which is important to advancing knowledge by transforming how software development environments converse with the developers who use them. There will be three outcomes: a framework designed to enable toolsmiths to create program analysis tools that are expressive and scalable, three re-engineered program analysis tools that use the framework, and validation that program analysis tools built using our framework provide positive results. It will have significant benefits to society by enabling developers to fully reap the benefits of program analysis tools more correct, more reliable, and more on-time software systems.

Program analysis tools such as static analysis tools, restructuring tools, and code coverage tools communicate with the software developer through notifications, but these notifications must balance two competing priorities. First, they must be expressive enough that software developers can understand what the notification is trying to convey. Second, they must be scalable enough that as understanding a notification becomes increasingly cognitively demanding, the developer does not abandon the tool in favor of an error-prone process of manual diagnosis. The project designs a new interactive development environment (IDE) framework for notifications. Many program analysis notifications have a common structure, which can be leveraged to enable expressiveness and scalability for IDE notifications.

Project Start
Project End
Budget Start
2017-08-15
Budget End
2021-07-31
Support Year
Fiscal Year
2017
Total Cost
$265,853
Indirect Cost
Name
North Carolina State University Raleigh
Department
Type
DUNS #
City
Raleigh
State
NC
Country
United States
Zip Code
27695