VLISP: a verified implementation of Scheme
Lisp and Symbolic Computation
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The design and implementation of a certifying compiler
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Compiling with proofs
Simple relational correctness proofs for static analyses and program transformations
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automated soundness proofs for dataflow analyses and transformations via local rules
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Formal certification of a compiler back-end or: programming a compiler with a proof assistant
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Electronic Notes in Theoretical Computer Science (ENTCS)
Bytecode Analysis for Proof Carrying Code
Electronic Notes in Theoretical Computer Science (ENTCS)
Proof obligations preserving compilation
FAST'05 Proceedings of the Third international conference on Formal Aspects in Security and Trust
Proof-transforming compilation of programs with abrupt termination
Proceedings of the 2007 conference on Specification and verification of component-based systems: 6th Joint Meeting of the European Conference on Software Engineering and the ACM SIGSOFT Symposium on the Foundations of Software Engineering
Proof optimization for partial redundancy elimination
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Certificate translation for specification-preserving advices
Proceedings of the 7th workshop on Foundations of aspect-oriented languages
Preservation of Proof Obligations from Java to the Java Virtual Machine
IJCAR '08 Proceedings of the 4th international joint conference on Automated Reasoning
Bidirectional data-flow analyses, type-systematically
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Certified Reasoning in Memory Hierarchies
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
Certificate translation for optimizing compilers
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automatic Parallelization and Optimization of Programs by Proof Rewriting
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
Formal Certification of a Resource-Aware Language Implementation
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
A Formally Verified Compiler Back-end
Journal of Automated Reasoning
Detecting bugs in register allocation
ACM Transactions on Programming Languages and Systems (TOPLAS)
MOBIUS: mobility, ubiquity, security objectives and progress report
TGC'06 Proceedings of the 2nd international conference on Trustworthy global computing
Certificate translation in abstract interpretation
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Certified absence of dangling pointers in a language with explicit deallocation
IFM'10 Proceedings of the 8th international conference on Integrated formal methods
Hi-index | 0.00 |
Certifying compilation provides a means to ensure that untrusted mobile code satisfies its functional specification. A certifying compiler generates code as well as a machine-checkable “certificate”, i.e. a formal proof that establishes adherence of the code to specified properties. While certificates for safety properties can be built fully automatically, certificates for more expressive and complex properties often require the use of interactive code verification. We propose a technique to provide code consumers with the benefits of interactive source code verification. Our technique, certificate translation, extends program transformations by offering the means to turn certificates of functional correctness for programs in high-level languages into certificates for executable code. The article outlines the principles of certificate translation, using specifications written in first order logic. This translation is instantiated for standard compiler optimizations in the context of an intermediate RTL Language.