当前位置: X-MOL 学术arXiv.cs.PL › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Formulog: Datalog for SMT-Based Static Analysis (Extended Version)
arXiv - CS - Programming Languages Pub Date : 2020-09-17 , DOI: arxiv-2009.08361
Aaron Bembenek (1), Michael Greenberg (2), Stephen Chong (1) ((1) Harvard University, (2) Pomona College)

Satisfiability modulo theories (SMT) solving has become a critical part of many static analyses, including symbolic execution, refinement type checking, and model checking. We propose Formulog, a domain-specific language that makes it possible to write a range of SMT-based static analyses in a way that is both close to their formal specifications and amenable to high-level optimizations and efficient evaluation. Formulog extends the logic programming language Datalog with a first-order functional language and mechanisms for representing and reasoning about SMT formulas; a novel type system supports the construction of expressive formulas, while ensuring that neither normal evaluation nor SMT solving goes wrong. Our case studies demonstrate that a range of SMT-based analyses can naturally and concisely be encoded in Formulog, and that -- thanks to this encoding -- high-level Datalog-style optimizations can be automatically and advantageously applied to these analyses.

中文翻译:

Formulog:用于基于 SMT 的静态分析的数据日志(扩展版)

可满足性模理论 (SMT) 求解已成为许多静态分析的关键部分,包括符号执行、细化类型检查和模型检查。我们提出了 Formulog,这是一种特定于领域的语言,可以以接近其正式规范且适合高级优化和有效评估的方式编写一系列基于 SMT 的静态分析。Formulog 扩展了逻辑编程语言 Datalog,使用一阶函数语言和机制来表示和推理 SMT 公式;一个新的类型系统支持表达公式的构建,同时确保正常评估和 SMT 求解都不会出错。我们的案例研究表明,一系列基于 SMT 的分析可以自然而简洁地用 Formulog 编码,
更新日期:2020-10-19
down
wechat
bug