On using VeriFast, VerCors, Plural, and KeY to check object usage

09/12/2022
by   João Mota, et al.
0

Typestates are a notion of behavioral types that describe protocols for stateful objects, specifying the available methods for each state, in terms of a state machine. Usually, objects with protocol are either forced to be used in a linear way, which restricts what a programmer can do, or deductive verification is required to verify programs where these objects may be aliased. To evaluate the strengths and limitations of static verification tools for object-oriented languages in checking the correct use of shared objects with protocol, we present a survey on four tools for Java: VeriFast, VerCors, Plural, and KeY. We describe the implementation of a file reader and of a linked-list, check for each tool its ability to statically guarantee protocol compliance as well as protocol completion, even when objects are shared in collections, and evaluate the programmer's effort in making the code acceptable to these tools.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/02/2019

Concurrent Typestate-Oriented Programming in Java

We describe a generative approach that enables concurrent typestate-orie...
research
02/28/2020

Behavioural Types for Memory and Method Safety in a Core Object-Oriented Language

We present a type-based analysis ensuring memory safety and object proto...
research
08/27/2019

Who is to Blame? Runtime Verification of Distributed Objects with Active Monitors

Since distributed software systems are ubiquitous, their correct functio...
research
05/19/2021

MetaCP: Cryptographic Protocol Design Tool for Formal Verification

We present MetaCP, a tool to aid the cryptographer throughout the proces...
research
09/17/2020

Typestates to Automata and back: a tool

Development of software is an iterative process. Graphical tools to repr...
research
09/18/2018

The Archive and Package (arcp) URI scheme

The arcp URI scheme is introduced for location-independent identifiers t...

Please sign up or login with your details

Forgot password? Click here to reset