Classical by-need - Inria - Institut national de recherche en sciences et technologies du numérique
Conference Papers Year : 2016

Classical by-need

Abstract

Call-by-need calculi are complex to design and reason with. When adding control effects, the very notion of canonicity is irremediably lost, the resulting calculi being necessarily ad hoc. This calls for a design of call-by-need guided by logical rather than operational considerations. Ariola et al proposed such an extension of call-by-need with control making use of Curien and Herbelin's duality of computation framework. In this paper, Classical by-need is developed as an alternative extension of call-by-need with control, better-suited for a programming-oriented reader. This method is proof-theoretically oriented by relying on linear head reduction (LHR) -- an evaluation strategy coming from linear logic -- and on the lambda-mu-calculus -- a classical extension of the lambda-calculus. More precisely, the paper contains three main contributions: - LHR is first reformulated by introducing closure contexts and extended to the lambda-mu-calculus; - it is then shown how to derive a call-by-need calculus from LHR. The result is compared with standard call-by-need calculi, namely those of Ariola--Felleisen and Chang--Felleisen; - it is finally shown how to lift the previous item to classical logic, that is from the lambda-calculus to the lambda-mu-calculus, providing a classical by-need calculus, that is a lazy lambda-mu-calculus. The result is compared with the call-by-need with control of Ariola et al.
No file

Dates and versions

hal-01257348 , version 1 (16-01-2016)

Identifiers

  • HAL Id : hal-01257348 , version 1

Cite

Pierre-Marie Pédrot, Alexis Saurin. Classical by-need. European Symposium on Programming, Apr 2016, Eindhoven, Netherlands. ⟨hal-01257348⟩
163 View
0 Download

Share

More