A Study and Toolkit for Asynchronous Programming in C#
Okur, Semih; Hartveld, David L.; Dig, Danny; Deursen, Arie van
Loading…
Permalink
https://hdl.handle.net/2142/45837
Description
Title
A Study and Toolkit for Asynchronous Programming in C#
Author(s)
Okur, Semih
Hartveld, David L.
Dig, Danny
Deursen, Arie van
Issue Date
2013
Keyword(s)
asynchronous programming
refactoring
mobile software
responsiveness
performance bugs
Abstract
Asynchronous programming is in demand today, because responsiveness is increasingly important on all modern devices. Yet, we know little about how developers use asynchronous programming in practice. Without such knowledge, developers, researchers, language and library designers, and tool vendors can make wrong assumptions.
We present the first study that analyzes the usage of asynchronous programming in a large experiment. We analyzed 1378 open source Windows Phone (WP) apps, comprising 12M SLOC, produced by 3376 developers. Using this data, we answer 2 research questions about use and misuse of asynchronous constructs. Inspired by these findings, we developed (i) Asyncifier, an automated refactoring tool that converts callback-based asynchronous code to the new async/await; (ii) Corrector, a tool that finds and corrects common misuses of async/await. Our empirical evaluation shows that these tools are (i) applicable and (ii) efficient. Developers accepted 314 patches generated by our tools.
Use this login method if you
don't
have an
@illinois.edu
email address.
(Oops, I do have one)
IDEALS migrated to a new platform on June 23, 2022. If you created
your account prior to this date, you will have to reset your password
using the forgot-password link below.