A typestate specification indicates which behaviors of an object are permitted in each of the object’s states. In the general case, soundly checking a typestate specification requires precise information about aliasing (i.e., an alias or pointer analysis), which is computationally expensive. This requirement has hindered the adoption of sound typestate analyses in practice.
This paper identifies \emph{accumulation typestate specifications}, which are the subset of typestate specifications that can be soundly checked without any information about aliasing. An accumulation typestate specification can be checked instead by an accumulation analysis: a simple dataflow analysis that conservatively estimates the operations that have been performed on an object.
This paper formalizes the notions of accumulation analysis and accumulation typestate specification. It proves that accumulation typestate specifications are exactly those typestate specifications that can be checked soundly without aliasing information. Further, we find that 41% of the typestate specifications that appear in the literature are accumulation typestate specifications.
Thu 23 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
15:00 - 16:30 | |||
15:00 30mTalk | Accumulation AnalysisVCOOP 2022 Research Papers Martin Kellogg University of Washington, Narges Shadab University of California at Riverside, Manu Sridharan University of California at Riverside, Michael D. Ernst University of Washington | ||
15:30 30mTalk | Qilin: A New Framework for Supporting Fine-Grained Context-Sensitivity in Java Pointer AnalysisVCOOP 2022 Research Papers | ||
16:00 30mTalk | Functional programming for distributed systems with XCVCOOP 2022ECOOP 2022 Research Papers Giorgio Audrito Università di Torino, Roberto Casadei University of Bologna, Italy, Ferruccio Damiani University of Turin, Guido Salvaneschi University of St. Gallen, Mirko Viroli Alma Mater Studiorum - Università di Bologna Pre-print |