Abstract:
We exhibit Semantic Lego, a modular system for constructing programming language implementations from denotational-style building blocks. We present languages as abstract data types, show that ADTs have advantages over interpreters, and incrementally construct semantics for them using type transformations and liftings. We derive specific type transformations (third order) and liftings (monads) from more fundamental considerations and show that monads transform rather than compose. Semantic Lego extends Moggi, Wadler, and Steele's earlier work and has applications to language extensibility, the construction of interpreters and compilers, and the study of semantic models.
Citations
|
1143
|
Imperative functional programming
– Jones, Wadler
- 1993
|
|
574
|
Notions of computation and monads
– Moggi
- 1991
|
|
569
|
Structure and Interpretation of Computer Programs
– Abelson, Sussman
- 1996
|
|
400
|
Comprehending monads
– Wadler
- 1990
|
|
363
|
Computational Lambda-Calculus and Monads
– Moggi
- 1989
|
|
338
|
Category Theory for Computing Science
– Barr, Wells
- 1990
|
|
192
|
Domain Theory in Logical Form
– Abramsky
- 1991
|
|
164
|
Monad transformers and modular interpreters
– Liang, Hudak, et al.
- 1995
|
|
163
|
Typeful Programming
– Cardelli
- 1989
|
|
140
|
Semantics of Programming Languages
– Gunter
- 1992
|
|
136
|
An abstract view of programming languages
– Moggi
- 1990
|
|
134
|
J.B.: Initial Algebra Semantics and Continuous Algebras
– Goguen, Thatcher, et al.
- 1977
|
|
130
|
Basic category theory for computer scientists
– Pierce
- 1991
|
|
95
|
Representing monads
– Filinski
- 1994
|
|
87
|
Towards a new model of abstraction in software engineering
– Kiczales
- 1992
|
|
56
|
Composing monads
– Jones, Duponcheel
|
|
49
|
Computational Category Theory
– Rydeheard, Burstall
- 1988
|
|
35
|
Distributive laws
– Beck
- 1969
|
|
28
|
Extensible denotational language specifications
– Cartwright, Felleisen
- 1994
|
|
25
|
Building interpreters by composing monads
– Jr
- 1994
|
|
22
|
Rivieres. The art of the metaobject protocol
– Kiczales, des
- 1991
|
|
21
|
Declarative continuations and categorical duality
– Filinski
- 1989
|
|
18
|
Denotational Semantics. Allyn and
– Schmidt
- 1986
|
|
17
|
A syntactic approach to modularity in denotational semantics
– Cenciarelli, Moggi
- 1993
|
|
17
|
A Categorical Approach to the Theory of Lists
– Spivey
- 1989
|
|
7
|
A modular approach to denotational semantics
– Moggi
- 1991
|
|
5
|
Category theory for the Working Mathematician
– MacLane
- 1971
|
|
4
|
Language Extensibility via First-class Interpreters and Constructive Modules
– Espinosa
- 1993
|
|
3
|
A unified system of parametrization for programming languages
– Lamping
- 1988
|
|
2
|
Action Semantics, volume 26
– Mosses
- 1992
|
|
1
|
Language features for extensible programs. Available via http://www.cs.columbia.edu
– Espinosa
- 1993
|
|
1
|
Semantic Lego. Available via http://www.cs.columbia.edu
– Espinosa
- 1994
|