Instruct: Identify the main and secondary category of Arxiv papers based on the titles and abstracts
Query: Papaya: Global Typestate Analysis of Aliased Objects Extended Version   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
typestate annotations, which allows for unrestricted aliasing, and as opposed
to previous approaches it does not require linearity constraints. The typestate
analysis is global and tracks objects throughout the entire program graph,
which ensures that well-typed programs conform and complete the declared
protocols. We implement our framework in the Scala programming language and
illustrate our approach using a running example that shows the interplay
between typestates and aliases.

33
The categories of this paper are: plasm-ph
0
The categories of this paper are: hep-ph
26
The categories of this paper are: bayes-an
29
The categories of this paper are: funct-an
2
The categories of this paper are: math
12
The categories of this paper are: nucl-th
34
The categories of this paper are: chem-ph
21
The categories of this paper are: adap-org
36
The categories of this paper are: cmp-lg
32
The categories of this paper are: atom-ph
19
The categories of this paper are: eess
3
The categories of this paper are: physics
15
The categories of this paper are: nucl-ex
30
The categories of this paper are: q-alg
23
The categories of this paper are: solv-int
22
The categories of this paper are: chao-dyn