2006 · 26 citations · 6 references
Open access
ComputingComputer ScienceFormal MethodsProgramming LanguagesSyntaxConcurrent ModelingConcurrent ProgrammingConcurrency SemanticsConcurrent SemanticsDenotational ModelsImperative Language DesignMonadic SemanticsMonadsSemantic ModelsSynchronization Semantics
Resumptions are a valuable tool in the analysis and design of semantic models for concurrent programming languages, in which computations consist of sequences of atomic steps that may be interleaved. In this paper we consider a general notion of resumption, parameterized by the kind of computations that take place in the atomic steps. We define a monad transformer which, given a monad M that represents the atomic computations, constructs a monad R(M) for interleaved computations. Moreover, we use this monad transformer to define the denotational semantics of a simple imperative language supporting nondeterminism and concurrency.
6
The essence of functional programming
Philip Wadler · 1992 · 676 citations · Full text
Monad transformers and modular interpreters
Sheng Liang, Paul Hudak, Mark P. Jones · 1995 · 504 citations · Full text
Basic category theory for computer scientists
Choice Reviews Online · 1992 · 393 citations
A Formal Semantics for the C Programming Language
Nikolaos Papaspyrou · 2000 · 44 citations · Full text
Modular monadic semantics and compilation
Paul Hudak, Sheng Liang · 1998 · 42 citations