skip to main content
10.1145/503272.503276acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article

Role analysis

Published: 01 January 2002 Publication History

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.

References

[1]
A. Albano, R. Bergamini, G. Ghelli, and R. Orsini. An introduction to the database programming language Fibonacci. The VLDB Journal, 4(3), 1995.]]
[2]
Paulo Sergio Almeida. Balloon types: Controlling sharing of state in data types. In Proceedings of the 11th European Conference on Object-Oriented Programming, 1997.]]
[3]
Thomas Ball, Rupak Majumdar, 2bdd Millstein, and Sriram K. Rajamani. Automatic predicate abstraction of C programs. In Proceedings of the SIGPLAN '01 Conference on Programming Language Design and Imptementation, 2001.]]
[4]
Chandrasekar Boyapati and Martin C. Rinard. A parameterized type system for race-free java programs. In Proceedings of the 16th Annual Conference on Object- Oriented Programming Systems, Languages and Applications, 2001.]]
[5]
John Boyland. Alias burying: Unique variables without destructive reads. Sewar Practice 84 Experience, (31(6)):533 553, May 2001.]]
[6]
Craig Chambers. Predicate classes. In Proceedings of the 7h European (Uonfernce on Object-Oriented Programming, pages 268 296, 1998.]]
[7]
David R. Chase, Mark Wegman, and F. Kenneth Zadeck. Analysis of pointers and structures. In Proceedings of the SIGPLAN '90 Conference on Programming Language Design and Implementation, 1990.]]
[8]
David G. Clarke, John M. Potter, and James Noble. Ownership types for flexible alias protection. In Proceedings of the 13th Annual Conference on Object-Oriented Programming Systems, Languages and Applications, 1998.]]
[9]
Karl Crary, David Walker, and Greg Morrisett. Typed memory management in a calculus of capabilities. In Proceedings of the 26th Annual A UM Symposium on the Principles of Programming Languages, 1999.]]
[10]
Robert DeLine and Manuel Fahndrich. Enforcing high-level protocols in low-level software. In Proceedings of the SIGPLAN '01 Confersnce on Programming Language Design and Implementation, 2001.]]
[11]
S. Drossopoulou, F. Damiani, M. Dezani-Ciancaglini, and P. Giannini. Fickle: Dynamic object re-classification. In Proceedings of the 15th European Conference on Object-Oriented Programming, LNCS 2072, pages 130-149. Springer, 2001.]]
[12]
Jeffrey S. Ibster and Alex Aiken. Checking programmer-specified non-aliasing. Technical Report CSD-01-1160, University of California, Berkeley, 2001.]]
[13]
Pascal Fradet and Daniel Le Metayer. Shape types. In Proceedings of the 2th Annual A UM Symposium on the Principles of Programming Languages, 1997.]]
[14]
Giorgio Ghelli and Debora Palmerini. Ibundations for extensible objects with roles. In Workshop on Dbundations of Object-Oriented Languages, Paris, 1999.]]
[15]
Rakesh Ghiya and Laurie Hendren. Is it a tree, a DAG, or a cyclic graph? In Proceedings of the 23rd Annual AUM Symposium on the Principtes of Programming Languages, St. Petersburg Beach, FL, 1996.]]
[16]
Rakosh Ghiya and Laurio J. Hondron. Connoction analysis: A practical intorprocodural hoap analysis for C. In Proceedings of the 8th Workshop on Languages and Compilers for Parallel Computing, 1995.]]
[17]
Rakosh Ghiya and Laurio J. Hondron. Putting pointor analysis to work. In Proceedings of the 25th Annual A UM Symposium on the Principles of Programming Languages, 1998.]]
[18]
Goorg Gottlob, Michaol Schrofl, and Brigitto Roock. Extonding objoct-oriontod systoms with rolos. AUM ;mnsactions on Information Systems, 14(3), 1994.]]
[19]
Samuol Z. Guyor and Calvin Lin. An annotation languago for optimizing softwaro librarios. In Second Conference on Domain SpeciJic Languages, 1999.]]
[20]
David Harol, Doxtor Kozon, and Jorzy Tiuryn. Dynamic Logic. Tho MIT Pross, Cambridgo, Mass., 2000.]]
[21]
Laurio J. Hondron, Josoph Hummol, and Aloxandru Nicolau. A gonoral data dopondonco lost for dynamic, pointor-basod data structuros. In Proceedings of the SIGPLAN '9 Conference on Programming Language Design and Implementation, 1994.]]
[22]
John Hogg. Islands: Aliasing protoction in objoct-oriontod languagos. In Proceedings of the 5th Annual Conference on Object- Oriented Programming Systems, Languages and Applications, 1991.]]
[23]
Josoph Hummol. Data Dependence Testing in the Presence of Pointers and Pointer-Based Data Structures. PhD thosis, Dopt. of Computor Scionco, Univ. of California at Irvino, 1998.]]
[24]
Josoph Hummol, Laurio J. Hondron, and Aloxandru Nicolau. Abstract doscription of pointor data structuros: An approach for improving tho analysis and optimization of imporativo programs. A CM Letters on Programming Languages and Systems, 1(3), Soptombor 1993.]]
[25]
Josoph Hummol, Laurio J. Hondron, and Aloxandru Nicolau. A languago for convoying tho aliasing proportios of dynamic, pointor-basod data structuros. In Proceedings of the 8th International Parallel Processing Symposium, Cancun, Moxico, April 26 29 1994.]]
[26]
Jacob J. Jonson, Michaol E. Joorgonson, Nils Klarlund, and Michaol I. Schwartzbach. Automatic vorification of pointor programs using monadic socond ordor logic. In Proceedings of the SIGPLAN '97 Conference on Programming Language Design and Implementation, Las Vogas, NV, 1997.]]
[27]
Piorro Jouvolot and David K. Gifford. Algobraic roconstruction of typos and offocts. In Proceedings of the 18th Annual ACM Symposium on the Principles of Programming Languages, 1991.]]
[28]
Nils Klarlund and Michaol I. Schwartzbach. Graph typos. In Proceedings of the 20th Annual AG'M Symposium on the Principles of Programming Languages, Charloston, SC, 1993.]]
[29]
Nils Klarlund and Michaol I. Schwartzbach. Graphs and docidablo transductions basod on odgo constraints. In Proc. lath Colloquium on J;res and Algebra in Programming, numbor 787 in LNCS, 1994.]]
[30]
Naoki Kobayashi. Quasi-linoar typos. In Proceedings of the 26th Annual ACM Symposium on the Principles of Programming Languages, 1999.]]
[31]
Viktor Kuncak. Dosigning an algorithm for rolo analysis. Mastor's thosis, Massachusotts Instituto of Tochnology, 2001.]]
[32]
Viktor Kuncak, Patrick Lam, and Martin Rinard. Rolos aro roally groat Tochnical Roport 822, Laboratory for Computor Scionco, Massachusotts Instituto of Tochnology, http ://www,mit, edu/vkuncak/papers/, 2001.]]
[33]
Tal Lov-Ami. TVLA: A framowork for kleone basod logic static analysos. Mastor's thosis, Tol-Aviv Univorsity, Israol, 2000.]]
[34]
Andors M011or and Michaol I. Schwartzbach. Tho Pointor Assortion Logic Engino, In Proceedings of the SIGPLAN '01 Conference on Programming Language Design and Implementation, 2001,]]
[35]
Jamos Noblo, Jail Vitok, and John Pottor. Floxiblo alias protoction. In Proceedings of the 12th European Conference on Object-Oriented Programming, 1998.]]
[36]
Trygvo Roonskaug. Working With Objects. Prontico Hall, 1996.]]
[37]
Noam Rinotzky and Mooly Sally. Intorprocodual shapo analysis for rocursivo programs. In Proceedings of the lOth International Conference on Compiler Construction, 2001.]]
[38]
R. Rugina and M. Rinard. Pointor analysis for multithroadod programs. In Proceedings of the SIGPLAN '99 Conference on Programming Language Design and Implementation, Atlanta, GA, Ma w 1999.]]
[39]
Radu Rugina and Martin Rinard. Dosign-drivon compilation. In Proceedings of the l Oth International Conference on Compiler Construction, 2001.]]
[40]
Mooly Sally, Thomas Rops, and Roinhard Wilholm. Solving shapo-analysis probloms in languagos with dostructivo updating. In Proceedings of the 23d Annual ACM Symposium on the Principles of Programming Languages, St. Potorsburg Boach, FL, 1996.]]
[41]
Mooly Sally, Thomas Rops, and Roinhard Wilholm. Paramotric shapo analysis via 3-valuod logic. In Proceedings of the 26th Annual AUM Symposium on the Principles of Programming Languages, 1999.]]
[42]
Micha Sharir and Amir Pnuoli. Two approachos to intorprocodural data flow analysis probloms. In Program Flow Analysis: Theory and Applications. Prontico-Hall, Inc., 1981.]]
[43]
F. Smith, D. Walkor, and G. Morrisott. Alias typos. In Pwceedings of the lth European Symposium on Programming, Borlin, Gormany, March 2000.]]
[44]
Robort E. Strom and Daniol M. Yollin. Extonding typostato chocking using conditional livonoss analysis. IEEE 7i'ansactions on S@wae En9ineering, May 1993.]]
[45]
Robort E. Strom and Shaula Yomini. Typostato: A programming languago concopt for onhancing softwaro roliability. 1EEE J;runsactions on Software Engineering, January 1986.]]
[46]
Wolfgang Thomas. Languagos, automata, and logic. In Handbook of Drmal Languages Vol.3: Beyond Words. Springor-Vorlag, 1997.]]
[47]
Michaol VanHilst and David Notkin. Using rolo compononts to implomont collaboration-basod dosigns. In Proceedings of the 11th Annual Conference on Object-Oriented Programming b'ystems, Languages and Applications, 1996.]]
[48]
Philip Wadlor. Linoar typos can chango tho world In 1FIP 2'(2 2 Working Conference on Programming Concepts and Methods, Sea of Galilee, l'rael, 1990.]]
[49]
David Walkor and Grog Morrisott. Alias typos for rocursivo data structuros. In Workshop on 2pes in Compilation, 2000.]]
[50]
R. Wilson and M. S. Lam. Efficiont contoxt-sonsitivo pointor analysis for C programs. In Proceedings of the SIGPLAN '95 Conference on Programming Language Design and Implementation, Juno 1995.]]
[51]
Zhichon Xu, Barton Millor, and Thomas Rops. Safoty chocking of machino codo. In Proceedings of the SIGPLAN '00 Conferwce on Programming Language Design and Implementation, 2000.]]
[52]
Zhichon Xu, Thomas Rops, and Barton Millor. Typostato chocking of machino codo. In Proceedings of the 15th Euwpean b'ymposium on Programming, 2001.]]
[53]
Phillip M. Yolland. Exporimontal classification facilitios for Smalltalk. In Proceedings of the 6th Annual Conference on Object-Oriented Programming Systems, Languages and Applications, 1992.]]

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '02: Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
January 2002
351 pages
ISBN:1581134509
DOI:10.1145/503272
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 January 2002

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

POPL02

Acceptance Rates

POPL '02 Paper Acceptance Rate 28 of 128 submissions, 22%;
Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '26

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)1
Reflects downloads up to 28 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media