Typestates to Automata and back: a tool

09/17/2020
by   André Trindade, et al.
0

Development of software is an iterative process. Graphical tools to represent the relevant entities and processes can be helpful. In particular, automata capture well the intended execution flow of applications, and are thus behind many formal approaches, namely behavioral types. Typestate-oriented programming allow us to model and validate the intended protocol of applications, not only providing a top-down approach to the development of software, but also coping well with compositional development. Moreover, it provides important static guarantees like protocol fidelity and some forms of progress. Mungo is a front-end tool for Java that associates a typestate describing the valid orders of method calls to each class, and statically checks that the code of all classes follows the prescribed order of method calls. To assist programming with Mungo, as typestates are textual descriptions that are terms of an elaborate grammar, we developed a tool that bidirectionally converts typestates into an adequate form of automata, providing on one direction a visualization of the underlying protocol specified by the typestate, and on the reverse direction a way to get a syntactically correct typestate from the more intuitive automata representation.

READ FULL TEXT
research
08/21/2020

Visual Designing and Debugging of Deterministic Finite-State Machines in FSM

This article presents a visualization tool for designing and debugging d...
research
03/26/2022

A Runtime Environment for Contract Automata

Realising contract-based applications from formal specifications with fo...
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
04/02/2019

Concurrent Typestate-Oriented Programming in Java

We describe a generative approach that enables concurrent typestate-orie...
research
09/12/2022

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

Typestates are a notion of behavioral types that describe protocols for ...
research
08/02/2020

MDA Models and PIM/PSM Transformations Using Extended Automata

This paper proposes a model of execution platform for the OMG request of...
research
08/03/2021

Featured Team Automata

We propose featured team automata to support variability in the developm...

Please sign up or login with your details

Forgot password? Click here to reset