Previous work has proven typestates to be useful for modeling protocols in object-oriented languages. We build on this work by addressing substitutability of subtypes as well as improving precision and conciseness of specifications. We propose a specification technique for objects based on abstract states that incorporates state refinement, method refinement, and orthogonal state dimensions. Union and intersection types form the underlying semantics of method specifications. The approach guarantees substitutability and behavioral subtyping. We designed a dynamic analysis to check existing object-oriented software for protocol conformance and validated our approach by specifying two standard Java libraries. We provide preliminary evidence fo...
We define a small class-based object-oriented language in which the availability of methods depends ...
We propose union types for statically typed class-based object-oriented languages as a means to enha...
Previous work on type-theoretic foundations for object-oriented programming languages has mostly foc...
Typestate oriented programming integrates notions of typestate directly into the semantics of an obj...
Typestate oriented programming integrates notions of typestate directly into the semantics of an obj...
Typestate oriented programming integrates notions of typestate directly into the semantics of an obj...
A number of type systems have used typestates to specify and statically verify protocol compliance. ...
AbstractIn current class-based Object-Oriented Programming Languages (OOPLs), object types include o...
Typestate systems allow the type of an object to change during its lifetime in the computation. Unli...
An active area of research in computer science is the prevention of violations of object protocols, ...
Typestate reflects how the legal operations on imperative objects can change at runtime as their int...
Abstract. Session types allow communication protocols to be specified type-theoretically so that pro...
International audienceDetecting programming errors in software is increasingly important, and buildi...
Typestate reflects how the legal operations on imperative objects can change at runtime as their int...
We define a small class-based object-oriented language in which the availability of methods depends ...
We define a small class-based object-oriented language in which the availability of methods depends ...
We propose union types for statically typed class-based object-oriented languages as a means to enha...
Previous work on type-theoretic foundations for object-oriented programming languages has mostly foc...
Typestate oriented programming integrates notions of typestate directly into the semantics of an obj...
Typestate oriented programming integrates notions of typestate directly into the semantics of an obj...
Typestate oriented programming integrates notions of typestate directly into the semantics of an obj...
A number of type systems have used typestates to specify and statically verify protocol compliance. ...
AbstractIn current class-based Object-Oriented Programming Languages (OOPLs), object types include o...
Typestate systems allow the type of an object to change during its lifetime in the computation. Unli...
An active area of research in computer science is the prevention of violations of object protocols, ...
Typestate reflects how the legal operations on imperative objects can change at runtime as their int...
Abstract. Session types allow communication protocols to be specified type-theoretically so that pro...
International audienceDetecting programming errors in software is increasingly important, and buildi...
Typestate reflects how the legal operations on imperative objects can change at runtime as their int...
We define a small class-based object-oriented language in which the availability of methods depends ...
We define a small class-based object-oriented language in which the availability of methods depends ...
We propose union types for statically typed class-based object-oriented languages as a means to enha...
Previous work on type-theoretic foundations for object-oriented programming languages has mostly foc...