Skip to main navigation Skip to search Skip to main content

Functional programming for dynamic and large data with self-adjusting computation

  • Max Planck Institute for Software Systems
  • Carnegie Mellon University

Research output: Contribution to journalArticlepeer-review

3 Citations (Scopus)

Abstract

Combining type theory, language design, and empirical work, we present techniques for computing with large and dynamically changing datasets. Based on lambda calculus, our techniques are suitable for expressing a diverse set of algorithms on large datasets and, via self-adjusting computation, enable computations to respond automatically to changes in their data. To improve the scalability of self-adjusting computation, we present a type system for precise dependency tracking that minimizes the time and space for storing dependency metadata. The type system eliminates an important assumption of prior work that can lead to recording spurious dependencies. We present a type-directed translation algorithm that generates correct self-adjusting programs without relying on this assumption. We then show a probabilistic-chunking technique to further decrease space usage by controlling the fundamental spacetime tradeoff in self-adjusting computation. We implement and evaluate these techniques, showing promising results on challenging benchmarks involving large graphs.

Original languageEnglish
Pages (from-to)227-240
Number of pages14
JournalACM SIGPLAN Notices
Volume49
Issue number9
DOIs
Publication statusPublished - Sept 2014

Keywords

  • Granularity control
  • Incremental graph algorithms
  • Information-flow type system
  • Performance
  • Self-adjusting computation

Fingerprint

Dive into the research topics of 'Functional programming for dynamic and large data with self-adjusting computation'. Together they form a unique fingerprint.

Cite this