Hardware and software: The closing gap

  • C. A. R. Hoare
  • I. Page
Invited Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 782)


The study of computing science is split at an early stage between the branches dealing separately with hardware and software; and there is a corresponding split in later professional specialisation. This paper explores the essential unity and overlap of the two branches. The basic concepts are those of occam, taken as a simple example of a high-level programming language; its notations may be translated by the laws of programming to the machine code of a conventional machine. Almost identical transformations can produce the networks of gates and flip-flops which constitute a hardware design. These insights are being exploited in hybrid systems, implemented partly in hardware and partly in software. A TRAM-standard printed circuit board called HARP has been constructed for such applications. It links a transputer by shared memory with a commercial Field Programmable Gate Array. Prospects for application are discussed.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    C.A.R. Hoare, Mathematical Logic and Programming Languages, chapter ‘Programs are Predicates', 141–154, Prentice-Hall, 1985.Google Scholar
  2. [2]
    C.A.R. Hoare et al., ‘Laws of programming', Comm. ACM, 30(8), 672–686, (1987).Google Scholar
  3. [3]
    A.W. Roscoe and C.A.R. Hoare, ‘Laws of occam programming', P.R.G. Monograph, Oxford University Computing Laboratory, (1986).Google Scholar
  4. [4]
    E.W. Dijkstra, ‘A constructive approach to the problem of program correctness', BIT, 8, 174–186, (1968).Google Scholar
  5. [5]
    He Jifeng, C.A.R. Hoare, and A. Sampaio, ‘Normal form approach to compiling specifications', Acta Informatica, (1994). to appear.Google Scholar
  6. [6]
    Ian Page and Wayne Luk, ‘Compiling occam into FPGAs', in FPGAs, 271–283, Abingdon EE&CS Books, (1991).Google Scholar
  7. [7]
    Michael Spivey and Ian Page, ‘How to Program in Handel', Technical Report, Oxford University Computing Laboratory, (1993).Google Scholar
  8. [8]
    Ian Page, ‘Parametrised Processor Generation', in FPGAs 93, to be published by Abingdon EE&CS Books (probably), (1993).Google Scholar
  9. [9]
    Ian Page and Wayne Luk and Henry Lau, ‘Hardware Compilation for FPGAs: Imperative and Declarative Approaches for a Robotics Interface', in Proc. IEE Colloquium on Field-Programmable Gate Arrays — Technology and Applications, Ref. 1993/037, pp. 9.1–94. IEE, (1993).Google Scholar
  10. [10]
    Xilinx, San Jose, CA 95124, The Programmable Gate Array Data Book (1993).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • C. A. R. Hoare
    • 1
  • I. Page
    • 1
  1. 1.Computing LaboratoryUniversity of OxfordOxfordUK

Personalised recommendations