Abstract
This paper presents a new language for identifying the changing roles that objects play over the course of the computation. Each object’s points-to relationships with other objects determine the role that it currently plays. Roles therefore reflect the object’s membership in specific data structures, with the object’s role changing as it moves between data structures. We provide a programming model which allows the developer to specify the roles of objects at different points in the computation. The model also allows the developer to specify the effect of each operation at the granularity of role changes that occur in identified regions of the heap.
This research was supported in part by DARPA Contract F33615-00-C-1692, NSF Grant CCR00-86154, NSF Grant CCR00-63513, and an NSERC graduate scholarship.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Michael Benedikt, Thomas Reps, and Mooly Sagiv. A decidable logic for linked data structures. In Proc. 8th European Symposium on Programming, 1999.
David G. Clarke, John M. Potter, and James Noble. Ownership types for flexible alias protection. In Proc. 13th Annual Conference on Object-Oriented Programming, Systems, Languages, and Applications, 1998.
S. Drossopoulou, F. Damiani, M. Dezani-Ciancaglini, and P. Giannini. Fickle: Dynamic object re-classification. In Proc. 15th European Conference on Object-Oriented Programming, LNCS 2072, pages 130–149. Springer, 2001.
Pascal Fradet and Daniel Le Metayer. Shape types. In Proc. 24th ACM POPL, 1997.
James Gosling, Bill Joy, Guy Steele, and Gilad Bracha. The Java Language Specification. Sun Microsystems, Inc., 2001.
Samuel Z. Guyer and Calvin Lin. An annotation language for optimizing software libraries. In Second Conference on Domain Specific Languages, 1999.
David Harel, Dexter Kozen, and Jerzy Tiuryn. Dynamic Logic. The MIT Press, Cambridge, Mass., 2000.
Joseph Hummel, Laurie J. Hendren, and Alexandru Nicolau. Abstract description of pointer data structures: An approach for improving the analysis and optimization of imperative programs. ACM Letters on Programming Languages and Systems, 1(3), September 1993.
Joseph Hummel, Laurie J. Hendren, and Alexandru Nicolau. A language for conveying the aliasing properties of dynamic, pointer-based data structures. In Proc. 8th International Parallel Processing Symposium, Cancun, Mexico, April 26–29 1994.
Pierre Jouvelot and David K. Gifford. Algebraic reconstruction of types and effects. In Proc. 18th ACM POPL, 1991.
Naoki Kobayashi. Quasi-linear types. In Proc. 26th ACM POPL, 1999.
Anders Møller and Michael I. Schwartzbach. The Pointer Assertion Logic Engine. In Proc. ACM PLDI, 2001.
Trygve Reenskaug. Working With Objects. Prentice Hall, 1996.
Radu Rugina and Martin Rinard. Design-driven compilation. In Proc. 10th International Conference on Compiler Construction, 2001.
Mooly Sagiv, Thomas Reps, and Reinhard Wilhelm. Solving shape-analysis problems in languages with destructive updating. In Proc. 23rd ACM POPL, 1996.
F. Smith, D. Walker, and G. Morrisett. Alias types. In Proc. 9th European Symposium on Programming, Berlin, Germany, March 2000.
Robert E. Strom and Shaula Yemini. Typestate: A programming language concept for enhancing software reliability. IEEE Transactions on Software Engineering, January 1986.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kuncak, V., Lam, P., Rinard, M. (2003). A Language for Role Specifications. In: Dietz, H.G. (eds) Languages and Compilers for Parallel Computing. LCPC 2001. Lecture Notes in Computer Science, vol 2624. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-35767-X_24
Download citation
DOI: https://doi.org/10.1007/3-540-35767-X_24
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-04029-3
Online ISBN: 978-3-540-35767-4
eBook Packages: Springer Book Archive