English
Related papers

Related papers: Reasoning about the garden of forking paths

200 papers

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

Monads have become a powerful tool for structuring effectful computations in functional programming, because they make the order of effects explicit. When translating pure code to a monadic version, we need to specify evaluation order…

Programming Languages · Computer Science 2012-02-15 Tomas Petricek

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

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

The existing call-by-need lambda calculi describe lazy evaluation via equational logics. A programmer can use these logics to safely ascertain whether one term is behaviorally equivalent to another or to determine the value of a lazy…

Programming Languages · Computer Science 2012-01-19 Stephen Chang , Matthias Felleisen

Linguistic theories formulated in the architecture of {\sc hpsg} can be very precise and explicit since {\sc hpsg} provides a formally well-defined setup. However, when querying a faithful implementation of such an explicit theory, the…

cmp-lg · Computer Science 2008-02-03 Thilo Götz , Walt Detmar Meurers

One can perform equational reasoning about computational effects with a purely functional programming language thanks to monads. Even though equational reasoning for effectful programs is desirable, it is not yet mainstream. This is partly…

Logic in Computer Science · Computer Science 2025-01-15 Reynald Affeldt , Jacques Garrigue , Takafumi Saikawa

We present $\textbf{calf}$, a $\textbf{c}$ost-$\textbf{a}$ware $\textbf{l}$ogical $\textbf{f}$ramework for studying quantitative aspects of functional programs. Taking inspiration from recent work that reconstructs traditional aspects of…

Programming Languages · Computer Science 2021-10-11 Yue Niu , Jonathan Sterling , Harrison Grodin , Robert Harper

We give a categorical semantics for a call-by-value linear lambda calculus. Such a lambda calculus was used by Selinger and Valiron as the backbone of a functional programming language for quantum computation. One feature of this lambda…

Logic in Computer Science · Computer Science 2008-01-08 Peter Selinger , Benoît Valiron

We show that streams and lazy data structures are a natural idiom for programming with infinite-dimensional Bayesian methods such as Poisson processes, Gaussian processes, jump processes, Dirichlet processes, and Beta processes. The crucial…

Programming Languages · Computer Science 2022-12-15 Swaraj Dash , Younesse Kaddar , Hugo Paquet , Sam Staton

Probabilistic programming and the formal analysis of probabilistic algorithms are active areas of research, driven by the widespread use of randomness to improve performance. While functional correctness has seen substantial progress,…

Logic in Computer Science · Computer Science 2025-08-21 Matthias Hetzenberger , Georg Moser , Florian Zuleger

The Lax Logical Framework, LLFP, was introduced, by a team including the last two authors, to provide a conceptual framework for integrating different proof development tools, thus allowing for external evidence and for postponing,…

Logic in Computer Science · Computer Science 2019-10-25 Fabio Alessi , Alberto Ciaffaglione , Pietro Di Gianantonio , Furio Honsell , Marina Lenisa

Lazy evaluation is a powerful technique that can optimize code execution by deferring evaluations until their results are required, thus enhancing efficiency. In most modern programming languages, like R, lazy evaluation is commonly applied…

Programming Languages · Computer Science 2026-01-16 Chen Ling , Yachen Wang

CoAlgebraic Logic Programming (CoALP) is a dialect of Logic Programming designed to bring a more precise compile-time and run-time analysis of termination and productivity for recursive and corecursive functions in Logic Programming. Its…

Programming Languages · Computer Science 2014-05-21 Jónathan Heras , Ekaterina Komendantskaya , Martin Schmidt

Reasoning is critical for large language models (LLMs) to excel in a wide range of tasks. While methods like Chain-of-Thought (CoT) reasoning and enhance LLM performance by decomposing problems into intermediate steps, they also incur…

Computation and Language · Computer Science 2025-06-03 Tingxu Han , Zhenting Wang , Chunrong Fang , Shiyu Zhao , Shiqing Ma , Zhenyu Chen

We present Decalf, a directed, effectful cost-aware logical framework for studying quantitative aspects of functional programs with effects. Like Calf, the language is based on an internal phase distinction between the behavior of a program…

Programming Languages · Computer Science 2026-05-22 Harrison Grodin , Yue Niu , Jonathan Sterling , Robert Harper

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

A standard informal method for analyzing the asymptotic complexity of a program is to extract a recurrence that describes its cost in terms of the size of its input, and then to compute a closed-form upper bound on that recurrence. We give…

Programming Languages · Computer Science 2022-08-09 Norman Danner , Daniel R. Licata

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

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
‹ Prev 1 2 3 10 Next ›