2020
DOI: 10.4204/eptcs.324.4
|View full text |Cite
|
Sign up to set email alerts
|

Typestates to Automata and back: a tool

Abstract: 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,… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
4
0

Year Published

2021
2021
2023
2023

Publication Types

Select...
2
1
1

Relationship

1
3

Authors

Journals

citations
Cited by 4 publications
(4 citation statements)
references
References 10 publications
0
4
0
Order By: Relevance
“…Similarly to CARE, the runtime environment for contract automata [6], in Mungo finite state automata are used as behaviour assigned to Java classes (one automaton per class), with transition labels corresponding to methods of the classes. A tool to translate typestates into automata was presented at ICE 2020 [26]. CATApp, a graphical front-end tool for designing contract automata, is available in [19].…”
Section: Related Workmentioning
confidence: 99%
“…Similarly to CARE, the runtime environment for contract automata [6], in Mungo finite state automata are used as behaviour assigned to Java classes (one automaton per class), with transition labels corresponding to methods of the classes. A tool to translate typestates into automata was presented at ICE 2020 [26]. CATApp, a graphical front-end tool for designing contract automata, is available in [19].…”
Section: Related Workmentioning
confidence: 99%
“…Other approaches to connect implementations with behavioural types (e.g., behavioural contracts, session types) are surveyed in [2,21]. Our approach is closer to [22,28], where behavioural types are expressed as finite state automata of Mungo, called typestates [27]. The toolchain of Mungo and StMungo is proposed to implement behavioural types specifications.…”
Section: Related Workmentioning
confidence: 99%
“…We use the enumeration to represent the non-deterministic nature of the transition [12], as well as force the user to match against both cases. This enumeration has a few rules; all variants must be of Unit type 13 , and they must also share their identifier with an existing state.…”
Section: Advanced Featuresmentioning
confidence: 99%
“…get_color). Our PlantUML representation resembles Deterministic Object Automata [12], using diamonds to represent the possible outcomes of an operation.…”
Section: #[ Typestate ( Enumerate ) ]mentioning
confidence: 99%