International audienceDetecting programming errors in software is increasingly important, and building tools that help developers with this task is a crucial area of investigation on which the industry depends. Leveraging on the observation that in Object-Oriented Programming (OOP) it is natural to define stateful objects where the safe use of methods depends on their internal state, we present Java Typestate Checker (JATYC), a tool that verifies Java source code with respect to typestates. A typestate defines the object's states, the methods that can be called in each state, and the states resulting from the calls. The tool statically verifies that when a Java program runs: sequences of method calls obey to object's protocols; objects' pro...
Java interface types support multiple inheritance. Because of this, the standard bytecode verifier i...
We present an operational semantics, type system, and a proof of type soundness for a substantial su...
A number of type systems have used typestates to specify and statically verify protocol compliance. ...
This work was partially supported by the EU H2020 RISE programme under the Marie Skłodowska-Curie gr...
Typestate reflects how the legal operations on imperative objects can change at runtime as their int...
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...
Previous work has proven typestates to be useful for modeling protocols in object-oriented languages...
In general, modern programs are large and complex and it is essential that they should be highly rel...
We have created a framework for adding custom type qual-ifiers to the Java language in a backward-co...
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 ...
This paper introduces the Checker Framework, which supports adding pluggable type systems to the Jav...
Java interface types support multiple inheritance. Because of this, the standard bytecode verifier i...
We present an operational semantics, type system, and a proof of type soundness for a substantial su...
A number of type systems have used typestates to specify and statically verify protocol compliance. ...
This work was partially supported by the EU H2020 RISE programme under the Marie Skłodowska-Curie gr...
Typestate reflects how the legal operations on imperative objects can change at runtime as their int...
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...
Previous work has proven typestates to be useful for modeling protocols in object-oriented languages...
In general, modern programs are large and complex and it is essential that they should be highly rel...
We have created a framework for adding custom type qual-ifiers to the Java language in a backward-co...
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 ...
This paper introduces the Checker Framework, which supports adding pluggable type systems to the Jav...
Java interface types support multiple inheritance. Because of this, the standard bytecode verifier i...
We present an operational semantics, type system, and a proof of type soundness for a substantial su...
A number of type systems have used typestates to specify and statically verify protocol compliance. ...