English
Related papers

Related papers: The Call-by-need Lambda Calculus, Revisited

200 papers

The call-by-need lambda calculus provides an equational framework for reasoning syntactically about lazy evaluation. This paper examines its operational characteristics. By a series of reasoning steps, we systematically unpack the…

Programming Languages · Computer Science 2015-07-01 Ronald Garcia , Andrew Lumsdaine , Amr Sabry

To support the understanding of declarative probabilistic programming languages, we introduce a lambda-calculus with a fair binary probabilistic choice that chooses between its arguments with equal probability. The reduction strategy of the…

Logic in Computer Science · Computer Science 2022-05-31 David Sabel , Manfred Schmidt-Schauß , Luca Maio

Call-by-need evaluation for the lambda-calculus can be seen as merging the best of call-by-name and call-by-value, namely the wise erasing behaviour of the former and the wise duplicating behaviour of the latter. To better understand how…

Logic in Computer Science · Computer Science 2026-05-08 Beniamino Accattoli , Adrienne Lancelot

The elegant theory of the call-by-value lambda-calculus relies on weak evaluation and closed terms, that are natural hypotheses in the study of programming languages. To model proof assistants, however, strong evaluation and open terms are…

Logic in Computer Science · Computer Science 2016-09-21 Beniamino Accattoli , Giulio Guerrieri

We consider the probabilistic applicative bisimilarity (PAB), a coinductive relation comparing the applicative behaviour of probabilistic untyped lambda terms according to a specific operational semantics. This notion has been studied with…

Logic in Computer Science · Computer Science 2020-04-28 Gianluca Curzi , Michele Pagani

We present a call-by-need $\lambda$-calculus that enables strong reduction (that is, reduction inside the body of abstractions) and guarantees that arguments are only evaluated if needed and at most once. This calculus uses explicit…

Logic in Computer Science · Computer Science 2023-06-22 Thibaut Balabonski , Antoine Lanco , Guillaume Melquiond

The lambda calculus since more than half a century is a model and foundation of functional programming languages. However, lambda expressions can be evaluated with different reduction strategies and thus, there is no fixed cost model nor…

Programming Languages · Computer Science 2024-05-22 Tomasz Drab

The theory of the call-by-value lambda-calculus relies on weak evaluation and closed terms, that are natural hypotheses in the study of programming languages. To model proof assistants, however, strong evaluation and open terms are…

Logic in Computer Science · Computer Science 2017-02-02 Beniamino Accattoli , Giulio Guerrieri

A comparison of Landin's form of lambda calculus with Church's shows that, independently of the lambda calculus, there exists a mechanism for converting functions with arguments indexed by variables to the usual kind of function where the…

Programming Languages · Computer Science 2015-06-01 M. H. van Emden

Calculi with control operators have been studied to reason about control in programming languages and to interpret the computational content of classical proofs. To make these calculi into a real programming language, one should also…

Logic in Computer Science · Computer Science 2012-10-12 Robbert Krebbers

We define a variant of realizability where realizers are pairs of a term and a substitution. This variant allows us to prove the normalization of a simply-typed call-by-need $$\lambda$-$calculus with control due to Ariola et al. Indeed, in…

Logic in Computer Science · Computer Science 2018-03-05 Étienne Miquey , Hugo Herbelin

A non-deterministic call-by-need lambda-calculus \calc with case, constructors, letrec and a (non-deterministic) erratic choice, based on rewriting rules is investigated. A standard reduction is defined as a variant of left-most outermost…

Programming Languages · Computer Science 2007-05-23 Manfred Schmidt-Schauß , Michael Huber

This paper shows equivalence of several versions of applicative similarity and contextual approximation, and hence also of applicative bisimilarity and contextual equivalence, in LR, the deterministic call-by-need lambda calculus with…

Logic in Computer Science · Computer Science 2019-03-14 Manfred Schmidt-Schauß , David Sabel , Elena Machkasova

We define and study a term calculus implementing higher-order node replication. It is used to specify two different (weak) evaluation strategies: call-by-name and fully lazy call-by-need, that are shown to be observationally equivalent by…

Logic in Computer Science · Computer Science 2024-08-07 Delia Kesner , Loïc Peyrot , Daniel Ventura

We examine the relationship between the algebraic lambda-calculus, a fragment of the differential lambda-calculus and the linear-algebraic lambda-calculus, a candidate lambda-calculus for quantum computation. Both calculi are algebraic:…

Logic in Computer Science · Computer Science 2015-07-01 Ali Assaf , Alejandro Díaz-Caro , Simon Perdrix , Christine Tasson , Benoî t Valiron

Debugging lazy functional programs poses serious challenges. In support of the "stop, examine, and resume" debugging style of imperative languages, some debugging tools abandon lazy evaluation. Other debuggers preserve laziness but present…

Programming Languages · Computer Science 2011-08-25 Stephen Chang , John Clements , Eli Barzilay , Matthias Felleisen

This paper studies useful sharing, which is a sophisticated optimization for lambda-calculi, in the context of call-by-need evaluation in presence of open terms. Useful sharing turns out to be harder in call-by-need than in call-by-name or…

Logic in Computer Science · Computer Science 2021-10-29 Beniamino Accattoli , Maico Leberle

We propose a general framework for first-order functional logic programming, supporting lazy functions, non-determinism and polymorphic datatypes whose data constructors obey a set C of equational axioms. On top of a given C, we specify a…

Programming Languages · Computer Science 2007-05-23 Puri Arenas-Sanchez , Mario Rodriguez-Artalejo

We propose a call-by-value lambda calculus extended with a new construct inspired by abductive inference and motivated by the programming idioms of machine learning. Although syntactically simple the abductive construct has a complex and…

Programming Languages · Computer Science 2017-10-12 Koko Muroya , Steven Cheung , Dan R. Ghica

Lazy evaluation is a powerful tool that enables better compositionality and potentially better performance in functional programming, but it is challenging to analyze its computation cost. Existing works either require manually annotating…

Programming Languages · Computer Science 2024-07-24 Li-yao Xia , Laura Israel , Maite Kramarz , Nicholas Coltharp , Koen Claessen , Stephanie Weirich , Yao Li
‹ Prev 1 2 3 10 Next ›