arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2209.06648cs.PLcs.LO
收藏

非同步化的自动合成

Automated Synthesis of Asynchronizations

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

摘要:

异步编程被广泛用于构建响应性和高效的软件,现代语言(如C#)提供了JavaScript/await原语来简化JavaScript的使用。在本文中,我们提出了一种方法,用于重构一个顺序的程序到一个异步程序,使用的异步/await,称为重构。重构过程由一组方法参数化,以替换为异步版本,并受到约束以避免引入数据竞争。我们调查的延迟复杂性枚举所有的数据竞争免费的并行化,量化输出两个连续的解决方案之间的延迟。我们表明,这是多项式时间模的预言解决可达性顺序程序。我们还描述了一个务实的方法的基础上,一个跨过程的数据流分析与多项式时间延迟的复杂性。后一种方法已经在许多从开放源代码库中提取的非平凡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

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