Monad transformers and modular interpreters
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Fold and unfold for program semantics
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Composing monads using coproducts
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire
Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture
Categorical Modelling of Structural Operational Rules: Case Studies
CTCS '97 Proceedings of the 7th International Conference on Category Theory and Computer Science
Monads and Modular Term Rewriting
CTCS '97 Proceedings of the 7th International Conference on Category Theory and Computer Science
Towards a Mathematical Operational Semantics
LICS '97 Proceedings of the 12th Annual IEEE Symposium on Logic in Computer Science
Semantics of Name and Value Passing
LICS '01 Proceedings of the 16th Annual IEEE Symposium on Logic in Computer Science
A categorical programming language
A categorical programming language
Fast and loose reasoning is morally correct
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Comparing Operational Models of Name-Passing Process Calculi
Electronic Notes in Theoretical Computer Science (ENTCS)
Modularity of Behaviours for Mathematical Operational Semantics
Electronic Notes in Theoretical Computer Science (ENTCS)
Computational Effects and Operations: An Overview
Electronic Notes in Theoretical Computer Science (ENTCS)
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
Structural operational semantics is a popular technique for specifying the meaning of programs by means of inductive clauses. One seeks syntactic restrictions on those clauses so that the resulting operational semantics is well-behaved. This approach is simple and concrete but it has some drawbacks. Turi pioneered a more abstract categorical treatment based upon the idea that operational semantics is essentially a distribution of syntax over behaviour. In this article we take Turi@?s approach in two new directions. Firstly, we show how to write operational semantics as modular components and how to combine such components to specify complete languages. Secondly, we show how the categorical nature of Turi@?s operational semantics makes it ideal for implementation in a functional programming language such as Haskell.