Seminaïve evaluation for a higher-order functional language

12Citations
Citations of this article
19Readers
Mendeley users who have this article in their library.

Abstract

One of the workhorse techniques for implementing bottom-up Datalog engines is seminaïve evaluation. This optimization improves the performance of Datalog's most distinctive feature: recursively defined predicates. These are computed iteratively, and under a naïve evaluation strategy, each iteration recomputes all previous values. Seminaïve evaluation computes a safe approximation of the difference between iterations. This can asymptotically improve the performance of Datalog queries. Seminaïve 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 seminaïve 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.

Cite

CITATION STYLE

APA

Arntzenius, M., & Krishnaswami, N. (2020). Seminaïve evaluation for a higher-order functional language. Proceedings of the ACM on Programming Languages, 4(POPL). https://doi.org/10.1145/3371090

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free