Writing Larch interface language specifications
ACM Transactions on Programming Languages and Systems (TOPLAS)
Systematic software development using VDM (2nd ed.)
Systematic software development using VDM (2nd ed.)
Applied software measurement: assuring productivity and quality
Applied software measurement: assuring productivity and quality
The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
Non-deterministic expressions and predicate transformers
Information Processing Letters
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Effective Java programming language guide
Effective Java programming language guide
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Parametric shape analysis via 3-valued logic
ACM Transactions on Programming Languages and Systems (TOPLAS)
The verifying compiler: A grand challenge for computing research
Journal of the ACM (JACM)
Computer
Checking Java Programs via Guarded Commands
Proceedings of the Workshop on Object-Oriented Technology
Predicative Programming - A Survey
Proceedings of the International Conference on Formal Methods in Programming and Their Applications
chi-Chek: A Multi-valued Model-Checker
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
Managing Software Requirements: A Use Case Approach
Managing Software Requirements: A Use Case Approach
High Integrity Software: The SPARK Approach to Safety and Security
High Integrity Software: The SPARK Approach to Safety and Security
Use Cases: Requirements in Context
Use Cases: Requirements in Context
Avoiding the Undefined by Underspecification
Avoiding the Undefined by Underspecification
A TWO-TIERED APPROACH TO SPECIFYING PROGRAMS
A TWO-TIERED APPROACH TO SPECIFYING PROGRAMS
Communications of the ACM - Why CS students need math
How the design of JML accommodates both runtime assertion checking and formal verification
Science of Computer Programming - Formal methods for components and objects pragmatic aspects and applications
Verified Software: A Grand Challenge
Computer
The verified software repository: a step towards the verifying compiler
Formal Aspects of Computing
Modular invariants for layered object structures
Science of Computer Programming - Special issue on source code analysis and manipulation (SCAM 2005)
Early detection of JML specification errors using ESC/Java2
Proceedings of the 2006 conference on Specification and verification of component-based systems
Are the Logical Foundations of Verifying Compiler Prototypes Matching user Expectations?
Formal Aspects of Computing
Beyond assertions: advanced specification and verification with JML and ESC/Java2
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
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
ESC/Java2: uniting ESC/Java and JML
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
Are practitioners writing contracts?
Rigorous Development of Complex Fault-Tolerant Systems
Checking Well-Formedness of Pure-Method Specifications
FM '08 Proceedings of the 15th international symposium on Formal Methods
JML Runtime Assertion Checking: Improved Error Reporting and Efficiency Using Strong Validity
FM '08 Proceedings of the 15th international symposium on Formal Methods
Efficient Well-Definedness Checking
IJCAR '08 Proceedings of the 4th international joint conference on Automated Reasoning
Behavioral interface specification languages
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
The Verifying Compiler (VC) project is a core component of the Dependable Systems Evolution Grand Challenge. The VC offers the promise of automatically proving that a program or component is correct, where correctness is defined by program assertions. While several VC prototypes exist, all adopt a semantics for assertions that is unsound. This paper presents a consolidation of VC requirements analysis activities that, in particular, brought us to ask targeted VC customers what kind of semantics they wanted. Taking into account both practitioners' needs and current technological factors, we offer recovery of soundness through an adjusted definition of assertion validity that matches user expectations and can be implemented practically using current prover technology. We describe how support for the new semantics has been added to ESC/Java2. Preliminary results demonstrate the effectiveness of the new semantics at uncovering previously indiscernible specification errors.