SHF: Small: Automated Detection and Repair of Errors in Event-Driven Applications
Northeastern University, Boston MA
Investigators
Abstract
Event-driven software plays an exceedingly important role in modern society, in a variety of domains that include browser-based software for the web, server-side applications, and apps running on mobile devices. In such applications, control flow is driven by events that are triggered by users or by external systems. Writing event-driven software is notoriously error-prone, and when programmers make mistakes, various types of errors manifest themselves that are notoriously difficult to debug. The quality of event-driven web-based software remains a significant challenge, and programming errors undermine confidence in companies and institutions that offer goods or services on-line, and may put them at risk legally and financially. The intellectual merits of this project are the development of practical algorithms and tools for detecting and automatically repairing errors in event-driven software. The project's broader significance and importance follows from improvements in the quality of web-based software that are enabled by practical tools for finding and fixing errors. The technical focus of this project is on the development of well-founded solutions for accommodating event-driven control flow in static and dynamic program analysis algorithms, implementing them in practical tools, and evaluating them on real-world software. Specific research topics under study include the development of: precise interprocedural data flow analysis algorithms that are capable of preventing data flow along infeasible control-flow paths, static analysis algorithms for JavaScript code that makes use of promises, a mechanism for asynchronous computation that is now widely adopted in the JavaScript community, and techniques for automatically repairing event race errors in web applications, by restricting event handler scheduling in the browser according to a specified repair policy. Together, these techniques will facilitate the development of more reliable event-driven software, by enabling programmers to detect and repair errors more quickly. The project is releasing the developed tools as open source and is building a user community around the tools by ensuring that interested researchers are able to contribute to the codebase. This aspect is of special interest to the software cluster in NSF's Office of Advanced Cyberinfrastructure, which provides co-funding for this award.
View original record on NSF Award Search →