Operational Semantics Using the Partiality MonadOperational Semantics Using the Partiality Monad AbstractThe operational semantics of a partial, functional language is often given as a relation rather than as a function. The latter approach is arguably more natural: if the language is functional, why not take advantage of this when defining the semantics? One can immediately see that a functional semantics is deterministic and, in a constructive setting, computable. In the talk I will show how one can use the coinductive partiality monad to define big-step or small-step operational semantics for lambda-calculi and virtual machines as total, computable functions (total definitional interpreters). To demonstrate that the resulting semantics are useful I have proved type soundness and compiler correctness results. (The results discussed in the talk have previously appeared in "Operational Semantics Using the Partiality Monad", ICFP'12, Proceedings of the 17th ACM SIGPLAN international conference on Functional programming, doi:10.1145/2364527.2364546.) Nils Anders DanielssonLast updated Fri Oct 18 11:42:51 UTC 2013. |