Academia.eduAcademia.edu

Outline

An abstract monadic semantics for value recursion

2004, RAIRO - Theoretical Informatics and Applications

https://doi.org/10.1051/ITA:2004018

Abstract

This paper proposes an operational semantics for value recursion in the context of monadic metalanguages. Our technique for combining value recursion with computational effects works uniformly for all monads. The operational nature of our approach is related to the implementation of recursion in Scheme and its monadic version proposed by Friedman and Sabry, but it defines a different semantics and does not rely on assignments. When contrasted to the axiomatic approach proposed by Erkök and Launchbury, our semantics for the continuation monad invalidates one of the axioms, adding to the evidence that this axiom is problematic in the presence of continuations.

References (17)

  1. Zena M. Ariola and Matthias Felleisen. The call-by-need lambda calculus. Journal of Functional Programming, 7(3):265-301, May 1997.
  2. D. Ancona, S. Fagorzi, E. Moggi, and E. Zucca. Mixin modules and computational effects. Sub- mitted, 2002.
  3. AMO + 95] Zena M. Ariola, John Maraist, Martin Odersky, Matthias Felleisen, and Philip Wadler. A call- by-need lambda calculus. In Conference record of POPL '95, 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages: papers presented at the Symposium: San Francisco, California, January 22-25, 1995, pages 233-246, New York, NY, USA, 1995. ACM Press.
  4. H[endrik] P[ieter] Barendregt. The Lambda Calculus: Its Syntax and Semantics. North-Holland, revised edition, 1984.
  5. Alan Bawden. Letrec and callcc implement references. Message to comp.lang.scheme, 1988.
  6. Gérard Boudol. The recursive record semantics of objects revisited. Lecture Notes in Computer Science, 2028:269-283, 2001.
  7. Magnus Carlsson. Value recursion in the continuation monad. Unpublished Note, January 2003.
  8. Levent Erkök and John Launchbury. Recursive monadic bindings. In Proceedings of the ACM Sigplan International Conference on Functional Programming (ICFP-00), volume 35.9 of ACM Sigplan Notices, pages 174-185, N.Y., September 18-21 2000. ACM Press.
  9. Levent Erkök, John Launchbury, and Andrew Moran. Semantics of value recursion for monadic input/output. Journal of Theoretical Informatics and Applications, 36(2):155-180, 2002.
  10. Levent Erkök. Value Recursion in Monadic Computations. PhD thesis, OGI School of Science and Engineering, OHSU, Portland, Oregon, 2002.
  11. Daniel P. Friedman and Amr Sabry. Recursion is a computational effect. Technical Report 546, Computer Science Department, Indiana University, December 2000.
  12. Report on the programming language Haskell 98, February 1999.
  13. Richard Kelsey, William Clinger, and Jonathan Rees (Editors). Revised 5 report on the algorithmic language Scheme. ACM SIGPLAN Notices, 33(9):26-76, September 1998.
  14. Peter J. Landin. The mechanical evaluation of expressions. The Computer Journal, 6(4):308-320, January 1964.
  15. E. Moggi and S. Fagorzi. A monadic multi-stage metalanguage. In FoSSaCS 2003, LNCS. Springer- Verlag, 2003.
  16. John Maraist, Martin Odersky, and Philip Wadler. The call-by-need lambda calculus. Journal of Functional Programming, 8(3):275-317, May 1998.
  17. Andrew K. Wright and Matthias Felleisen. A syntactic approach to type soundness. Information and Computation, 115(1):38-94, 1994.