Reference. Seminaïve evaluation for a higher-order functional language

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

Cite as @arntzenius-2019-seminaive (helia, typst) · \cite{arntzenius-2019-seminaive} (LaTeX)
BibTeX
bibtex · 11 lines
@article{arntzenius-2019-seminaive,
  author    = {Michael Arntzenius and
               Neel Krishnaswami},
  title     = {Semina{\"{\i}}ve evaluation for a higher-order functional language},
  journal   = {{PACMPL}},
  volume    = {4},
  number    = {{POPL}},
  pages     = {22:1--22:28},
  year      = {2020},,
  doi       = {10.1145/3371090},
}
hayagriva YAML (typst)
yaml · 16 lines
arntzenius-2019-seminaive:
  type: article
  title: Seminaïve evaluation for a higher-order functional language
  author:
  - Arntzenius, Michael
  - Krishnaswami, Neelakantan R.
  date: 2020
  page-range: 22:1–22:28
  serial-number:
    doi: 10.1145/3371090
  parent:
    type: periodical
    title: PACMPL
    publisher: Association for Computing Machinery (ACM)
    issue: POPL
    volume: 4
Cites 28 works (2 here)
With notes (2)

Datafun: a functional Datalog arntzenius-2016-datafun

PDF · DOI · pldb

A judgmental reconstruction of modal logic pfenning-2001-a

DOI
External (26)
arntzenius-2019-seminaive reference entries/refs/arntzenius-2019-seminaive/arntzenius-2019-seminaive.hel