Role analysis
- 1 January 2002
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 37 (1), 17-32
- https://doi.org/10.1145/565816.503276
Abstract
We present a new role system in which the type (or role) of each object depends on its referencing relationships with other objects, with the role changing as these relationships change. Roles capture important object and data structure properties and provide useful information about how the actions of the program interact with these properties. Our role system enables the programmer to specify the legal aliasing relationships that define the set of roles that objects may play, the roles of procedure parameters and object fields, and the role changes that procedures perform while manipulating objects. We present an interprocedural, compositional, and context-sensitive role analysis algorithm that verifies that a program maintains role constraints.Keywords
This publication has 28 references indexed in Scilit:
- The pointer assertion logic enginePublished by Association for Computing Machinery (ACM) ,2001
- Alias burying: Unique variables without destructive readsSoftware: Practice and Experience, 2001
- Safety checking of machine codePublished by Association for Computing Machinery (ACM) ,2000
- Automatic verification of pointer programs using monadic second-order logicPublished by Association for Computing Machinery (ACM) ,1997
- A general data dependence test for dynamic, pointer-based data structuresPublished by Association for Computing Machinery (ACM) ,1994
- Extending typestate checking using conditional liveness analysisIEEE Transactions on Software Engineering, 1993
- Graph typesPublished by Association for Computing Machinery (ACM) ,1993
- Abstract description of pointer data structuresACM Letters on Programming Languages and Systems, 1992
- Algebraic reconstruction of types and effectsPublished by Association for Computing Machinery (ACM) ,1991
- Analysis of pointers and structuresPublished by Association for Computing Machinery (ACM) ,1990