Abstraction and specification in program development
Abstraction and specification in program development
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Islands: aliasing protection in object-oriented languages
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Toward reliable modular programs
Toward reliable modular programs
Data groups: specifying the modification of extended state
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Cayenne—a language with dependent types
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Dependent types in practical programming
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Programming Language Constructs for Which It Is Impossible To Obtain Good Hoare Axiom Systems
Journal of the ACM (JACM)
Quickly detecting relevant program invariants
Proceedings of the 22nd international conference on Software engineering
Simplification by Cooperating Decision Procedures
ACM Transactions on Programming Languages and Systems (TOPLAS)
A technique for software module specification with examples
Communications of the ACM
Annotation inference for modular checkers
Information Processing Letters - Special issue in honor of Edsger W. Dijkstra
Alias burying: unique variables without destructive reads
Software—Practice & Experience - Special issue on aliasing in object-oriented systems
Automatic discovery of linear restraints among variables of a program
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Automating proofs of the absence of common runtime errors
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Programming with Specifications: An Introduction to Anna, a Language for Specifying ADA Programs
Programming with Specifications: An Introduction to Anna, a Language for Specifying ADA Programs
Object-Oriented Software Construction
Object-Oriented Software Construction
A Discipline of Programming
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Checking Java Programs via Guarded Commands
Proceedings of the Workshop on Object-Oriented Technology
A Language-Based Approach to Security
Informatics - 10 Years Back. 10 Years Ahead.
Abstract Interpretation Based Formal Methods and Future Challenges
Informatics - 10 Years Back. 10 Years Ahead.
Houdini, an Annotation Assistant for ESC/Java
FME '01 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods for Increasing Software Productivity
ECCOP '96 Proceedings of the 10th European Conference on Object-Oriented Programming
Proving that computer programs terminate cleanly.
Proving that computer programs terminate cleanly.
Tool-Assisted Specification and Verification of the JavaCard Platform
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
Orientations in Verification Engineering of Avionics Software
Informatics - 10 Years Back. 10 Years Ahead.
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
Efficient weakest preconditions
Information Processing Letters
Boogie: a modular reusable verifier for object-oriented programs
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
The spec# programming system: an overview
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
Verification conditions for source-level imperative programs
Computer Science Review
PLDI 2002: Extended static checking for Java
ACM SIGPLAN Notices - Supplemental issue
Hi-index | 0.00 |
A powerful approach to finding errors in computer software is to translate a given program into a verification condition, a logical formula that is valid if and only if the program is free of the classes of errors under consideration. Finding errors in the program is then done by mechanically searching for counterexamples to the verification condition. This paper gives an overview of the technology that goes into such program checkers, reports on some of the progress and lessons learned in the past ten years, and identifies some remaining challenges.