Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Automatic verification of finite-state concurrent systems using temporal logic specifications
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communications of the ACM
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Two-level semantics and code generation
Theoretical Computer Science - First European Symposium on Programming, Saarbru:9Aicken, W. Germany, March 17:8
The Z notation: a reference manual
The Z notation: a reference manual
Two-level functional languages
Two-level functional languages
ACM Computing Surveys (CSUR)
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Types as abstract interpretations
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A Discipline of Programming
The verifying compiler: A grand challenge for computing research
Journal of the ACM (JACM)
AMAST '98 Proceedings of the 7th International Conference on Algebraic Methodology and Software Technology
Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation
PLILP '92 Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming
Precise widening operators for convex polyhedra
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
Polymorphism and separation in hoare type theory
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
This paper studies the relation between execution and verification. A simple imperative language called VerExec with execution and verification commands is introduced. A machine only executes execution commands of a program, while the compiler only performs the verification commands. Common commands in other languages can be defined as a combination of execution and verification commands. Design of verifiers then becomes program design using verification commands. It is shown that type checking, abstract interpretation, modeling checking and Hoare Logic are all special verification programs, so are many of their combinations.