Destination Calculus: A Linear 𝜆-Calculus for Purely Functional Memory Writes

Destination passing —aka. out parameters— is taking a parameter to fill rather than returning a result from a function. Due to its apparently imperative nature, destination passing has struggled to find its way to pure functional programming. In this paper, we present a pure functional calculus with destinations at its core. Our calculus subsumes all the similar systems, and can be used to reason about their correctness or extension. In addition, our calculus can express programs that were previously not known to be expressible in a pure language. This is guaranteed by a modal type system where modes are used to manage both linearity and scopes. Type safety of our core calculus was proved formally with the Coq proof assistant.

Authors

Institutions

Publication Details

Journal
Proceedings of the ACM on Programming Languages
Published
2025-04-09
DOI
https://doi.org/10.1145/3720423
Citations
1
Primary Topic
Logic, programming, and type systems
Type
article
Field-Weighted Citation Impact
2.48
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Destination Calculus: A Linear 𝜆-Calculus for Purely Functional Memory Writes

Arnaud Spiwack, Thomas Bagrel
1 citations
Proceedings of the ACM on Programming Languages
Logic, programming, and type systems
2.48
article

Destination Calculus: A Linear 𝜆-Calculus for Purely Functional Memory Writes

Arnaud Spiwack, Thomas Bagrel
article en
1 citations

Abstract

Destination passing —aka. out parameters— is taking a parameter to fill rather than returning a result from a function. Due to its apparently imperative nature, destination passing has struggled to find its way to pure functional programming. In this paper, we present a pure functional calculus with destinations at its core. Our calculus subsumes all the similar systems, and can be used to reason about their correctness or extension. In addition, our calculus can express programs that were previously not known to be expressible in a pure language. This is guaranteed by a modal type system where modes are used to manage both linearity and scopes. Type safety of our core calculus was proved formally with the Coq proof assistant.

Proceedings of the ACM on Programming LanguagesVol. 9(OOPSLA1)
Laboratoire Lorrain de Recherche en Informatique et ses Applications (FR), Centre Inria de l'Université de Lorraine (FR)
Openalex Percentile: Top 11%
Logic, programming, and type systems
2.48
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.