Larch: languages and tools for formal specification
Larch: languages and tools for formal specification
Typing the specialization interface
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Object-oriented specification case studies
Object-oriented specification case studies
Exploiting specifications to improve program performance
Exploiting specifications to improve program performance
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
Aspect: detecting bugs with abstract dependences
ACM Transactions on Software Engineering and Methodology (TOSEM)
Toward reliable modular programs
Toward reliable modular programs
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Data groups: specifying the modification of extended state
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Promises: limited specifications for analysis and manipulation
Proceedings of the 20th international conference on Software engineering
Recursive Object Types in a Logic of Object-Oriented Programs
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
A Logic of Object-Oriented Programs
TAPSOFT '97 Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
Predicate Transformer Semantics of an Oberon-Like Language
PROCOMET '94 Proceedings of the IFIP TC2/WG2.1/WG2.2/WG2.3 Working Conference on Programming Concepts, Methods and Calculi
Logical foundations for typed object-oriented languages
PROCOMET '98 Proceedings of the IFIP TC2/WG2.2,2.3 International Conference on Programming Concepts and Methods
An Extended Static Checker for Modular-3
CC '98 Proceedings of the 7th International Conference on Compiler Construction
Upgrading the Pre- and Postcondition Technique
VDM '91 Proceedings of the 4th International Symposium of VDM Europe on Formal Software Development-Volume I: Conference Contributions - Volume I
Modularity in the Presence of Subclassing
Modularity in the Presence of Subclassing
Data groups: specifying the modification of extended state
Proceedings of the 13th 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
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Using data groups to specify and check side effects
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Data abstraction and information hiding
ACM Transactions on Programming Languages and Systems (TOPLAS)
Assuring and evolving concurrent programs: annotations and policy
Proceedings of the 24th International Conference on Software Engineering
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
An analyzable annotation language
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
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
Ownership types for object encapsulation
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An Object-Oriented Effects System
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
CHASE: A Static Checker for JML's Assignable Clause
VMCAI 2003 Proceedings of the 4th International Conference on Verification, Model Checking, and Abstract Interpretation
ECOOP '00 Proceedings of the Workshops, Panels, and Posters on Object-Oriented Technology
Applications of Extended Static Checking
SAS '01 Proceedings of the 8th International Symposium on Static Analysis
Extended Static Checking: A Ten-Year Perspective
Informatics - 10 Years Back. 10 Years Ahead.
Programming methodology
Automatic detection of immutable fields in Java
CASCON '00 Proceedings of the 2000 conference of the Centre for Advanced Studies on Collaborative research
Transition predicate abstraction and fair termination
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Connecting effects and uniqueness with adoption
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Model variables: cleanly supporting abstraction in design by contract: Research Articles
Software—Practice & Experience
Language constructs for improving reusability in object-oriented software
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Associating synchronization constraints with data in an object-oriented language
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A specification-based approach to reasoning about pointers
SAVCBS '05 Proceedings of the 2005 conference on Specification and verification of component-based systems
Preliminary design of JML: a behavioral interface specification language for java
ACM SIGSOFT Software Engineering Notes
A proof outline logic for object-oriented programming
Theoretical Computer Science - Formal methods for components and objects
Simplifying reasoning about objects with Tako
Proceedings of the 2006 conference on Specification and verification of component-based systems
Information Hiding and Visibility in Interface Specifications
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Modular typestate checking of aliased objects
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Modular verification of higher-order methods with mandatory calls specified by model programs
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
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
Separation Logic Contracts for a Java-Like Language with Fork/Join
AMAST 2008 Proceedings of the 12th international conference on Algebraic Methodology and Software Technology
Masked types for sound object initialization
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Thread Safety through Partitions and Effect Agreements
Languages and Compilers for Parallel Computing
Aliasing, Confinement, and Ownership in Object-Oriented Programming
Object-Oriented Technology. ECOOP 2008 Workshop Reader
Comprehending annotations on object-oriented programs using fractional permissions
International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming
Concurrency by default: using permissions to express dataflow in stateful programs
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Modular specification and verification of object-oriented programs
Modular specification and verification of object-oriented programs
Proceedings of the 2010 ACM Symposium on Applied Computing
A type system for data-centric synchronization
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Aliasing control with view-based typestate
Proceedings of the 12th Workshop on Formal Techniques for Java-Like Programs
Dafny: an automatic program verifier for functional correctness
LPAR'10 Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning
A refinement methodology for object-oriented programs
FoVeOOS'10 Proceedings of the 2010 international conference on Formal verification of object-oriented software
A theory of skiplists with applications to the verification of concurrent datatypes
NFM'11 Proceedings of the Third international conference on NASA Formal methods
Automatic inference of model fields and their representation
Proceedings of the 13th Workshop on Formal Techniques for Java-Like Programs
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
JML’s rich, inherited specifications for behavioral subtypes
ICFEM'06 Proceedings of the 8th international conference on Formal Methods and Software Engineering
Efficient runtime assertion checking of assignable clauses with datagroups
FASE'10 Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering
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
A data-centric approach to synchronization
ACM Transactions on Programming Languages and Systems (TOPLAS)
Dynamic frames: support for framing, dependencies and sharing without restrictions
FM'06 Proceedings of the 14th international conference on Formal Methods
A verification methodology for model fields
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Behavioral interface specification languages
ACM Computing Surveys (CSUR)
Multiple aggregate entry points for ownership types
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Synthesizing iterators from abstraction functions
Proceedings of the 11th International Conference on Generative Programming and Component Engineering
A higher abstraction level using first-class inheritance relations
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Modular verification of OO programs with interfaces
ICFEM'12 Proceedings of the 14th international conference on Formal Engineering Methods: formal methods and software engineering
Local Reasoning for Global Invariants, Part I: Region Logic
Journal of the ACM (JACM)
PLDI 2002: Extended static checking for Java
ACM SIGPLAN Notices - Supplemental issue
Æminium: A Permission-Based Concurrent-by-Default Programming Language Approach
ACM Transactions on Programming Languages and Systems (TOPLAS)
Alias control for deterministic parallelism
Aliasing in Object-Oriented Programming
Object ownership in program verification
Aliasing in Object-Oriented Programming
Aliasing in Object-Oriented Programming
Hi-index | 0.00 |
This paper explores the interpretation of specifications in the context of an object-oriented programming language with subclassing and method overrides. In particular, the paper considers annotations for describing what variables a method may change and the interpretation of these annotations. The paper shows that there is a problem to be solved in the specification of methods whose overrides may modify additional state introduced in subclasses. As a solution to this problem, the paper introduces data groups, which enable modular checking and rather naturally capture a programmer's design decisions.