Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Implementation of resilient, atomic data types
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
Abstraction and specification in program development
Abstraction and specification in program development
Islands: aliasing protection in object-oriented languages
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Eiffel: the language
Larch: languages and tools for formal specification
Larch: languages and tools for formal specification
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
Toward reliable modular programs
Toward reliable modular programs
The B-book: assigning programs to meanings
The B-book: assigning programs to meanings
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Safely creating correct subclasses without seeing superclass code
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The structure of the “THE”-multiprogramming system
Communications of the ACM
Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
BI as an assertion language for mutable data structures
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Adoption and focus: practical linear types for imperative programming
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Object-Oriented Software Engineering; Conquering Complex and Changing Systems
Object-Oriented Software Engineering; Conquering Complex and Changing Systems
Behavioral Specifications of Businesses and Systems
Behavioral Specifications of Businesses and Systems
Data abstraction and information hiding
ACM Transactions on Programming Languages and Systems (TOPLAS)
Ownership types for safe programming: preventing data races and deadlocks
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Alias annotations for program understanding
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Ownership types for object encapsulation
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Sharing Objects by Read-Only References
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Reasoning about Hierarchical Storage
LICS '03 Proceedings of the 18th Annual IEEE Symposium on Logic in Computer Science
Atomizer: a dynamic atomicity checker for multithreaded programs
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Separation and information hiding
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Safejava: a unified type system for safe programming
Safejava: a unified type system for safe programming
A practical type system and language for reference immutability
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Object ownership and containment
Object ownership and containment
Transition predicate abstraction and fair termination
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Observational purity and encapsulation
FASE'05 Proceedings of the 8th international conference, held as part of the joint European Conference on Theory and Practice of Software conference on Fundamental Approaches to Software Engineering
Extending JML for modular specification and verification of multi-threaded programs
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
A verification methodology for model fields
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
A Sound Assertion Semantics for the Dependable Systems Evolution Verifying Compiler
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Information Hiding and Visibility in Interface Specifications
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Ownership transfer in universe types
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Separation logic, abstraction and inheritance
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Invariants for Non-Hierarchical Object Structures
Electronic Notes in Theoretical Computer Science (ENTCS)
ISEC '08 Proceedings of the 1st India software engineering conference
Reasoning about Object Structures Using Ownership
Verified Software: Theories, Tools, Experiments
Verified Software: Theories, Tools, Experiments
A Unified Framework for Verification Techniques for Object Invariants
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Flexible Immutability with Frozen Objects
VSTTE '08 Proceedings of the 2nd international conference on Verified Software: Theories, Tools, Experiments
jStar: towards practical verification for java
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Universe Types for Topology and Encapsulation
Formal Methods for Components and Objects
Specification and Verification of Invariants by Exploiting Layers in OO Designs
Fundamenta Informaticae - Concurrency Specification and Programming (CS&P)
Proving Consistency of Pure Methods and Model Fields
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
The need for flexible object invariants
International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming
Comparing universes and existential ownership types
International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming
Software hardening: a research agenda
Proceedings for the 1st workshop on Script to Program Evolution
On understanding data abstraction, revisited
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Modular reasoning about invariants over shared state with interposed data members
Proceedings of the 4th ACM SIGPLAN workshop on Programming languages meets program verification
Using history invariants to verify observers
ESOP'07 Proceedings of the 16th European conference on Programming
Verification of object-oriented software: The KeY approach
Verification of object-oriented software: The KeY approach
Verifying executable object-oriented specifications with separation logic
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
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
Encoding ownership types in java
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Dafny: an automatic program verifier for functional correctness
LPAR'10 Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning
Dynamic frames in java dynamic logic
FoVeOOS'10 Proceedings of the 2010 international conference on Formal verification of object-oriented software
Tunable static inference for generic universe types
Proceedings of the 25th European conference on Object-oriented programming
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)
Allowing state changes in specifications
ETRICS'06 Proceedings of the 2006 international conference on Emerging Trends in Information and Communication Security
JML’s rich, inherited specifications for behavioral subtypes
ICFEM'06 Proceedings of the 8th international conference on Formal Methods and Software Engineering
Considerate reasoning and the composite design pattern
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
Verification of object-oriented programs: A transformational approach
Journal of Computer and System Sciences
Relaxing restrictions on invariant composition in the B method by ownership control a la SPEC#
Rigorous Methods for Software Construction and Analysis
A modular verification methodology for c# delegates
Rigorous Methods for Software Construction and Analysis
B'07 Proceedings of the 7th international conference on Formal Specification and Development in B
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Behavioral interface specification languages
ACM Computing Surveys (CSUR)
Verifying backwards compatibility of object-oriented libraries using Boogie
Proceedings of the 14th Workshop on Formal Techniques for Java-like Programs
Specification and Verification of Invariants by Exploiting Layers in OO Designs
Fundamenta Informaticae - Concurrency Specification and Programming (CS&P)
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Validity invariants and effects
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Local Reasoning for Global Invariants, Part II: Dynamic Boundaries
Journal of the ACM (JACM)
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
On the Validation of Invariants at Runtime
Fundamenta Informaticae
Hi-index | 0.00 |
Classical specification and verification techniques support invariants for individual objects whose fields are primitive values, but do not allow sound modular reasoning about invariants involving more complex object structures. Such non-trivial object structures are common, and occur in lists, hash tables, and whenever systems are built in layers. A sound and modular verification technique for layered object structures has to deal with the well-known problem of representation exposure and the problem that invariants of higher layers are potentially violated by methods in lower layers; such methods cannot be modularly shown to preserve these invariants.We generalize classical techniques to cover layered object structures using a refined semantics for invariants based on an ownership model for alias control. This semantics enables sound and modular reasoning. We further extend this ownership technique to even more expressive invariants that gain their modularity by imposing certain visibility requirements.