spacer
EDP Sciences Journals List
Home arrow Document
   
Theoret. Informatics Appl. 36, 155-180 (2002)
DOI: 10.1051/ita:2002008

Semantics of value recursion for Monadic Input/Output

Levent Erkök1, John Launchbury2, 1 and Andrew Moran2

1  OGI School of Science and Engineering, OHSU; erkok@cse.ogi.edu.
2  Galois Connections, Inc.


Abstract
Monads have been employed in programming languages for modeling various language features, most importantly those that involve side 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 computations give 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 of two layers: a natural semantics for the functional layer, and a labeled transition semantics for the IO layer.


Mathematics Subject Classification. 68N18, 68Q55, 18C15


© EDP Sciences 2002


What is OpenURL?