Access

You are not currently logged in.

Access your personal account or get JSTOR access through your library or other institution:

login

Log in to your personal account or through your institution.

If You Use a Screen Reader

This content is available through Read Online (Free) program, which relies on page scans. Since scans are not currently available to screen readers, please contact JSTOR User Support for access. We'll provide a PDF copy for your screen reader.

Programs are Predicates [and Discussion]

C. A. R. Hoare and F. K. Hanna
Philosophical Transactions of the Royal Society of London. Series A, Mathematical and Physical Sciences
Vol. 312, No. 1522, Mathematical Logic and Programming Languages [Displayed chronologically; published out of order] (Oct. 1, 1984), pp. 475-489
Published by: Royal Society
Stable URL: http://www.jstor.org/stable/37446
Page Count: 15
  • Read Online (Free)
  • Cite this Item
Since scans are not currently available to screen readers, please contact JSTOR User Support for access. We'll provide a PDF copy for your screen reader.
Programs are Predicates [and Discussion]
Preview not available

Abstract

A computer program is identified with the strongest predicate describing every relevant observation that can be made of the behaviour of a computer executing that program. A programming language is a subset of logical and mathematical notations, which is so restricted that products described in the language can be automatically implemented on a computer. The notations enjoy a number of elegant algebraic properties, which can be used for optimizing program efficiency. A specification is a predicate describing all permitted observations of a program, and it may be expressed with greatest clarity by taking advantage of the whole language of logic and mathematics. A program P meets its specification S iff [Note: Equation omitted. See the image of page 475 for this equation.]. The proof of this implication may use all the classical methods of mathematics and logic. These points are illustrated by design of a small language that includes assignments, conditionals, non-determinism, recursion, input, output, and concurrency.

Page Thumbnails

  • Thumbnail: Page 
475
    475
  • Thumbnail: Page 
476
    476
  • Thumbnail: Page 
477
    477
  • Thumbnail: Page 
478
    478
  • Thumbnail: Page 
479
    479
  • Thumbnail: Page 
480
    480
  • Thumbnail: Page 
481
    481
  • Thumbnail: Page 
482
    482
  • Thumbnail: Page 
483
    483
  • Thumbnail: Page 
484
    484
  • Thumbnail: Page 
485
    485
  • Thumbnail: Page 
486
    486
  • Thumbnail: Page 
487
    487
  • Thumbnail: Page 
488
    488
  • Thumbnail: Page 
489
    489