Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
The logic of programming
Programming languages and their definition
Programming languages and their definition
A language of specified programs
Science of Computer Programming
Non-deterministic data types: models and implementations
Acta Informatica
Program construction and verification
Program construction and verification
Systematic software development using VDM
Systematic software development using VDM
The quest goes on: a survey of proof systems for partial correctness of CSP
Current trends in concurrency. Overviews and tutorials
Proc. of the European symposium on programming on ESOP 86
VDM proof obligations and their justification
VDM-Europe Symposium 1987 on VDM '87: VDM---a formal method at work
Communications of the ACM
Control predicates are better than dummy variables for reasoning about program control
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program verification: the very idea
Communications of the ACM
Parallel program design: a foundation
Parallel program design: a foundation
The Z notation: a reference manual
The Z notation: a reference manual
Communication and concurrency
Fundamentals of algebraic specification 2: module specifications and constraints
Fundamentals of algebraic specification 2: module specifications and constraints
Predicate calculus and program semantics
Predicate calculus and program semantics
Issues in the design of a parallel object-oriented language
Formal Aspects of Computing
Programming from specifications
Programming from specifications
Communications of the ACM
Initial Algebra Semantics and Continuous Algebras
Journal of the ACM (JACM)
Ten Years of Hoare's Logic: A Survey—Part I
ACM Transactions on Programming Languages and Systems (TOPLAS)
Social processes and proofs of theorems and programs
Communications of the ACM
Communications of the ACM
Communications of the ACM
Distributed processes: a concurrent programming concept
Communications of the ACM
Guarded commands, nondeterminacy and formal derivation of programs
Communications of the ACM
Monitors: an operating system structuring concept
Communications of the ACM
Communications of the ACM
Communications of the ACM
Letters to the editor: go to statement considered harmful
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Correspondence between ALGOL 60 and Church's Lambda-notation: part I
Communications of the ACM
Semiotics and programming languages
Communications of the ACM
Revised report on the algorithm language ALGOL 60
Communications of the ACM
Communications of the ACM
Recursive functions of symbolic expressions and their computation by machine, Part I
Communications of the ACM
Advice on structuring compilers and proving them correct
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Object-Oriented Software Construction
Object-Oriented Software Construction
The Science of Programming
Alan Turing
Mathematical Theory of Program Correctness
Mathematical Theory of Program Correctness
Software Development: A Rigorous Approach
Software Development: A Rigorous Approach
Algorithms + Data Structures = Programs
Algorithms + Data Structures = Programs
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
A Discipline of Programming
The Vienna Development Method: The Meta-Language
The Vienna Development Method: The Meta-Language
Non-Deterministic System Specification
Proceedings of the International Sympoisum on Semantics of Concurrent Computation
Concurrency and Automata on Infinite Sequences
Proceedings of the 5th GI-Conference on Theoretical Computer Science
Mathematical Methods for Digital Systems Development
VDM '91 Proceedings of the 4th International Symposium of VDM Europe on Formal Software Development-Volume 2: Tutorials
Formal development of correct algorithms: An example based on earley's recogniser
Proceedings of ACM conference on Proving assertions about programs
Now you may compose temporal logic specifications
STOC '84 Proceedings of the sixteenth annual ACM symposium on Theory of computing
An algebraic definition of simulation between programs
An algebraic definition of simulation between programs
Termination of algorithms
Correctness in operating systems
Correctness in operating systems
Axiomatic proof techniques for parallel programs.
Axiomatic proof techniques for parallel programs.
The specification and application to programming of abstract data types.
The specification and application to programming of abstract data types.
Structured programming
Logical Foundations of Program Assertions: What do Practitioners Want?
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
A historical perspective on runtime assertion checking in software development
ACM SIGSOFT Software Engineering Notes
Proceedings of the 14th European conference on Cognitive ergonomics: invent! explore!
JML Runtime Assertion Checking: Improved Error Reporting and Efficiency Using Strong Validity
FM '08 Proceedings of the 15th international symposium on Formal Methods
Reasoning about programs via operational semantics: requirements for a support system
Automated Software Engineering
The concept of nondeterminism: its development and implications for teaching
ACM SIGCSE Bulletin
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Understanding programming language concepts via operational semantics
Domain modeling and the duration calculus
Toward specifications for reconfigurable component systems
ICATPN'07 Proceedings of the 28th international conference on Applications and theory of Petri nets and other models of concurrency
Safe controllers design for industrial automation systems
Computers and Industrial Engineering
Checking models, proving programs, and testing systems
TAP'11 Proceedings of the 5th international conference on Tests and proofs
The four Rs of programming language design
Proceedings of the 10th SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software
Beyond assertions: advanced specification and verification with JML and ESC/Java2
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Correct transformation: From object-based graph grammars to PROMELA
Science of Computer Programming
Behavioral interface specification languages
ACM Computing Surveys (CSUR)
Verification conditions for source-level imperative programs
Computer Science Review
Aspects of abstraction in software development
Software and Systems Modeling (SoSyM)
Abstraction as a unifying link for formal approaches to concurrency
SEFM'12 Proceedings of the 10th international conference on Software Engineering and Formal Methods
Mathematical practice, crowdsourcing, and social machines
CICM'13 Proceedings of the 2013 international conference on Intelligent Computer Mathematics
Hi-index | 0.00 |
This article traces the history-up to around 1990-of research on reasoning about programs. The main focus is on sequential imperative programs but some comments are made on concurrency. The main thesis is that the idea of reasoning about programs has been around since they were first written; the search has been to find tractable methods.