The design and implementation of a certifying compiler
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Automating proofs of the absence of common runtime errors
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Compsing Re-usable Synthesis Methods through Graph-based Viewpoints
Intellectics and Computational Logic (to Wolfgang Bibel on the occasion of his 60th birthday)
Tracing the Origins of Verification Conditions
AMAST '96 Proceedings of the 5th International Conference on Algebraic Methodology and Software Technology
AutoBayes/CC - Combining Program Synthesis with Automatic Code Certification - System Description
CADE-18 Proceedings of the 18th International Conference on Automated Deduction
A declarative framework for adaptable applications in heterogeneous environments
Proceedings of the 2004 ACM symposium on Applied computing
Hi-index | 0.00 |
One challenging issue in automated software engineering is to ensure safety of software execution in changing contexts. In such a scenario, various users, the "code consumers", download an application from a remote server and execute it in their heterogeneous environments. In this paper, a generic meta-level framework (C^3) that allows easy adaptation to different contexts for automated safety certification of annotated programs is presented. Context-dependent safety requirements are decoupled from the program specification. The Floyd-Hoare verification method is extended, and a verification condition generator for deriving generic safety preconditions in terms of generic safety predicates is devised and implemented. The generated safety conditions are simplified and transformed into a negated normal form. This translates the safety verification task into the equivalent task to disprove the existence of a counter example in relation to the selected context. One distinguishing feature of C^3 is that safety contexts are meta-level interface specifications. Lifting maps the proof tasks onto the meta-level. Context-dependent safety checking is performed by meta-level reasoning and constraint-solving. A proof of concept implementation was applied to automatically certify absence of context-specific runtime errors and to identify bugs in several cases.