A study and toolkit for asynchronous programming in c#

A study and toolkit for asynchronous programming in c#
复制标题

DOI:
10.1145/2568225.2568309
复制
发表时间:
2014-05
期刊:
Proceedings of the 36th International Conference on Software Engineering
影响因子:
--
通讯作者:
Semih Okur;D. L. Hartveld;Danny Dig;A. Deursen
Semih Okur;D. L. Hartveld;Danny Dig;A. Deursen
中科院分区:
其他
文献类型:
--
作者:
Semih Okur;D. L. Hartveld;Danny Dig;A. Deursen

文献摘要

被引文献

相似文献

当今的异步编程正在需求,因为响应能力在所有现代设备上都越来越重要。但是,我们对开发人员如何在实践中使用异步编程了解一无所知。如果没有这样的知识,开发人员,研究人员,语言和图书馆设计师以及工具提供商可能会做出错误的假设。我们介绍了第一项研究,该研究分析了一个大型实验中异步编程的使用。我们分析了1378个开源Windows Phone(WP)应用程序,其中包括12m SLOC,由3376个开发人员生产。使用这些数据,我们回答了2个有关使用和滥用异步结构的研究问题。受这些发现的启发,我们开发了(i)异步器,这是一种自动重构工具,可将基于回调的异步代码转换为使用异步/等待的异步; (ii)校正器,一种可以找到并纠正异步/等待的常见滥用的工具。我们的经验评估表明,这些工具是(i)适用且(ii)有效的。开发人员接受了我们的工具生成的314个补丁。
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.