University of Leicester

computer science

Mechanizing Operational Semantics

Over the last thirty to fourty years, there has been a considerable development of new programming languages, and in particular new programming "styles" or "paradigms". There has also been a great deal of work done to develop new mathematical and logical theories of programming, and models of programming languages. One way of ensuring that practioners can actually make use of such theories (especially the logical ones) is to produce software systems which themselves give an implementation of the theories. By translating actual programming languages into the theories, the implementation can be used to reason about the programming language. We sometimes refer to the implementation as a "mechanization" of the programming language.

Operational semantics usually refers to a framework in which the semantics, that is, the run time behaviour, of a programming language can be described formally. Such operational descriptions are typically high level and are independent of machine architectures, but are concrete enough that it is relatively straightforward to implement them in a fairly direct way.

A considerable part of our recent research efforts has been devoted to producing mechanizations of operational semantics of programming languages; such semantics can be regarded as a "theory" of programming, and our mechanizations take place within a tool called Isabelle. Isabelle is a theorem prover, and can be used to automate proofs of properties of programming languages.

For some more details of a project associated with this work, please see the EPSRC Mechanized Operational Semantics project.

| [University Home]|[Faculty of Science]|[MCS Home]|[CS Home]||[University Index A-Z]|[University Search]|[University Help]|

Author: R. L. Crole (R.Crole at mcs.le.ac.uk), T: +44 (0)116 252 3404 .
© University of Leicester April 2006. Last modified: 21st April 2006, 17:58:51.
CS Web Maintainer. This document has been approved by the Head of Department.