Research in Semantics
The broad aim of my research is to study and develop semantic models,
principles and theories, which
- increase our general understanding of the theory and fundamentals
of programming and computation;
- underpin and clarify our understanding of existing programming
languages and systems, and can be used as a basis for
analysis, specification, verification, and testing; and
- may lead to the development of fundamentally new
languages and systems.
I use mathematical tools, including domain theory and especially
category theory, and work within specialised frameworks such as
(structural) operational semantics, higher order abstract
syntax, classical and constructive logics. A key feature of my
work is the regular use of categorical logic and categorical
type theory.
I am involved with programs and programming in a broad sense. I work
with existing tools such as C++, Java, ML, Haskell (HUGS),
Isabelle, HOL; and develop and study new systems of computation
and programming within these meta-frameworks.
My work also consists of analysing and understanding programming
paradigms and methods, such as higher order
typed programming, object-oriented programming, and tactical
theorem proving.
This work has been supported over the years by APPSEM, the ESPRIT CLICS
project, the EPSRC, the LMS, and the SERC.
For specific details of some of my more recent research work, please
see the links below.
Programming language semantics research makes use of
techniques from mathematical logic, category theory and type theory to
develop the foundations of programming languages with a long term goal
of producing new and better programming languages and environments. I
am interested in axiomatic, operational, categorical and denotational
semantics. One creates mathematical models and methods which inform
language design and assist with the development of logical systems for
specifying and reasoning about program properties. More specifically
this research
- aims to increase our general understanding of the theory and fundamentals
of programming and computation;
- aims to underpin and clarify our understanding of existing programming
languages and systems, and can be used as a basis for
analysis, specification, verification, and testing; and
- can lead to the development of fundamentally new
languages and systems.
-
Mathematical Models of Variable Binding: In the last decade we
have advanced our understanding of the formal notion of variable
binding considerably. Presheaf categories have been shown to provide
models of standard languages with variable binding, such as (variants
of) the lambda calculus, as initial algebras. This is a considerable
advancement over older models in which expressions with binders could
only be realised as alpha-equivalence classes of elements of initial
algebras. The important gain here is the initial algebra gives rise to
a clear principle of structural induction. My own work has developed
particular kinds of presheaf category models, and a PhD thesis could
be based upon the further development of these models and the
associated reasoning principles.
-
Computer Systems for Reasoning About Binding: The Hybrid system
was developed in Isabelle HOL. It is a metalogic which can be used to
reason about languages with binding. One translates the object
language into Hybrid, and then uses Hybrid's reasoning principles
(such as induction and coinduction) to prove properties of the
language. There are a variety of research avenues to explore, ranging
from applications of Hybrid which could involve the testing of Hybrid
and its comparison with other systems of reasoning with binders, to
the further development of the Hybrid system itself.
|