I have several areas of research

·
Philosophy of Computer
Science

The
following selected papers and books are some of my
favourites[i].

More
details can be found at Academia.Edu

I take the central task of
Theoretical Computing Science to be the construction of mathematical models of
computational phenomena. Such models provide us with a deeper understanding of
the nature of computation and representation. For example, the early work on
computability theory provided a mathematical model of computation itself.
Turing's work is of fundamental importance here. Adapting Gödel’s
diagonalisation argument, he demonstrated that there are problems that do not
admit of an algorithmic solution. He thus provided a mathematical model of
computation that displayed its limitations. Later work on the semantics of
programming languages enabled a precise articulation of the underlying
differences between programming languages and led to a clearer understanding of
the distinction between semantic representation and implementation. Early work
in complexity theory supplied us with abstract notions which formally
articulated informal ideas about the resources used during computation. I take
this model building endeavour to be the central and fundamental role of theoretical
computer science. It involves the construction of models from the Meccano-Kit supplied by logic, algebra, topology and set theory
and, indeed, any branch of mathematics that proves useful. Such models provide
the means of exploring the properties and limitations of computational concepts
and systems that would otherwise be unavailable. In particular, mathematical and philosophical
logic have supplied a rich source of such models. Conversely, computer science
has inspired the development of new areas of logic. Linear logic and dynamic
logic are two well known examples. It is in this interplay between logic and
computation where much of my research resides.

·
The Foundations of Specification: Journal
Logic and Computation

·
Computability in Specification: Journal Logic
and Computation

·
Computable Models: Journal
Logic and Computation

·
Computable Models (Springer)

·
Type Inference for Set theory: Journal
of Theoretical Computer Science

·
Sets, Types and Type Checking: Journal
Logic and Computation

·
Types
Handbook of Logic and Language

·
Semantics and Stratification: Journal
Logic and Computation

·
Weak Theories of Operations and Types: Journal
Logic and Computation

·
Lazy Theories of Operations and Types: Journal
Logic and Computation

·
Constructive Z: Journal
Logic and Computation

·
Reading Between the Lines in Constructive Type Theory: Journal
Logic and Computation

·
Constructive
Foundations of Functional Languages Mcgraw Hill Book Co Ltd (April 1991)

·
Seminar on Typed Predicate
Logic

·
Truth and Modality for Knowledge Representation (MIT Press)

·
Logics
for Artificial Intelligence

·
Logical
Foundations of Nonmonotonic Reasoning (with N. Obeid): Journal of
Artificial Intelligence Review.

Non
Standard Logic is concerned with that part of formal logic that deals with
proposed extensions or alternatives to classical logic. Such logics include intuitionistic logic,
various 3 valued and partial logics, modal logic, typed logics, logics of time,
conditional logics, including counterfactual logics, logic of truth and
provability. The area also includes formal ontology and the logical foundations
of natural language semantics. Here I have several
areas of interest.

·
Counterfactuals without Possible Worlds. Journal of Philosophical Logic

·
Logics of Truth. Notre
Dame Journal of Formal Logic

·
A Theory of Properties Journal Symbolic Logic

·
Three Theories of Nominalized Predicates Studia
Logica

·
Nominalization and Scott's
domains. Notre
Dame Journal of Formal Logic

·
Properties,
Relations and Propositions

·
Semantics and Property Theory Linguistics and Philosophy

·
Properties, Types and Meaning Vol 1,2.
Springer

The
Philosophy of Computer Science is concerned with philosophical issues that
arise from reflection upon the nature and practice of the academic discipline of
computer science. In this sense, it parallels the philosophies of mathematics
and physics in being a parasitic philosophical discipline. But while physics
and mathematics are well established disciplines, with broad agreement
concerning their subject matter, computer science is new, its very nature
unfixed and unclear. So part of the task will be to provide a somewhat clearer
view of the content and personality of the subject.

·
The Philosophy of
Computer Science Stanford Encyclopedia of Philosophy

·
A
Philosophy of Computer Science.
Invited paper: History and
Philosophy of Computing.

· Understanding Programming Languages Journal Minds and Machines

· The Meaning of Programming Languages

·
Programming
Languages as Mathematical Theories

·
Specification.
Minds and
Machines. *Minds and Machines* 21 (2):135-152.

I have two current interests.

·
Wittgenstein’s Philosophy of
Mathematics.

[i] **Copyright
notice**.

The documents
accessible from these web pages are included by the contributing authors as a
means to ensure timely dissemination of scholarly and technical work on a
non-commercial basis. Copyright and all rights therein are maintained by the
authors or by other copyright holders, notwithstanding that they have offered
their works here electronically. It is understood that all persons copying this
information will adhere to the terms and constraints invoked by each author's
copyright. These works may not be reported without the explicit written
permission of the copyright holder. All persons copying this information are
expected to adhere to the terms and constraints invoked by each author’s
copyright. In most cases, these works may not be reposted without the explicit
permission of the copyright holder.