IEEE Transactions on Software Engineering · 1976 · 325 citations · 27 references
ComputingComputer ScienceFormal MethodsProgramming LanguagesSystems ProgrammingProgramming Language ImplementationSoftware ConstructionSpecification LanguagesType CheckingType SystemsVerificationFormal VerificationProgram Verification
The programming language Alphard is designed to provide support for both the methodologies of "well-structured" programming and the techniques of formal program verification. Language constructs allow a programmer to isolate an abstraction, specifying its behavior publicly while localizing knowledge about its implementation. The verification of such an abstraction consists of showing that its implementation behaves in accordance with its public specifications; the abstraction can then be used with confidence in constructing other programs, and the verification of that use employs only the public specifications.
27
An axiomatic basis for computer programming
C. A. R. Hoare · Communications of the ACM · 1969 · 3.9K citations · Full text
Language, Thought, and Reality.
A. M. Halpern, Benjamin Lee Whorf, John B. Carroll et al. · American Sociological Review · 1956 · 2.9K citations
The mythical man-month: essays on software engineering
Choice Reviews Online · 1996 · 2.5K citations
Proof of correctness of data representations
C. A. R. Hoare · Acta Informatica · 1972 · 967 citations