合成抽象变换器
摘要:自动创建抽象变换器的问题在本文中得到解决。我们提出的方法自动化了静态分析器的构建,类似于$ extit {yacc} $自动化解析器的构建方式。我们的方法将问题视为一个程序综合问题。用户提供给定操作$ extit {op} $的具体语义的规范,要由分析器使用的抽象域A的规范以及要表示抽象变换器的特定领域语言$ L $的语义。作为输出,我们的方法在抽象域A中为$ extit {op} $创建了一个$L$-变换器,这个$L$-变换器在$L$中表示为一个"$L$-变换器 over A"。此外,获得的抽象变换器是$ extit {op} $在抽象域A上的最精确的$L$-变换器;也就是说,没有其他比它更精确的$L$-变换器。 我们使用名为AMURTH的工具实现了我们的方法。我们使用AMURTH为两个现有分析器中使用的替代抽象变换器集合创建了一组替换抽象变换器,并获得了基本相同的性能。然而,当我们将现有变换器与使用AMURTH获取的变换器进行比较时,我们发现了四个现有变换器是不完备的,这表明使用手动创建的变换器存在风险。
作者:Pankaj Kumar Kalita, Sujit Kumar Muduli, Loris D'Antoni, Thomas Reps and Subhajit Roy
论文ID:2105.00493
分类:Programming Languages
分类简称:cs.PL
提交时间:2022-08-16