Theories of programming: Top-Down and Bottom­up and Neeting in the Middle

  • C. A. R. Hoare
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1710)


A theory of programming provides a scientific basis for programming practices that lead to predictable delivery of programs of high quality. A top­down theory starts with a specification of the intended behaviour of a program; and a bottom­up theory starts with a description of how the program is executed. The aim of both theories is to prove theorems (often algebraic laws) that will be helpful in the design, development, compilation, testing, optimisation and maintainance of all kinds of program. The most mature theories are those that are presented both in bottom­up and top-down fashion, where essentially the same laws are valid in both presentations.


Programming Language Operational Semantic Healthiness Condition Sequential Composition Process Algebra 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. S. Abramsky, R. Jagadeesan and P. Malacaria. Full abstraction for PCF.To appear in Information and Computation.Google Scholar
  2. Baeten and Weijland. Process Algebra. CUP 1990, ISBN 0521-40043-0.Google Scholar
  3. E.W. Dijkstra. A Discipline of Programming. Prentice Hall 1976, ISBN 013-215871-X.Google Scholar
  4. C.A.R. Hoare and He Jifeng. Unifying Theories of Programming. Prentice Hall International 1998, ISBN 0-13-458761-8, available from Scholar
  5. J.M.E. Hyland and C.H.L. Ong. On Full Abstraction for PCF: I, II and III.To appear in Informatics and Computation.Google Scholar
  6. A.W. Roscoe. Theory and Practice of Concurrency. Prentice Hall 1998, ISBN 013-674409-5.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • C. A. R. Hoare
    • 1
  1. 1.Oxford University Computing Laboratory

Personalised recommendations