## Correctness of Monadic State: An Imperative Call-by-Need Calculus (1998)

### Cached

### Download Links

- [www.cs.indiana.edu]
- [ftp.cs.uoregon.edu]
- DBLP

### Other Repositories/Bibliography

Venue: | In Proc. 25th ACM Symposium on Principles of Programming Languages |

Citations: | 20 - 2 self |

### BibTeX

@INPROCEEDINGS{Ariola98correctnessof,

author = {Zena M. Ariola and Amr Sabry},

title = {Correctness of Monadic State: An Imperative Call-by-Need Calculus},

booktitle = {In Proc. 25th ACM Symposium on Principles of Programming Languages},

year = {1998},

pages = {62--74},

publisher = {ACM Press}

}

### Years of Citing Articles

### OpenURL

### Abstract

The extension of Haskell with a built-in state monad combines mathematical elegance with operational efficiency: ffl Semantically, at the source language level, constructs that act on the state are viewed as functions that pass an explicit store data structure around. ffl Operationally, at the implementation level, constructs that act on the state are viewed as statements whose evaluation has the side-effect of updating the implicit global store in place. There are several unproven conjectures that the two views are consistent. Recently, we have noted that the consistency of the two views is far from obvious: all it takes for the implementation to become unsound is one judiciously-placed beta-step in the optimization phase of the compiler. This discovery motivates the current paper in which we formalize and show the correctness of the implementation of monadic state. For the proof, we first design a typed call-by-need language that models the intermediate language of the compiler, to...