Automated Synthesis of Asynchronizations

Sidi Mohamed Beillahi, A. Bouajjani, C. Enea, Shuvendu K. Lahiri
{"title":"Automated Synthesis of Asynchronizations","authors":"Sidi Mohamed Beillahi, A. Bouajjani, C. Enea, Shuvendu K. Lahiri","doi":"10.48550/arXiv.2209.06648","DOIUrl":null,"url":null,"abstract":"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","PeriodicalId":92164,"journal":{"name":"2017 IEEE Sensors Applications Symposium (SAS). IEEE Staff","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2022-09-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2017 IEEE Sensors Applications Symposium (SAS). IEEE Staff","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.48550/arXiv.2209.06648","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

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
异步的自动合成
异步编程被广泛用于构建响应式和高效的软件,c#等现代语言提供了async/await原语来简化异步的使用。在本文中,我们提出了一种将顺序程序重构为使用async/await的异步程序的方法,称为异步化。重构过程通过一组方法进行参数化,以替换为异步版本,并对其进行约束以避免引入数据竞争。我们研究了枚举所有无数据竞争异步的延迟复杂度,它量化了输出两个连续解之间的延迟。我们证明了这是一个多项式时间模,是求解顺序程序可达性的一个oracle。我们还描述了一种基于程序间数据流分析的实用方法,该方法具有多项式时延复杂性。后一种方法已经在许多从开源存储库中提取的重要c#程序上实现并进行了评估
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信