A practical algorithm for exact array dependence analysis
Communications of the ACM
POPL '75 Proceedings of the 2nd ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Exception safety: concepts and techniques
Advances in exception handling techniques
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Program Analysis Using Mixed Term and Set Constraints
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
Improving Software Robustness with Dependability Cases
FTCS '98 Proceedings of the The Twenty-Eighth Annual International Symposium on Fault-Tolerant Computing
An uncaught exception analysis for Java
Journal of Systems and Software
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
SEFM '04 Proceedings of the Software Engineering and Formal Methods, Second International Conference
Translation and optimization for a core calculus with exceptions
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Exception Handlers as Extensible Cases
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
Automated verification of shape and size properties via separation logic
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
Verification of object-oriented software: The KeY approach
Verification of object-oriented software: The KeY approach
Towards automatic exception safety verification
FM'06 Proceedings of the 14th international conference on Formal Methods
Interprocedural exception analysis for C++
Proceedings of the 25th European conference on Object-oriented programming
Hi-index | 0.01 |
Exception handling is an important language feature for building more robust software programs. It is primarily concerned with capturing abnormal events, with the help of catch handlers for supporting recovery actions. In this paper, we advocate for a specification logic that can uniformly handle exceptions, program errors and other kinds of control flows. Our logic treats exceptions as possible outcomes that could be later remedied, while errors are conditions that should be avoided by user programs. This distinction is supported through a uniform mechanism that captures static control flows (such as normal execution) and dynamic control flows (such as exceptions) within a single formalism. Following Stroustrup's definition [15,9], our verification technique could ensure exception safety in terms of four guarantees of increasing quality, namely no-leak guarantee, basic guarantee, strong guarantee and no-throw guarantee.