Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applicatio 2015
DOI: 10.1145/2814270.2814287
|View full text |Cite
|
Sign up to set email alerts
|

The chemical approach to typestate-oriented programming

Abstract: We study a novel approach to typestate-oriented programming based on the chemical metaphor: state and operations on objects are molecules of messages and state transformations are chemical reactions. This approach allows us to investigate typestate in an inherently concurrent setting, whereby objects can be accessed and modified concurrently by several processes, each potentially changing only part of their state. We introduce a simple behavioral type theory to express in a uniform way both the private and the… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4
1

Citation Types

0
14
0

Year Published

2015
2015
2020
2020

Publication Types

Select...
3
2
2

Relationship

2
5

Authors

Journals

citations
Cited by 12 publications
(14 citation statements)
references
References 48 publications
(89 reference statements)
0
14
0
Order By: Relevance
“…The code is modified from the generated version by adding the request and host messages needed to request the home page from www.google.co.uk. In line 2 we create a new HTTP client, currentC, and proceed by showing the code for a small correctly formatted request, with the initial, mandatory request line messages being sent first (lines 5-6); then among the recursive choice cases we show the code for sending the the host field (lines 10-11), before concluding the request by an empty body (lines [15][16]. Then currentC will receive the response status line (lines 19-26) followed by recursive choice cases for the fields to be received from the server (lines [27][28][29][30][31][32][33][34][35][36].…”
Section: Mungomentioning
confidence: 99%
See 1 more Smart Citation
“…The code is modified from the generated version by adding the request and host messages needed to request the home page from www.google.co.uk. In line 2 we create a new HTTP client, currentC, and proceed by showing the code for a small correctly formatted request, with the initial, mandatory request line messages being sent first (lines 5-6); then among the recursive choice cases we show the code for sending the the host field (lines 10-11), before concluding the request by an empty body (lines [15][16]. Then currentC will receive the response status line (lines 19-26) followed by recursive choice cases for the fields to be received from the server (lines [27][28][29][30][31][32][33][34][35][36].…”
Section: Mungomentioning
confidence: 99%
“…Militão et al [36] present an expressive fine-grained system. Crafa and Padovani [16,40] present an approach to concurrent typestate-oriented programming, allowing objects to be accessed and modified concurrently by several processes, each potentially changing only part of their state. Some work [32,39] combines static checking of typestate (or session type) properties with dynamic monitoring of (non-)aliasing properties.…”
Section: Related Workmentioning
confidence: 99%
“…Actors and Objects. Crafa and Padovani [11,35] investigate behavioral types for the object-oriented join calculus with typestate, a concurrency model similar to actors. Gay et al [18] model channels as objects, integrating MPST with classes; Dezani-Ciancaglini et al [13] use MPST in the object-oriented language MOOSE, where types describe communication through shared channels.…”
Section: Related Workmentioning
confidence: 99%
“…This approach supports a progression from a prototype program with many dynamic checks to a robust version in which almost all typestate properties are verified statically. Crafa and Padovani [2015] have discovered intriguing analogies between typestate-oriented programming and the idiomatic modeling of objects in the Join Calculus. Following such analogies, they have put forward the Join Calculus as a formal model for typestate-oriented programming in a concurrent setting, whereby objects can be concurrently accessed and modified by several processes.…”
Section: Related Workmentioning
confidence: 99%