2011
DOI: 10.1007/s00165-009-0145-4
|View full text |Cite
|
Sign up to set email alerts
|

VDM semantics of programming languages: combinators and monads

Abstract: Abstract. VDM was developed in the early 1970s as a variant of denotational semantics. VDM descriptions of programming languages differ from the original Scott-Strachey style by making extensive use of combinators which have a fixed operational interpretation. After recalling the main features of denotational semantics and the Scott-Strachey style, we examine the combinators of the VDM specification language, and relate them to monads, which were introduced more than 15 years later. We also suggest that use of… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1

Citation Types

0
2
0

Year Published

2015
2015
2021
2021

Publication Types

Select...
5
1

Relationship

3
3

Authors

Journals

citations
Cited by 8 publications
(2 citation statements)
references
References 21 publications
0
2
0
Order By: Relevance
“…At the end of the 1980s, Moggi [39] introduced the use of monads and monad transformers in denotational semantics. (In fact Scott and Strachey had themselves used monadic notation for composition of store transformations in the early 1970s, and an example of a monad transformer can also be found in the VDM definition of PL/I, but the monadic structure was not explicit [47].) Monads avoid explicit propagation of auxiliary entities, and monad transformers are highly reusable components.…”
Section: Related Workmentioning
confidence: 99%
“…At the end of the 1980s, Moggi [39] introduced the use of monads and monad transformers in denotational semantics. (In fact Scott and Strachey had themselves used monadic notation for composition of store transformations in the early 1970s, and an example of a monad transformer can also be found in the VDM definition of PL/I, but the monadic structure was not explicit [47].) Monads avoid explicit propagation of auxiliary entities, and monad transformers are highly reusable components.…”
Section: Related Workmentioning
confidence: 99%
“…A crucial difference between the original Scott-Strachey style of denotational semantics and monadic semantics is that in the former, the definitions of operators are fixed, whereas in monadic semantics, the definitions of return(d) and e > >= f (and other operators provided by the monad) change when the domains change. (In fact the idea of redefining operators in this way was exploited since the 1970s in the VDM variant of denotational semantics, although the close relationship between VDM and monadic semantics has only recently been noticed [26]. )…”
Section: Monadic Semanticsmentioning
confidence: 99%