概述 安全编写高性能并发程序非常困难。为了帮助开发人员,我们引入了Armada,这是一种语言和工具,旨在以相对较少的努力来正式验证此类程序。通过编译为C子集ClightTSO的类C语言和基于状态机的小步骤语义,Armada为开发人员提供了选择任意内存布局和同步原语的灵活性,因此它们在性能追求方面从未受到限制。为了减少开发人员的工作量,Armada利用SMT驱动的自动化技术和强大的推理技术库,包括依赖保证,TSO消除,归约和别名分析。所有这些技术均已被证明是可靠的,随着时间的推移,可以通过其他策略合理地扩展Armada。使用Armada,我们验证了四个并发的案例研究,并表明我们可以获得与未经验证的代码相同的性能。 您可以在ACM将在2020年6月17日发布的PLDI '20论文中了解更多有关Armada的信息: 雅各布·R·洛奇,陈逸轩,马诺斯·卡普里索斯,布莱恩·帕尔诺,沙兹·卡德尔,阿帕