Predicate calculus and program semantics
Predicate calculus and program semantics
The B-book: assigning programs to meanings
The B-book: assigning programs to meanings
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
High Integrity Software: The SPARK Approach to Safety and Security
High Integrity Software: The SPARK Approach to Safety and Security
An overview of JML tools and applications
International Journal on Software Tools for Technology Transfer (STTT) - Special section on formal methods for industrial critical systems
Verification of C Programs Using Automated Reasoning
SEFM '07 Proceedings of the Fifth IEEE International Conference on Software Engineering and Formal Methods
An Overview of Separation Logic
Verified Software: Theories, Tools, Experiments
SystemVerilog for Verification, Second Edition: A Guide to Learning the Testbench Language Features
SystemVerilog for Verification, Second Edition: A Guide to Learning the Testbench Language Features
VCC: A Practical System for Verifying Concurrent C
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
OpenJML: JML for Java 7 by extending OpenJDK
NFM'11 Proceedings of the Third international conference on NASA Formal methods
Correct code containing containers
TAP'11 Proceedings of the 5th international conference on Tests and proofs
An executable formal semantics of C with applications
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
The verifying compiler, a grand challenge for computing research
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Frama-C: a software analysis perspective
SEFM'12 Proceedings of the 10th international conference on Software Engineering and Formal Methods
Hi-index | 0.00 |
Formal program verification tools check that a program correctly implements its specification. Existing specification languages for well-known programming languages (Ada, C, Java, C#) have been developed independently from the programming language to which they apply. As a result, specifications are expressed separately from the code, typically as stylized comments, and the verification tools often bear no direct relation to the production compiler. We argue that this approach is problematic, and that the compiler and the verification tools should be integrated seamlessly. Based on our current work on the Hi-Lite project to develop a formal verification tool for Ada2012, we show that in an integrated setting, the compiler becomes the centerpiece of the verification architecture, and supports both static proofs and run-time assertion checking. Such an environment does much to simplify software certification.