23rd International Symposium on Principles and Practice of Declarative Programming 2021
DOI: 10.1145/3479394.3479414
|View full text |Cite
|
Sign up to set email alerts
|

Papaya: Global Typestate Analysis of Aliased Objects

Abstract: Typestates are state machines used in object-oriented programming to specify and verify correct order of method calls on an object. To avoid inconsistent object states, typestates enforce linear typing, which eliminates-or at best limits-aliasing. However, aliasing is an important feature in programming, and the state-of-the-art on typestates is too restrictive if we want typestates to be adopted in real-world software systems.In this paper, we present a type system for an object-oriented language with typesta… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1

Citation Types

0
2
0

Year Published

2021
2021
2024
2024

Publication Types

Select...
3
3

Relationship

0
6

Authors

Journals

citations
Cited by 8 publications
(2 citation statements)
references
References 30 publications
0
2
0
Order By: Relevance
“…We think that connections between the encodings and linear logic will start to emerge, possibly building on the the Curry-Howard isomorphisms between session types and linear logic [4,10,45], which has gained momentum in the last decade. Lastly, we think connections between the encoding and typestatesa formalism similar to session types developed in the context of object-oriented programming [24,30]-may emerge, possibly leveraging connections between the 𝜋-calculus and objects [37].…”
Section: Future Developmentsmentioning
confidence: 99%
“…We think that connections between the encodings and linear logic will start to emerge, possibly building on the the Curry-Howard isomorphisms between session types and linear logic [4,10,45], which has gained momentum in the last decade. Lastly, we think connections between the encoding and typestatesa formalism similar to session types developed in the context of object-oriented programming [24,30]-may emerge, possibly leveraging connections between the 𝜋-calculus and objects [37].…”
Section: Future Developmentsmentioning
confidence: 99%
“…Moreover, we self-generated 122 client programs that follow the compositional patterns we described in Example 3.3.1 (this kind of patterns are also considered in, e.g., [JRD21]). The pattern defines a composed class, as the class Bar illustrated at the end of Section 3.3.1, that has an object member of classes that have declared contracts (recall that we refer to those as base classes).…”
Section: Claim-ii: Improved Scalability On Large Code and Contracts O...mentioning
confidence: 99%