skip to main content
research-article

The sequential semantics of producer effect systems

Published:23 January 2013Publication History
Skip Abstract Section

Abstract

Effects are fundamental to programming languages. Even the lambda calculus has effects, and consequently the two famous evaluation strategies produce different semantics. As such, much research has been done to improve our understanding of effects. Since Moggi introduced monads for his computational lambda calculus, further generalizations have been designed to formalize increasingly complex computational effects, such as indexed monads followed by layered monads followed by parameterized monads. This succession prompted us to determine the most general formalization possible. In searching for this formalization we came across many surprises, such as the insufficiencies of arrows, as well as many unexpected insights, such as the importance of considering an effect as a small component of a whole system rather than just an isolated feature. In this paper we present our semantic formalization for producer effect systems, which we call a productor, and prove its maximal generality by focusing on only sequential composition of effectful computations, consequently guaranteeing that the existing monadic techniques are specializations of productors.

Skip Supplemental Material Section

Supplemental Material

r1d1_talk4.mp4

References

  1. Martín Abadi. Access control in a core calculus of dependency. In ICFP, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Robert Atkey. Parameterised notions of computation. JFP, 19:335--376, July 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Nick Benton, John Hughes, and Eugenio Moggi. Monads and effects. In International Summer School on Applied Semantics, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Olivier Danvy and Andrzej Filinski. A functional abstraction of typed contexts. Technical report, University of Copenhagen, 1989.Google ScholarGoogle Scholar
  5. Andrzej Filinski. Representing layered monads. In POPL, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Andrzej Filinski. Monads in action. In POPL, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Roger Godement. Topologie Algébrique et Théorie des Faisceaux. Hermann, 1958.Google ScholarGoogle Scholar
  8. John Hughes. Generalising monads to arrows. Science of Computer Programming, 37(1--3):67--111, May 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Martin Hyland, Gordon Plotkin, and John Power. Combining effects: Sum and tensor. Theoretical Computer Science, 357(1):70--99, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Bart Jacobs, Chris Heunen, and Ichiro Hasuo. Categorical semantics for arrows. JFP, 19:403--438, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Mark P. Jones and Luc Duponcheel. Composing monads. Technical report, Yale University, New Haven, CT, USA, December 1993.Google ScholarGoogle Scholar
  12. Simon Peyton Jones and Philip Wadler. Imperative functional programming. In POPL, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Richard B. Kieburtz. Taming effects with monadic typing. In ICFP, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. David J. King and Philip Wadler. Combining monads. In ETAPS, 1992.Google ScholarGoogle Scholar
  15. Tom Leinster. Higher Operads, Higher Categories. Cambridge University Press, 2004.Google ScholarGoogle Scholar
  16. Sheng Liang, Paul Hudak, and Mark Jones. Monad transformers and modular interpreters. In POPL, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. John M. Lucassen and David K. Gifford. Polymorphic effect systems. In POPL, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Christoph Lüth and Neil Ghani. Composing monads using coproducts. ACM SIGPLAN Notices, 37(9):133--144, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Daniel Marino and Todd Millstein. A generic type-and-effect system. In TLDI, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Eugenio Moggi. Computational lambda-calculus and monads. In LICS, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Iulian Neamtiu, Michael Hicks, Jeffrey S. Foster, and Polyvios Pratikakis. Contextual effects for version-consistent dynamic software updating and safe concurrent programming. In POPL, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Flemming Nielson and Hanne Riis Nielson. Type and effect systems. In ACM Computing Surveys, 1999.Google ScholarGoogle Scholar
  23. Hanne Riis Nielson, Flemming Nielson, and Torben Amtoft. Polymorphic subtyping for effect analysis: The static semantics. In LOMAPS, 1997.Google ScholarGoogle ScholarCross RefCross Ref
  24. Gordon Plotkin and John Power. Notions of computation determine monads. In FoSSaCS, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. John Power and Edmund Robinson. Premonoidal categories and notions of computation. Mathematical Structures in Computer Science, 7:453--468, October 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. John Power and Hayo Thielecke. Environments, continuation semantics and indexed categories. In TACS, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. John Power and Hayo Thielecke. Closed Freyd- and κ-categories. In ICAL, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. John C. Reynolds. Using category theory to design implicit conversions and generic operators. LNCS, 94:211--258, 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Nikhil Swamy, Nataliya Guts, Daan Leijen, and Michael Hicks. Lightweight monadic programming in ML. Technical report, Microsoft Research, 2011.Google ScholarGoogle Scholar
  30. Jean-Pierre Talpin. Theoretical and Practical Aspects of Type and Effect Inference. PhD thesis, École des Mines de Paris and University Paris VI, Paris, France, 1993.Google ScholarGoogle Scholar
  31. Jean-Pierre Talpin and Pierre Jouvelot. Polymorphic type, region and effect inference. JFP, 2:245--271, 1992.Google ScholarGoogle ScholarCross RefCross Ref
  32. Jean-Pierre Talpin and Pierre Jouvelot. The type and effect discipline. Information and Computation, 111(2):245--296, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Ross Tate. The sequential semantics of producer effect systems. Technical report, Cornell University, 2012.Google ScholarGoogle Scholar
  34. Andrew P. Tolmach. Optimizing ML using a hierarchy of monadic types. In Types in Compilation, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Philip Wadler. Comprehending monads. In LISP and Functional Programming, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Philip Wadler. The essence of functional programming. In POPL, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Philip Wadler. Monads and composable continuations. LISP and Symbolic Computation, 7:39--56, January 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Philip Wadler and Peter Thiemann. The marriage of effects and monads. Transactions on Computational Logic, 4(1):1--32, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Andrew K. Wright. Simple imperative polymorphism. LISP and Symbolic Computation, 8(4):343--355, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. The sequential semantics of producer effect systems

      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

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 48, Issue 1
        POPL '13
        January 2013
        561 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/2480359
        Issue’s Table of Contents
        • cover image ACM Conferences
          POPL '13: Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
          January 2013
          586 pages
          ISBN:9781450318327
          DOI:10.1145/2429069

        Copyright © 2013 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 23 January 2013

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!