Implementation of the typed call-by-value λ-calculus using a stack of regions
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Data abstraction and information hiding
ACM Transactions on Programming Languages and Systems (TOPLAS)
Ownership, encapsulation and the disjointness of type and effect
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proving Pointer Programs in Hoare Logic
MPC '00 Proceedings of the 5th International Conference on Mathematics of Program Construction
Program logic and equivalence in the presence of garbage collection
Theoretical Computer Science - Foundations of software science and computation structures
Separation and information hiding
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Transition predicate abstraction and fair termination
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Semantics of Separation-Logic Typing and Higher-Order Frame Rules
LICS '05 Proceedings of the 20th Annual IEEE Symposium on Logic in Computer Science
Ownership confinement ensures representation independence for object-oriented programs
Journal of the ACM (JACM)
A logic for information flow in object-oriented programs
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A proof outline logic for object-oriented programming
Theoretical Computer Science - Formal methods for components and objects
Polymorphism and separation in hoare type theory
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Towards imperative modules: reasoning about invariants and sharing of mutable state
Theoretical Computer Science - Components and objects
Towards a logical account of declassification
Proceedings of the 2007 workshop on Programming languages and analysis for security
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Ownership transfer in universe types
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Regional Logic for Local Reasoning about Global Invariants
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
An automatic verifier for Java-like programs based on dynamic frames
FASE'08/ETAPS'08 Proceedings of the Theory and practice of software, 11th international conference on Fundamental approaches to software engineering
Dynamic frames: support for framing, dependencies and sharing without restrictions
FM'06 Proceedings of the 14th international conference on Formal Methods
Regional Logic for Local Reasoning about Global Invariants
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Boogie Meets Regions: A Verification Experience Report
VSTTE '08 Proceedings of the 2nd international conference on Verified Software: Theories, Tools, Experiments
Implicit Dynamic Frames: Combining Dynamic Frames and Separation Logic
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Field-Sensitive Value Analysis by Field-Insensitive Analysis
FM '09 Proceedings of the 2nd World Congress on Formal Methods
Local reasoning and dynamic framing for the composite pattern and its clients
VSTTE'10 Proceedings of the Third international conference on Verified software: theories, tools, experiments
Reasoning about function objects
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Modular verification of linked lists with views via separation logic
Proceedings of the 12th Workshop on Formal Techniques for Java-Like Programs
Proceedings of the 5th ACM workshop on Programming languages meets program verification
Dafny: an automatic program verifier for functional correctness
LPAR'10 Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning
Decision procedures for the temporal verification of concurrent lists
ICFEM'10 Proceedings of the 12th international conference on Formal engineering methods and software engineering
A refinement methodology for object-oriented programs
FoVeOOS'10 Proceedings of the 2010 international conference on Formal verification of object-oriented software
NFM'11 Proceedings of the Third international conference on NASA Formal methods
A theory of skiplists with applications to the verification of concurrent datatypes
NFM'11 Proceedings of the Third international conference on NASA Formal methods
The relationship between separation logic and implicit dynamic frames
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
Verifying multi-object invariants with relationships
Proceedings of the 25th European conference on Object-oriented programming
Separating ownership topology and encapsulation with generic universe types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Considerate reasoning and the composite design pattern
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Collections, cardinalities, and relations
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Semantics and enforcement of expressive information flow policies
FAST'09 Proceedings of the 6th international conference on Formal Aspects in Security and Trust
ACM Transactions on Programming Languages and Systems (TOPLAS)
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Behavioral interface specification languages
ACM Computing Surveys (CSUR)
Decision procedures for region logic
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Comparing verification condition generation with symbolic execution: an experience report
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
Modular verification of object-based programs: abstract of invited talk
FoVeOOS'11 Proceedings of the 2011 international conference on Formal Verification of Object-Oriented Software
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Local Reasoning for Global Invariants, Part I: Region Logic
Journal of the ACM (JACM)
A flow-insensitive, modular effect system for purity
Proceedings of the 15th Workshop on Formal Techniques for Java-like Programs
Automating separation logic using SMT
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Alias control for deterministic parallelism
Aliasing in Object-Oriented Programming
Object ownership in program verification
Aliasing in Object-Oriented Programming
State based encapsulation for modular reasoning about behavior-preserving refactorings
Aliasing in Object-Oriented Programming
Aliasing in Object-Oriented Programming
On the Validation of Invariants at Runtime
Fundamenta Informaticae
Hi-index | 0.00 |
Shared mutable objects pose grave challenges in reasoning, especially for data abstraction and modularity. This paper presents a novel logic for error-avoiding partial correctness of programs featuring shared mutable objects. Using a first order assertion language, the logic provides heap-local reasoning about mutation and separation, via ghost fields and variables of type `region' (finite sets of object references). A new form of modifies clause specifies write, read, and allocation effects using region expressions; this supports effect masking and a frame rule that allows a command to read state on which the framed predicate depends. Soundness is proved using a standard program semantics. The logic facilitates heap-local reasoning about object invariants: disciplines such as ownership are expressible but not hard-wired in the logic.