Side effects and aliasing can have simple axiomatic descriptions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communications of the ACM
A calculus for assignments in higher-order languages
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The definition of Standard ML
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Parameter-passing and the lambda calculus
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type inference for polymorphic references
Information and Computation
Assignments for applicative languages
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
The revised report on the syntactic theories of sequential control and state
Theoretical Computer Science
Call by name, assignment, and the lambda calculus
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Relational parametricity and local variables
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Delimiting the scope of effects
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Implementation of the typed call-by-value λ-calculus using a stack of regions
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
A syntactic approach to type soundness
Information and Computation
Isolating side effects in sequential languages
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A call-by-need lambda calculus
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Lisp and Symbolic Computation - Special issue on state in programming languages (part I)
A Type System for a Lambda Calculus with Assignments
TACS '94 Proceedings of the International Conference on Theoretical Aspects of Computer Software
Calculi for functional programming languages with assignment
Calculi for functional programming languages with assignment
The call-by-need lambda calculus
Journal of Functional Programming
Multi-stage programming with explicit annotations
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
ACM Computing Surveys (CSUR)
Correctness of monadic state: an imperative call-by-need calculus
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
From Syntactic Theories to Interpreters: Automating the Proof of Unique Decomposition
Higher-Order and Symbolic Computation
Applied Semantics, International Summer School, APPSEM 2000, Caminha, Portugal, September 9-15, 2000, Advanced Lectures
Monadic encapsulation of effects: a revised approach (extended version)
Journal of Functional Programming
What is a purely functional language?
Journal of Functional Programming
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Journal of Functional Programming
A history of Haskell: being lazy with class
Proceedings of the third ACM SIGPLAN conference on History of programming languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the first ACM SIGPLAN symposium on Haskell
Proof abstraction for imperative languages
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
Hi-index | 0.00 |
Type safety of imperative programs is an area fraught with difficulty and requiring great care. The SML solution to the problem, originally involving imperative type variables, has been recently simplified to the syntactic-value restriction. In Haskell, the problem is addressed in a rather different way using explicit monadic state. We present an operational semantics for state in Haskell and the first full proof of type safety. We demonstrate that the semantic notion of value provided by the explicit monadic types is able to avoid any problems with generalization.