论文标题

异步的自动合成

Automated Synthesis of Asynchronizations

论文作者

Beillahi, Sidi Mohamed, Bouajjani, Ahmed, Enea, Constantin, Lahiri, Shuvendu

论文摘要

异步编程被广泛用于构建响应式和高效的软件,而诸如C#等现代语言提供异步/等待原始词,以简化异步的使用。在本文中,我们提出了一种将顺序程序重构为使用异步/等待(称为异步)的异步程序的方法。重构过程通过一组用异步版本替换的方法进行了参数化,并且它被限制以避免引入数据种族。我们研究了列举所有数据竞赛的延迟复杂性,该数据竞争无效的异步,这量化了输出两种连续解决方案之间的延迟。我们表明,这是多项式时间模型,用于解决顺序程序中的可及性。我们还基于基于多项式时间延迟复杂性的概要数据流分析来描述一种实用方法。后一种方法已在开源存储库中提取的许多非平凡的C#程序上实施和评估

Asynchronous programming is widely adopted for building responsive and efficient software, and modern languages such as C# provide async/await primitives to simplify the use of asynchrony. In this paper, we propose an approach for refactoring a sequential program into an asynchronous program that uses async/await, called asynchronization. The refactoring process is parametrized by a set of methods to replace with asynchronous versions, and it is constrained to avoid introducing data races. We investigate the delay complexity of enumerating all data race free asynchronizations, which quantifies the delay between outputting two consecutive solutions. We show that this is polynomial time modulo an oracle for solving reachability in sequential programs. We also describe a pragmatic approach based on an interprocedural data-flow analysis with polynomial-time delay complexity. The latter approach has been implemented and evaluated on a number of non-trivial C# programs extracted from open-source repositories

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源