arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1809.06336cs.PL
收藏

用归纳精化类型验证高级变换

Verification of High-Level Transformations with Inductive Refinement Types

Ahmad Salim Al-Sibahi, Thomas P. Jensen, Aleksandar S. Dimovski, Andrzej Wasowski

摘要:

像Rascal这样的高级转换语言包括用于操作大型抽象语法树的表达功能:第一类遍历,表达模式匹配,回溯和广义迭代器。我们提出了一个抽象的解释工具,Rabit的设计和实现,用于验证归纳类型和形状属性的转换写在这样的语言。我们描述了如何执行抽象解释的基础上操作语义,特别是集中在分析时所产生的挑战的表达遍历和模式匹配。最后,我们对Rabit进行了一系列转换(规范化、去糖、重构、代码生成器、类型推断等)。这表明我们可以有效地验证所述属性。

英文摘要:

High-level transformation languages like Rascal include expressive features for manipulating large abstract syntax trees: first-class traversals, expressive pattern matching, backtracking and generalized iterators. We present the design and implementation of an abstract interpretation tool, Rabit, for verifying inductive type and shape properties for transformations written in such languages. We describe how to perform abstract interpretation based on operational semantics, specifically focusing on the challenges arising when analyzing the expressive traversals and pattern matching. Finally, we evaluate Rabit on a series of transformations (normalization, desugaring, refactoring, code generators, type inference, etc.) showing that we can effectively verify stated properties.

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

↑