Formulog: Datalog for SMT-Based Static Analysis

被引:15
作者
Bembenek, Aaron [1 ]
Greenberg, Michael [2 ]
Chong, Stephen [1 ]
机构
[1] Harvard Univ, Cambridge, MA 02138 USA
[2] Pomona Coll, Claremont, CA 91711 USA
来源
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL | 2020年 / 4卷 / OOPSLA期
关键词
Datalog; SMT solving; SOFTWARE MODEL CHECKING; SYMBOLIC EXECUTION; PROGRAM;
D O I
10.1145/3428209
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页数:31
相关论文
共 80 条
[1]   An Overview of the Saturn Project [J].
Aiken, Alex ;
Bugrara, Suhabe ;
Dillig, Isil ;
Dillig, Thomas ;
Hackett, Brian ;
Hawkins, Peter .
PASTE'07 PROCEEDINGS OF THE 2007 ACM SIGPLAN- SIGSOFT WORKSHOP ON PROGRAM ANALYSIS FOR SOFTWARE TOOLS & ENGINEERING, 2007, :43-48
[2]   Constraint-Based Synthesis of Datalog Programs [J].
Albarghouthi, Aws ;
Koutris, Paraschos ;
Naik, Mayur ;
Smith, Calvin .
PRINCIPLES AND PRACTICE OF CONSTRAINT PROGRAMMING (CP 2017), 2017, 10416 :689-706
[3]  
[Anonymous], 1957, J SYMBOLIC LOGIC
[4]   Functional Logic Programming [J].
Antoy, Sergio ;
Hanus, Michael .
COMMUNICATIONS OF THE ACM, 2010, 53 (04) :74-85
[5]  
Apt K.R., 1988, Foundations of Deductive Databases and Logic Programming, P89, DOI [10.1016/B978-0-934613-40-8.50006-3, DOI 10.1016/B978-0-934613-40-8.50006-3]
[6]   Design and Implementation of the LogicBlox System [J].
Aref, Molham ;
ten Cate, Balder ;
Green, Todd J. ;
Kimelfeld, Benny ;
Olteanu, Dan ;
Pasalic, Emir ;
Veldhuizen, Todd L. ;
Washburn, Geoffrey .
SIGMOD'15: PROCEEDINGS OF THE 2015 ACM SIGMOD INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA, 2015, :1371-1382
[7]   Seminaive Evaluation for a Higher-Order Functional Language [J].
Arntzenius, Michael ;
Krishnaswami, Neel .
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2020, 4 (04)
[8]   Datafun: A Functional Datalog [J].
Arntzenius, Michael ;
Krishnaswami, Neelakantan R. .
ACM SIGPLAN NOTICES, 2016, 51 (09) :214-227
[9]  
Avgustinov P., 2016, P 30 EUR C OBJ OR PR, DOI DOI 10.4230/LIPICS.ECOOP.2016.2
[10]  
Bancilhon Francois., 1986, KNOWLEDGE BASE MANAG, P165, DOI DOI 10.1007/978-1-4612-4980-1_17