skip to main content
10.1145/3236950.3236972acmotherconferencesArticle/Chapter ViewAbstractPublication PagesppdpConference Proceedingsconference-collections
research-article

Pattern Matching and Fixed Points: Resource Types and Strong Call-By-Need: Extended Abstract

Published: 03 September 2018 Publication History

Abstract

Resource types are types that statically quantify some aspect of program execution. They come in various guises; this paper focusses on a manifestation of resource types known as non-idempotent intersection types. We use them to characterize weak normalisation for a type-erased lambda calculus for the Calculus of Inductive Construction (λe), as introduced by Gregoire and Leroy. The λe calculus consists of the lambda calculus together with constructors, pattern matching and a fixed-point operator. The characterization is then used to prove the completeness of a strong call-by-need strategy for λe. This strategy operates on open terms: rather than having evaluation stop when it reaches an abstraction, as in weak call-by-need, it computes strong normal forms by admitting reduction inside the body of abstractions and substitutions. Moreover, argument evaluation is by-need: arguments are evaluated when needed and at most once. Such a notion of reduction is of interest in areas such as partial evaluation and proof-checkers such as Coq.

References

[1]
Beniamino Accattoli, Pablo Barenbaum, and Damiano Mazza. 2014. Distilling abstract machines. In ICFP'14, Gothenburg, Sweden, September 1-3, 2014. ACM, 363--376.
[2]
Beniamino Accattoli, Pablo Barenbaum, and Damiano Mazza. 2015. A Strong Distillery. In APLAS'15, Pohang, South Korea, November 30 - December 2, 2015. (LNCS), Xinyu Feng and Sungwoo Park (Eds.), Vol. 9458. Springer Verlag, 231--250.
[3]
Beniamino Accattoli and Bruno Barras. 2017. The Negligible and Yet Subtle Cost of Pattern Matching. In APLAS 2017, Suzhou, China, November 27-29, 2017, Proceedings (Lecture Notes in Computer Science), Bor-Yuh Evan Chang (Ed.), Vol. 10695. Springer, 426--447.
[4]
Beniamino Accattoli and Claudio Sacerdoti Coen. 2017. On the value of variables. Inf. Comput. 255 (2017), 224--242.
[5]
Beniamino Accattoli and Giulio Guerrieri. 2016. Open Call-by-Value. In APLAS'16, Hanoi, Vietnam, November 21-23, 2016. (LNCS), Atsushi Igarashi (Ed.), Vol. 10017. Springer, 206--226.
[6]
Beniamino Accattoli and Delia Kesner. 2010. The Structural lambda-Calculus. In CSL'10, 19th Annual Conference of the EACSL, Brno, Czech Republic, August 23-27, 2010. (LNCS), Anuj Dawar and Helmut Veith (Eds.), Vol. 6247. Springer Verlag, 381--395.
[7]
Zena M. Ariola and Matthias Felleisen. 1997. The Call-By-Need Lambda Calculus. Journal of Functional Programming 7, 3 (1997), 265--301.
[8]
Zena M. Ariola, Matthias Felleisen, John Maraist, Martin Odersky, and Philip Wadler. 1995. The Call-by-Need Lambda Calculus. In POPL'95, San Francisco, California, USA, January 23-25, 1995, Ron K. Cytron and Peter Lee (Eds.). ACM Press, 233--246.
[9]
Thibaut Balabonski, Pablo Barenbaum, Eduardo Bonelli, and Delia Kesner. 2017. Foundations of strong call by need. PACMPL 1, ICFP (2017), 20:1-20:29.
[10]
Alexis Bernadet. 2014. Types intersections non-idempotents pour rafiner la normalisation forte avec des informations quantitatives. Ph.D. Dissertation. École Polytechnique.
[11]
Mathieu Boespflug, Maxime Dénès, and Benjamin Grégoire. 2011. Full Reduction at Full Throttle. In CPP'11, Kenting, Taiwan, December 7-9, 2011. (LNCS), Jean-Pierre Jouannaud and Zhong Shao (Eds.), Vol. 7086. Springer, 362--377.
[12]
Antonio Bucciarelli, Delia Kesner, and Daniel Ventura. 2017. Non-idempotent intersection types for the Lambda-Calculus. Logic Journal of the IGPL 25, 4 (2017), 431--464.
[13]
Stephen Chang and Matthias Felleisen. 2012. The Call-by-Need Lambda Calculus, Revisited. In ESOP 12, ETAPS 2012, Tallinn, Estonia, March 24 - April 1, 2012. (LNCS), Helmut Seidl (Ed.), Vol. 7211. Springer Verlag, 128--147.
[14]
Thierry Coquand. 1996. An Algorithm for Type-Checking Dependent Types. Sci. Comput. Program. 26, 1-3 (1996), 167--177.
[15]
Pierre Crégut. 1990. An Abstract Machine for Lambda-Terms Normalization. In LISP and Functional Programming. ACM, 333--340.
[16]
Pierre Crégut. 2007. Strongly reducing variants of the Krivine abstract machine. Higher-Order and Symbolic Computation 20, 3 (2007), 209--230.
[17]
Daniel de Carvalho. 2009. Execution Time of lambda-Terms via Denotational Semantics and Intersection Types. CoRR abs/0905.4251 (2009), 1--36.
[18]
Thomas Ehrhard and Laurent Regnier. 2006. Böhm Trees, Krivine's Machine and the Taylor Expansion of Lambda-Terms. In CiE'06, Swansea, UK, June 30-July 5, 2006. (LNCS), Vol. 3988. Springer Verlag, 186--197.
[19]
Álvaro García-Pérez, Pablo Nogueira, and Juan José Moreno-Navarro. 2013. Deriving the full-reducing Krivine machine from the small-step operational semantics of normal order. In PPDP '13, Madrid, Spain, September 16-18, 2013. ACM, 85--96.
[20]
Philippa Gardner. 1994. Discovering Needed Reductions Using Type Theory. In TACS'94 (LNCS), Masami Hagiya and John C. Mitchell (Eds.), Vol. 789. Springer Verlag, 555--574.
[21]
Benjamin Grégoire and Xavier Leroy. 2002. A compiled implementation of strong reduction. In ICFP '02, Pittsburgh, Pennsylvania, USA, October 4-6, 2002., Mitchell Wand and Simon L. Peyton Jones (Eds.). ACM, 235--246.
[22]
Peter Henderson and James H. Morris. 1976. A Lazy Evaluator. In POPL '76, Atlanta, Georgia, USA, January 1976, Susan L. Graham, Robert M. Graham, Michael A. Harrison, William I. Grosky, and Jeffrey D. Ullman (Eds.). ACM Press, 95--103.
[23]
Delia Kesner. 2016. Reasoning About Call-by-need by Means of Types. In FOSSACS'16, ETAPS 2016, Eindhoven, The Netherlands, April 2-8, 2016. (LNCS), Bart Jacobs and Christof Löding (Eds.), Vol. 9634. Springer Verlag, 424--441.
[24]
John Launchbury. 1993. A Natural Semantics for Lazy Evaluation. In POPL '93, Charleston,South Carolina,USA,January 1993. ACM Press, 144--154.
[25]
John Maraist, Martin Odersky, and Philip Wadler. 1998. The Call-by-Need Lambda Calculus. Journal of Functional Programming 8, 3 (1998), 275--317.
[26]
Robin Milner. 2007. Local Bigraphs and Confluence: Two Conjectures: (Extended Abstract). Electronic Notes in Theoretical Computer Science 175, 3 (2007), 65--73.
[27]
Christopher P. Wadsworth. 1971. Semantics and Pragmatics of the Lambda Calculus. Ph.D. Dissertation. Oxford University.

