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 2018Publication 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarCross RefCross Ref
  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.Google ScholarGoogle Scholar
  4. Beniamino Accattoli and Claudio Sacerdoti Coen. 2017. On the value of variables. Inf. Comput. 255 (2017), 224--242.Google ScholarGoogle ScholarCross RefCross Ref
  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.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Zena M. Ariola and Matthias Felleisen. 1997. The Call-By-Need Lambda Calculus. Journal of Functional Programming 7, 3 (1997), 265--301. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Alexis Bernadet. 2014. Types intersections non-idempotents pour rafiner la normalisation forte avec des informations quantitatives. Ph.D. Dissertation. École Polytechnique.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarCross RefCross Ref
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Thierry Coquand. 1996. An Algorithm for Type-Checking Dependent Types. Sci. Comput. Program. 26, 1-3 (1996), 167--177. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Pierre Crégut. 1990. An Abstract Machine for Lambda-Terms Normalization. In LISP and Functional Programming. ACM, 333--340. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Pierre Crégut. 2007. Strongly reducing variants of the Krivine abstract machine. Higher-Order and Symbolic Computation 20, 3 (2007), 209--230. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Daniel de Carvalho. 2009. Execution Time of lambda-Terms via Denotational Semantics and Intersection Types. CoRR abs/0905.4251 (2009), 1--36.Google ScholarGoogle Scholar
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarCross RefCross Ref
  24. John Launchbury. 1993. A Natural Semantics for Lazy Evaluation. In POPL '93, Charleston,South Carolina,USA,January 1993. ACM Press, 144--154. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. John Maraist, Martin Odersky, and Philip Wadler. 1998. The Call-by-Need Lambda Calculus. Journal of Functional Programming 8, 3 (1998), 275--317. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Robin Milner. 2007. Local Bigraphs and Confluence: Two Conjectures: (Extended Abstract). Electronic Notes in Theoretical Computer Science 175, 3 (2007), 65--73. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Christopher P. Wadsworth. 1971. Semantics and Pragmatics of the Lambda Calculus. Ph.D. Dissertation. Oxford University.Google ScholarGoogle Scholar
  1. Pattern Matching and Fixed Points: Resource Types and Strong Call-By-Need: Extended Abstract

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • 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

        Copyright © 2018 ACM

        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]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 3 September 2018

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed limited

        Acceptance Rates

        PPDP '18 Paper Acceptance Rate22of39submissions,56%Overall Acceptance Rate230of486submissions,47%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader