Project Details
Description
The aim of this research is to develop a general theory for describing and reasoning about higher-order programs, which can operate not just on basic data (such as numerical values) but programs themselves (which may also be higher-order programs). These arise in many different settings, but their subtle and complicated nature means that errors and inefficiencies are difficult to identify and rectify or avoid, without a strong theoretical basis for doing so.One way to describe these programs uses mathematical models based on representing programs as strategies in a formal game. This game semantics'' has been used to develop very accurate models and powerful reasoning tools for a wide range of higher-order programming languages - in particular, languages with imperative or mutable variables, which can be used to store data and programs and subsequently updated. However, there is no systematic way of describing these models - proving that they are well-behaved'' must generally be done on a case-by-case basis. This project will investigate a new way of constructing models of such languages, using structures from category theory to capture the dependence of one event'' in a computation on another (for example, reading from a mutable variable returns the last piece of data written to it) in an abstract way. Any instance of these relatively simple structures can be used to construct a model of the associated language, and they can also be used to guarantee that the model captures all observable properties of the language, for example. This will make it easier to find new models and prove their key properties. By developing a calculus for describing the semantic structures which have been identified, the proposed research will yield a novel way to write down higher-order imperative programs themselves, to generate rules for determining when two programs are equivalent (i.e. interchangeable), and to suggest rules for controlling information flow - for example, preventing an update of one variable from changing the value stored in a different one.
| Status | Finished |
|---|---|
| Effective start/end date | 20/06/10 → 19/06/12 |
Funding
- Engineering and Physical Sciences Research Council

Fingerprint
Explore the research topics touched on by this project. These labels are generated based on the underlying awards/grants. Together they form a unique fingerprint.
Research output
-
A Curry-style Semantics of Interaction: From Untyped to Second-Order Lazy λμ-Calculus
Laird, J., 2020, Foundations of Software Science and Computation Structures- 23rd International Conference, FOSSACS 2020, held as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020, Proceedings. Goubault-Larrecq, J. & König, B. (eds.). Cham, Switzerland: Springer, p. 422-441 20 p. (Lecture Notes in Computer Science ; vol. 12077).Research output: Chapter or section in a book/report/conference proceeding › Chapter in a published conference proceeding
Open AccessFile79 Downloads (Pure) -
Weighted models for higher-order computation
Laird, J., 31 Dec 2020, In: Information and Computation. 275, 104645.Research output: Contribution to journal › Article › peer-review
Open AccessFile5 Link opens in a new tab Citations (SciVal)133 Downloads (Pure) -
From Global to Local State, Coalgebraically and Compositionally
Laird, J., 30 Nov 2019, In: Electronic Notes in Theoretical Computer Science. 347, p. 203-222 20 p.Research output: Contribution to journal › Conference article › peer-review
Open Access1 Link opens in a new tab Citation (SciVal)