Cited By

View all
  • (2024)Extending the Quantitative Pattern-Matching ParadigmProgramming Languages and Systems10.1007/978-981-97-8943-6_5(84-105)Online publication date: 23-Oct-2024
  • (2022)A simple and efficient implementation of strong call by need by an abstract machineProceedings of the ACM on Programming Languages10.1145/35498226:ICFP(109-136)Online publication date: 31-Aug-2022
  • (2019)Types by NeedProgramming Languages and Systems10.1007/978-3-030-17184-1_15(410-439)Online publication date: 6-Apr-2019
  1. Pattern Matching and Fixed Points: Resource Types and Strong Call-By-Need: Extended Abstract

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Other conferences
      PPDP '18: Proceedings of the 20th International Symposium on Principles and Practice of Declarative Programming
      September 2018
      306 pages
      ISBN:9781450364416
      DOI:10.1145/3236950
      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      In-Cooperation

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 03 September 2018

      Permissions

      Request permissions for this article.

      Check for updates

      Qualifiers

      • Research-article
      • Research
      • Refereed limited

      Conference

      PPDP '18

      Acceptance Rates

      PPDP '18 Paper Acceptance Rate 22 of 39 submissions, 56%;
      Overall Acceptance Rate 230 of 486 submissions, 47%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)1
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 17 Feb 2025

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)Extending the Quantitative Pattern-Matching ParadigmProgramming Languages and Systems10.1007/978-981-97-8943-6_5(84-105)Online publication date: 23-Oct-2024
      • (2022)A simple and efficient implementation of strong call by need by an abstract machineProceedings of the ACM on Programming Languages10.1145/35498226:ICFP(109-136)Online publication date: 31-Aug-2022
      • (2019)Types by NeedProgramming Languages and Systems10.1007/978-3-030-17184-1_15(410-439)Online publication date: 6-Apr-2019

      View Options

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Figures

      Tables

      Media

      Share

      Share

      Share this Publication link

      Share on social media