Programming language theory and its implementation
Programming language theory and its implementation
Mechanizing programming logics in higher order logic
Current trends in hardware verification and automated theorem proving
Formal Verification for Fault-Tolerant Architectures: Prolegomena to the Design of PVS
IEEE Transactions on Software Engineering
Toward reliable modular programs
Toward reliable modular programs
Verification of sequential and concurrent programs (2nd ed.)
Verification of sequential and concurrent programs (2nd ed.)
Reasoning about Java classes: preliminary report
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The Java programming language (2nd ed.)
The Java programming language (2nd ed.)
Theories of programming languages
Theories of programming languages
Ten Years of Hoare's Logic: A Survey—Part I
ACM Transactions on Programming Languages and Systems (TOPLAS)
A generalized control structure and its formal definition
Communications of the ACM
The Science of Programming
Mathematical Theory of Program Correctness
Mathematical Theory of Program Correctness
The Java Language Specification
The Java Language Specification
Reasonong about Classess in Object-Oriented Languages: Logical Models and Tools
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
A Programming Logic for Sequential Java
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
A Type-Theoretic Memory Model for Verification of Sequential Java Programs
WADT '99 Selected papers from the 14th International Workshop on Recent Trends in Algebraic Development Techniques
A Logic of Object-Oriented Programs
TAPSOFT '97 Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
A Case Study in Class Library Verification: Java's Vector Class
Proceedings of the Workshop on Object-Oriented Technology
PROCOMET '94 Proceedings of the IFIP TC2/WG2.1/WG2.2/WG2.3 Working Conference on Programming Concepts, Methods and Calculi
PVS: Combining Specification, Proof Checking, and Model Checking
CAV '96 Proceedings of the 8th International Conference on Computer Aided Verification
A Comparison of PVS and Isabelle/HOL
Proceedings of the 11th International Conference on Theorem Proving in Higher Order Logics
A Logic for the Java Modeling Language JML
FASE '01 Proceedings of the 4th International Conference on Fundamental Approaches to Software Engineering
A Formalisation of Java's Exception Mechanism
ESOP '01 Proceedings of the 10th European Symposium on Programming Languages and Systems
Executable and Symbolic Conformance Tests for Implementation Models
OOIS '02 Proceedings of the Workshops on Advances in Object-Oriented Information Systems
A Monad for Basic Java Semantics
AMAST '00 Proceedings of the 8th International Conference on Algebraic Methodology and Software Technology
The LOOP Compiler for Java and JML
TACAS 2001 Proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Inheritance in Higher Order Logic: Modeling and Reasoning
TPHOLs '00 Proceedings of the 13th International Conference on Theorem Proving in Higher Order Logics
Formal Techniques for Java Programs
ECOOP '00 Proceedings of the Workshops, Panels, and Posters on Object-Oriented Technology
A Dynamic Logic for the Formal Verification of Java Card Programs
JavaCard '00 Revised Papers from the First International Workshop on Java on Smart Cards: Programming and Security
Hoare Logic for NanoJava: Auxiliary Variables, Side Effects, and Virtual Methods Revisited
FME '02 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods - Getting IT Right
Verification of Java's AbstractCollection Class: A Case Study
MPC '02 Proceedings of the 6th International Conference on Mathematics of Program Construction
Extending JML Specifications with Temporal Logic
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
Rewriting, inference, and proof
WRLA'10 Proceedings of the 8th international conference on Rewriting logic and its applications
Formal verification of QVT transformations for code generation
Proceedings of the 14th international conference on Model driven engineering languages and systems
A typed, compositional logic for a stack-based abstract machine
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Refining exceptions in four-valued logic
LOPSTR'09 Proceedings of the 19th international conference on Logic-Based Program Synthesis and Transformation
Checking JML specifications with b machines
ZB'05 Proceedings of the 4th international conference on Formal Specification and Development in Z and B
CALCO'05 Proceedings of the First international conference on Algebra and Coalgebra in Computer Science
Verification of object-oriented programs: A transformational approach
Journal of Computer and System Sciences
Formal reasoning about non-atomic java card methods in dynamic logic
FM'06 Proceedings of the 14th international conference on Formal Methods
Advanced Lectures on Software Engineering
A type theoretic framework for formal metamodelling
Proceedings of the 2004 international conference on Architecting Systems with Trustworthy Components
Behavioral interface specification languages
ACM Computing Surveys (CSUR)
Hoare-Style Verification of Graph Programs
Fundamenta Informaticae - Recent Developments in the Theory of Graph Transformation, 2010
Compositional type systems for stack-based low-level languages
CATS '06 Proceedings of the Twelfth Computing: The Australasian Theory Symposium - Volume 51
Hi-index | 0.02 |
This paper formalises a semantics for statements and expressions (in sequential imperative languages) which includes non-termination, normal termination and abrupt termination (e.g. because of an exception, break, return or continue). This extends the traditional semantics underlying e.g. Hoare logic, which only distinguishes termination and non-termination. An extension of Hoare logic is elaborated that includes means for reasoning about abrupt termination (and side-effects). It prominently involves rules for reasoning about while loops, which may contain exceptions, breaks, continues and returns. This extension applies in particular to Java. As an example, a standard pattern search algorithm in Java (involving a while loop with returns) is proven correct using the proof-tool PVS.