Verification of Array, Record, and Pointer Operations in Pascal
- 1 October 1979
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 1 (2), 226-244
- https://doi.org/10.1145/357073.357078
Abstract
A practical method is presented for automating in a uniform way the verification of Pascal programs that operate on the standard Pascal data structures Array, Record, and Pointer. New assertion language primitives are introduced for describing computational effects of operations on these data structures. Axioms defining the semantics of the new primitives are given. Proof rules for standard Pascal operations on data structures are then defined using the extended assertion language. An axiomatic rule for the Pascal storage allocation operation, NEW, is also given. These rulers have been implemented in the Stanford Pascal program verifier. Examples illustrating the verification of programs which operate on list structures implemented with pointers and records are discussed. These include programs with side effects.Keywords
This publication has 12 references indexed in Scilit:
- Verification Decidability of Presburger Array ProgramsJournal of the ACM, 1980
- Rationale for the design of the Ada programming languageACM SIGPLAN Notices, 1979
- Proof rules for the programming language EuclidActa Informatica, 1978
- Verifying programs by algebraic and logical reductionACM SIGPLAN Notices, 1975
- A methodology for verifying programsACM SIGPLAN Notices, 1975
- Automatic program verification I: A logical basis and its implementationActa Informatica, 1975
- The verification and synthesis of data structuresActa Informatica, 1975
- An axiomatic definition of the programming language PASCALActa Informatica, 1973
- The programming language pascalActa Informatica, 1971
- An axiomatic basis for computer programmingCommunications of the ACM, 1969