Standard

A study and toolkit for asynchronous programming in c#. / Okur, Semih; Hartveld, David L.; Dig, Danny; van Deursen, Arie.

ICSE 2014 Proceedings of the 36th International Conference on Software Engineering. Association for Computing Machinery (ACM), 2014. p. 1117 - 1127.

Research output: Scientific - peer-reviewConference contribution

Harvard

Okur, S, Hartveld, DL, Dig, D & van Deursen, A 2014, A study and toolkit for asynchronous programming in c#. in ICSE 2014 Proceedings of the 36th International Conference on Software Engineering. Association for Computing Machinery (ACM), pp. 1117 - 1127. DOI: 10.1145/2568225.2568309

APA

Okur, S., Hartveld, D. L., Dig, D., & van Deursen, A. (2014). A study and toolkit for asynchronous programming in c#. In ICSE 2014 Proceedings of the 36th International Conference on Software Engineering. (pp. 1117 - 1127). Association for Computing Machinery (ACM). DOI: 10.1145/2568225.2568309

Vancouver

Okur S, Hartveld DL, Dig D, van Deursen A. A study and toolkit for asynchronous programming in c#. In ICSE 2014 Proceedings of the 36th International Conference on Software Engineering. Association for Computing Machinery (ACM). 2014. p. 1117 - 1127. Available from, DOI: 10.1145/2568225.2568309

Author

Okur, Semih; Hartveld, David L.; Dig, Danny; van Deursen, Arie / A study and toolkit for asynchronous programming in c#.

ICSE 2014 Proceedings of the 36th International Conference on Software Engineering. Association for Computing Machinery (ACM), 2014. p. 1117 - 1127.

Research output: Scientific - peer-reviewConference contribution

BibTeX

@inbook{6c788d5ce0e143189aa8fd5c6226bbbd,
title = "A study and toolkit for asynchronous programming in c#",
author = "Semih Okur and Hartveld, {David L.} and Danny Dig and {van Deursen}, Arie",
year = "2014",
doi = "10.1145/2568225.2568309",
isbn = "978-1-4503-2756-5",
pages = "1117 -- 1127",
booktitle = "ICSE 2014 Proceedings of the 36th International Conference on Software Engineering",
publisher = "Association for Computing Machinery (ACM)",
address = "United States",

}

RIS

TY - CHAP

T1 - A study and toolkit for asynchronous programming in c#

AU - Okur,Semih

AU - Hartveld,David L.

AU - Dig,Danny

AU - van Deursen,Arie

PY - 2014

Y1 - 2014

N2 - 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.

AB - 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.

U2 - 10.1145/2568225.2568309

DO - 10.1145/2568225.2568309

M3 - Conference contribution

SN - 978-1-4503-2756-5

SP - 1117

EP - 1127

BT - ICSE 2014 Proceedings of the 36th International Conference on Software Engineering

PB - Association for Computing Machinery (ACM)

ER -

ID: 7392375