Typestate reflects how the legal operations on imperative objects can change at runtime as their internal state changes. A typestate checker can statically ensure, for instance, that an object method is only called when the object is in a state for which the operation is well-defined. Prior work has shown how modular typestate checking can be achieved thanks to access permissions and state guarantees. However, static typestate checking is still too rigid for some applications. This paper formalizes a nominal object-oriented language with mutable state that integrates typestate change and typestate checking as primitive concepts. In addition to augmenting the types of object references with access permissions and state guarantees, the langua...
Previous work has proven typestates to be useful for modeling protocols in object-oriented languages...
Gradually typed languages offer both static and dynamic checking of program invariants, from simple ...
Dependently typed programming languages provide a way to write programs, specifications, and correct...
Typestate reflects how the legal operations on imperative objects can change at runtime as their int...
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...
Abstract. Static and dynamic type systems have well-known strengths and weaknesses. In previous work...
International audienceDetecting programming errors in software is increasingly important, and buildi...
AbstractIn current class-based Object-Oriented Programming Languages (OOPLs), object types include o...
A number of type systems have used typestates to specify and statically verify protocol compliance. ...
Typestate systems allow the type of an object to change during its lifetime in the computation. Unli...
Gradual typing is a discipline for integrating dynamic checking into a static type system. Since its...
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 ...
Previous work has proven typestates to be useful for modeling protocols in object-oriented languages...
Gradually typed languages offer both static and dynamic checking of program invariants, from simple ...
Dependently typed programming languages provide a way to write programs, specifications, and correct...
Typestate reflects how the legal operations on imperative objects can change at runtime as their int...
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...
Abstract. Static and dynamic type systems have well-known strengths and weaknesses. In previous work...
International audienceDetecting programming errors in software is increasingly important, and buildi...
AbstractIn current class-based Object-Oriented Programming Languages (OOPLs), object types include o...
A number of type systems have used typestates to specify and statically verify protocol compliance. ...
Typestate systems allow the type of an object to change during its lifetime in the computation. Unli...
Gradual typing is a discipline for integrating dynamic checking into a static type system. Since its...
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 ...
Previous work has proven typestates to be useful for modeling protocols in object-oriented languages...
Gradually typed languages offer both static and dynamic checking of program invariants, from simple ...
Dependently typed programming languages provide a way to write programs, specifications, and correct...