Hostname: page-component-74656f9884-npj9w Total loading time: 0 Render date: 2026-11-10T08:56:21.020Z Has data issue: false hasContentIssue false

Semantics of value recursionfor Monadic Input/Output

Published online by Cambridge University Press:  15 December 2002

Levent Erkök
Affiliation:
OGI School of Science and Engineering, OHSU; erkok@cse.ogi.edu.
John Launchbury
Affiliation:
OGI School of Science and Engineering, OHSU; erkok@cse.ogi.edu. Galois Connections, Inc.
Andrew Moran
Affiliation:
Galois Connections, Inc.
Get access

Abstract

Monads have been employed in programming languages for modelingvarious language features, most importantly those that involveside effects. In particular, Haskell's IO monad provides access to I/O operations and mutable variables, without compromising referential transparency. Cyclic definitions that involve monadic computationsgive rise to the concept of value-recursion, where the fixed-point computation takes place only over the values, without repeating or losing effects. In this paper, we describe a semantics for a lazy language based on Haskell, supporting monadic I/O, mutable variables, usual recursive definitions,and value recursion. Our semantics is composed oftwo layers: a natural semantics for the functional layer, and a labeledtransition semantics for the IO layer.

Keywords

Information

Type
Research Article
Copyright
© EDP Sciences, 2002

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

Article purchase

Temporarily unavailable