2011
DOI: 10.1145/2076021.2048122
|View full text |Cite
|
Sign up to set email alerts
|

First-class state change in plaid

Abstract: Objects model the world, and state is fundamental to a faithful modeling. Engineers use state machines to understand and reason about state transitions, but programming languages provide little support for building software based on state abstractions. We propose Plaid, a language in which objects are modeled not just in terms of classes, but in terms of changing abstract states. Each state may have its own representation, as well as methods that may transition the object into a new state. A formal model preci… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
15
0

Year Published

2015
2015
2021
2021

Publication Types

Select...
3
3

Relationship

0
6

Authors

Journals

citations
Cited by 18 publications
(15 citation statements)
references
References 25 publications
0
15
0
Order By: Relevance
“…Closest to our idea of resource-aware programming are the proposals presented in [3,66]. The first one introduces a typesafe-oriented programming language by extending the object paradigm with object states.…”
Section: Concluding Remarks and Discussionmentioning
confidence: 99%
See 1 more Smart Citation
“…Closest to our idea of resource-aware programming are the proposals presented in [3,66]. The first one introduces a typesafe-oriented programming language by extending the object paradigm with object states.…”
Section: Concluding Remarks and Discussionmentioning
confidence: 99%
“…The essential difference between the typesafe approach and ours is that for us resources are independent entities and that we rely on loose coupling design to separate fragments of code that use resources, from resources themselves, rather than scattering fixed operations through a set of states of objects. More precisely, access control over resources in the programming language in [66] is more fine-grained than ours: the adopted access control includes shared, immutable and exclusive accesses. Our approach, instead, supports only exclusive resource accesses.…”
Section: Concluding Remarks and Discussionmentioning
confidence: 99%
“…Typestate systems require linear typing or some other form of alias control, to avoid conflicting state changes via multiple references. Approaches include the permission-based systems used in the Plural and Plaid languages [4,30] and the fine-grained approach of Militão et al [23]. Crafa and Padovani [10] develop a "chemical" 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.…”
Section: Related Work Conclusion and Future Workmentioning
confidence: 99%
“…fold & unfold are directly related to roll & unroll in [37]. These operations, which give the program access to quantified heap locations, resemble reasoning about capabilities [34,28]. These systems are primarily restricted to verifying (non-)aliasing properties and finite, non-relational facts about heap cells (i.e.…”
Section: Related Workmentioning
confidence: 99%