|
|||||||||||||||
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 Moran21 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? |
- If your librarian has set up your subscription with an OpenURL resolver, OpenURL links appear automatically on the abstract pages.
- You can define your own OpenURL resolver with your EDPS Account. In this case your choice will be given priority over that of your library.
- You can use an add-on for your browser (Firefox or I.E.) to display OpenURL links on a page (see http://www.openly.com/openurlref/). You should disable this module if you wish to use the OpenURL server that you or your library have defined.


Document
BibSonomy
CiteUlike
Connotea
Del.icio.us
Digg
Facebook