Some Properties of Predicate Transformers
Journal of the ACM (JACM)
Guarded commands, nondeterminacy and formal derivation of programs
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Nondeterminism in logics of programs
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Introduction to Mathematical Theory of Computation
Introduction to Mathematical Theory of Computation
A Discipline of Programming
Computability and completeness in logics of programs (Preliminary Report)
STOC '77 Proceedings of the ninth annual ACM symposium on Theory of computing
LOGICS OF PROGRAMS: AXIOMATICS AND DESCRIPTIVE POWER
LOGICS OF PROGRAMS: AXIOMATICS AND DESCRIPTIVE POWER
Semantics of partial correctness formalisms.
Semantics of partial correctness formalisms.
Specifying the Semantics of while Programs: A Tutorial and Critique of a Paper by Hoare and Lauer
ACM Transactions on Programming Languages and Systems (TOPLAS)
A case study in specifying the semantics of a programming language
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A case study in specifying the semantics of a programming language
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Axiomatic definitions of programming languages, II
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Systematic derivation of complementary specifications
VLDB '81 Proceedings of the seventh international conference on Very Large Data Bases - Volume 7
Hoare type theory, polymorphism and separation1
Journal of Functional Programming
Hi-index | 0.00 |
Hoare and Lauer [1974] have advocated using a variety of styles of programming language definitions to fit the variety of users from implementers to program verifiers. They consider the question of whether different definitions and specifications determine the same language by showing that the definitions are what they call "consistent". However, their treatment skirts the question of whether their definitions can each be taken to specify the language adequately. Although, as we will show, any one of the kinds of semantics they discuss -- operational, relational, deductive -- can be used to specify meaning uniquely, Hoare and Lauer do not make the case in their paper. In fact, both their relational and deductive definitions are satisfied by several different semantics, only one of which is desired.Thus, the main point of this paper is to clarify the characteristics of a proper specification of language semantics and to formulate alternative specifications each of which is equally good as the language definition. We basically agree with Hoare and Lauer that several specifications can and should be given, but are disturbed by confusions about such specifications, some of which are illustrated in their paper. In particular we refer to confusions between the mathematical object which is designated to be the meaning of a program and methods for specifying that object; the similar confusion between predicate and expression; between consistency and equivalence of two definitions; between completeness of a theory and its having a unique model. While these issues are familiar in mathematical logic, we take this opportunity to survey them in the context of programming language semantics.This paper can be read without prior familiarity with Hoare and Lauer's paper. The authors plan another paper extending this work which will include a more comprehensive bibliography.