A study and toolkit for asynchronous programming in c#

Conference Paper (2014)
Author(s)

Semih Okur

D.L. Hartveld (TU Delft - Education and Research Support)

Danny Dig

A. Van Van Deursen (TU Delft - Software Technology)

Department
Software Technology
Copyright
© 2014 Semih Okur, D.L. Hartveld, Danny Dig, A. van Deursen
DOI related publication
https://doi.org/10.1145/2568225.2568309
More Info
expand_more
Publication Year
2014
Language
English
Copyright
© 2014 Semih Okur, D.L. Hartveld, Danny Dig, A. van Deursen
Department
Software Technology
Pages (from-to)
1117 - 1127
ISBN (print)
978-1-4503-2756-5
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

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 providers 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 use 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.

Files

TUD_SERG_2013_016.pdf
(pdf | 0.824 Mb)
License info not available