Program construction and verification
Program construction and verification
Predicate calculus and program semantics
Predicate calculus and program semantics
Data structures and program transformation
Science of Computer Programming
Attribute grammar paradigms—a high-level methodology in language implementation
ACM Computing Surveys (CSUR)
ACM Computing Surveys (CSUR)
Reasoning about Java classes: preliminary report
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An axiomatic basis for computer programming
Communications of the ACM
Introduction to Functional Programming
Introduction to Functional Programming
Modular Denotational Semantics for Compiler Construction
ESOP '96 Proceedings of the 6th European Symposium on Programming Languages and Systems
A Monad for Basic Java Semantics
AMAST '00 Proceedings of the 8th International Conference on Algebraic Methodology and Software Technology
Trustworthy Tools for Trustworthy Programs: A Verified Verification Condition Generator
Proceedings of the 7th International Workshop on Higher Order Logic Theorem Proving and Its Applications
Hi-index | 0.00 |
This paper describes a technique that combines algebraic datatypes and monads to build derivative verification condition generators (VCGs) by extending a base VCG. Extensions are compositional and can be stacked while the base VCG is left unchanged. The technique can be used to build a set of weaker VCGs to do light weight verification. Moreover, it enables us to add an ability to generate validation traces. The paper explains the technique through an example that extends a simple language L0 with new constructs to handle exceptions. To deal with exceptions, not only the logic of L0 has to be extended with new rules, its structure also needs to be changed. We show that using our technique the extension can be implemented in a simple and compositional way, without any change to the underlying logic.