Asynchronous programming is in demand today because responsiveness is important on all modern devices: desktop, mobile, or web. Asynchronous programming is especially important in mobile and wearable apps, which are expected by 2016 to reach 300 billion downloads annually. One contemporary development task is refactoring long-running, blocking synchronous code (e.g., accessing the web, database, or file system) into non-blocking asynchronous code. While major programming languages make asynchrony possible, they do not make it easy.

This proposal aims to significantly enrich educational resources and programmers? toolset for adding, modernizing, tuning, and suggesting asynchrony. The PI plans to pursue research activities in four areas: (1) Mining and recommending refactorings; (2) Automated refactorings for adding asynchrony into mobile apps, for modernizing legacy asynchronous code, and for converting between async variants; (3) Detecting and fixing async errors; (4) Extending async refactorings to other domains, with the intent of discovering theories and reusable principles. This project has the potential to revolutionize how mobile app programmers use asynchrony, to educate them about successful usage of asynchrony, and to significantly reduce the cost and increase the quality of their code.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Application #
2115865
Program Officer
Sol Greenspan
Project Start
Project End
Budget Start
2020-10-01
Budget End
2022-03-31
Support Year
Fiscal Year
2021
Total Cost
$128,884
Indirect Cost
Name
University of Colorado at Boulder
Department
Type
DUNS #
City
Boulder
State
CO
Country
United States
Zip Code
80303