Seminaive Evaluation for a Higher-Order Functional Language

被引:9
作者
Arntzenius, Michael [1 ]
Krishnaswami, Neel [2 ]
机构
[1] Univ Birmingham, Sch Comp Sci, Birmingham B15 2TT, W Midlands, England
[2] Univ Cambridge, Dept Comp Sci & Technol, Cambridge CB2 1TN, England
来源
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL | 2020年 / 4卷 / 04期
关键词
Datafun; Datalog; functional languages; relational languages; seminaive evaluation; incremental computation;
D O I
10.1145/3371090
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
One of the workhorse techniques for implementing bottom-up Datalog engines is seminaive evaluation. This optimization improves the performance of Datalog's most distinctive feature: recursively defined predicates. These are computed iteratively, and under a naive evaluation strategy, each iteration recomputes all previous values. Seminaive evaluation computes a safe approximation of the difference between iterations. This can asymptotically improve the performance of Datalog queries. Seminaive evaluation is defined partly as a program transformation and partly as a modified iteration strategy, and takes advantage of the first-order nature of Datalog code. This paper extends the seminaive transformation to higher-order programs written in the Datafun language, which extends Datalog with features like first-class relations, higher-order functions, and datatypes like sum types.
引用
收藏
页数:28
相关论文
共 28 条
[1]   THE PARALLEL COMPLEXITY OF SIMPLE LOGIC PROGRAMS [J].
AFRATI, F ;
PAPADIMITRIOU, CH .
JOURNAL OF THE ACM, 1993, 40 (04) :891-916
[2]  
Alechina N., 2001, Computer Science Logic. 15th International Workshop, CSL 2001 10th Annual Conference of the EACSL. Proceedings (Lecture Notes in Computer Science Vol.2142), P292
[3]   Fixing Incremental Computation Derivatives of Fixpoints, and the Recursive Semantics of Datalog [J].
Alvarez-Picallo, Mario ;
Eyers-Taylor, Alex ;
Jones, Michael Peyton ;
Ong, C-H Luke .
PROGRAMMING LANGUAGES AND SYSTEMS, ESOP 2019: 28TH EUROPEAN SYMPOSIUM ON PROGRAMMING, 2019, 11423 :525-552
[4]  
Alvaro P, 2011, P ASILOMAR CA 5 BIEN, P249
[5]   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
[6]  
Arntzenius M., 2017, STATIC DIFFERENTIATI
[7]   Datafun: A Functional Datalog [J].
Arntzenius, Michael ;
Krishnaswami, Neelakantan R. .
ACM SIGPLAN NOTICES, 2016, 51 (09) :214-227
[8]  
Bancilhon Francois., 1986, KNOWLEDGE BASE MANAG, P165, DOI DOI 10.1007/978-1-4612-4980-1_17
[9]  
Bancilhon Francois, 1985, P 5 ACM SIGACT SIGMO, P1, DOI DOI 10.1145/6012.15399
[10]   SecPAL: Design and semantics of a decentralized authorization language [J].
Becker, Moritz Y. ;
Fournet, Cedric ;
Gordon, Andrew D. .
JOURNAL OF COMPUTER SECURITY, 2010, 18 (04) :619-665