
Preface
I take the central task of theoretical computing science (TCS) to be the construc-
tion 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. Later work on the semantics of programming languages enabled a pre-
cise articulation of the underlying differences among 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
that formally articulated informal ideas about the resources used during computa-
tion. Such mathematical modeling provides the means of exploring the properties
and limitations of languages and tools that would otherwise be unavailable.
The aim of this book is to contribute to this fundamental activity. Here we have
two interrelated goals. One is to provide a logical framework and foundation for the
process of specification and the design of specification languages. The second is to
employ this framework to introduce and study computable models. These extend the
notion of specification to the more general arena of mathematical modeling where
our aim is to build mathematical models that are constructed from specifications.
During the preparation of this book, every proper computer scientist at the Uni-
versity of Essex provided valuable feedback. Some provided quite detailed com-
ments. I will not single out any of you; you know who you are. But to all who
contributed, thank you. Referees on the various journal papers that led to the book
also provided valuable advice and criticism. But my greatest debt is to my wife,
Rosana. Over the years, she has read draft after draft and made innumerable (not
literally) suggestions for change and improvement. Without her, the size of the set
of errors that remains would be much greater than it is.
v
评论3