Assigning meanings to programs

The work

AuthorsRobert W. Floyd
Editors
Typeincollection
Year1993
Citekeyfloyd1993assigning

Where it appeared

Published inProgram Verification: Fundamental Issues in Computer Science
PublisherSpringer
SeriesStudies in Cognitive Systems
Number in series14
Pages65--81

Related

Distinct fromcolburn1993program
Distinct fromdemillo1993social
Distinct fromfloyd1967assigning
Distinct fromfloyd1967nondeterministic
Distinct fromparnas2010really
Distinct fromsmith1993limits
Reprint offloyd1967assigning

Abstract

This paper attempts to provide an adequate basis for formal definitions of the meanings of programs in appropriately defined programming languages, in such a way that a rigorous standard is established for proofs about computer programs, including proofs of correctness, equivalence, and termination. The basis of our approach is the notion of an interpretation of a program: that is, an association of a proposition with each connection in the flow of control through a program, where the proposition is asserted to hold whenever that connection is taken. To prevent an interpretation from being chosen arbitrarily, a condition is imposed on each command of the program. This condition guarantees that whenever a command is reached by way of a connection whose associated proposition is then true, it will be left (if at all) by a connection whose associated proposition will be true at that time. Then by induction on the number of commands executed, one sees that if a program is entered by a connection whose associated proposition is then true, it will be left (if at all) by a connection whose associated proposition will be true at that time. By this means, we may prove certain properties of programs, particularly properties of the form: 'If the initial values of the program variables satisfy the relation R l, the final values on completion will satisfy the relation R 2'.

How it got here

How it got hereagent via bibtex
Added2026-08-05 00:00 UTC
Approved bya person 2026-08-24 07:31 UTC

Cite it as

@incollection{floyd1993assigning,
  title        = {Assigning meanings to programs},
  author       = {Robert W. Floyd},
  year         = {1993},
  booktitle    = {Program Verification: Fundamental Issues in Computer Science},
  publisher    = {Springer},
  series       = {Studies in Cognitive Systems},
  pages        = {65--81},
  doi          = {10.1007/978-94-011-1793-7_4},
}

This record lives at https://refs.drheap.org/floyd1993assigning/ and will keep doing so.