×

利用编译器中间表示进行多语言和跨语言验证。 (英语) Zbl 1451.68071

Beyer,Dirk(ed.)等人,验证,模型检查和抽象解释。第21届国际会议,VMCAI 2020,新奥尔良,洛杉矶,美国,2020年1月16-21日。会议记录。查姆:斯普林格。选择。笔记计算。科学。11990,90-111(2020年)。
摘要:现在的开发人员经常使用许多具有不同特性和权衡的编程语言。不幸的是,从零开始为一种新语言实现一个软件验证器是一项庞大而乏味的工作,需要多个领域的专家知识,例如编译器、验证和约束求解。因此,只有一小部分使用的语言有现成的软件验证器来帮助开发正确的程序。在过去的十年中,在实现软件验证器时,出现了一种利用流行的编译器中间表示(IRs)的趋势,例如llvmir。处理IR保证了开箱即用的多语言和跨语言验证,因为至少在理论上,验证器应该能够处理可以编译成IR的任何编程语言(及其组合)的程序。然而,在实践中,据我们所知,没有人探索过这种新语言集成的可行性和易用性。在本文中,我们提供了一个在基于IR的验证工具流中添加对新语言的支持的过程。使用我们的过程,我们扩展了SMACK验证器原型支持6种其他语言。我们通过几个案例研究来评估扩展的质量,并详细描述我们的经验,以指导今后在这方面的努力。
整个系列请参见[Zbl 1429.68006].

理学硕士:

68牛顿 编译理论
68N15 程序设计语言理论
68Q60型 规范和验证(程序逻辑、模型检查等)
PDF格式 BibTeX公司 XML 引用
全文: 内政部