Skip to main content

A Language for Role Specifications

  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 2001)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2624))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Michael Benedikt, Thomas Reps, and Mooly Sagiv. A decidable logic for linked data structures. In Proc. 8th European Symposium on Programming, 1999.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. Pascal Fradet and Daniel Le Metayer. Shape types. In Proc. 24th ACM POPL, 1997.

    Google Scholar 

  5. James Gosling, Bill Joy, Guy Steele, and Gilad Bracha. The Java Language Specification. Sun Microsystems, Inc., 2001.

    Google Scholar 

  6. Samuel Z. Guyer and Calvin Lin. An annotation language for optimizing software libraries. In Second Conference on Domain Specific Languages, 1999.

    Google Scholar 

  7. David Harel, Dexter Kozen, and Jerzy Tiuryn. Dynamic Logic. The MIT Press, Cambridge, Mass., 2000.

    MATH  Google Scholar 

  8. 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.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. Pierre Jouvelot and David K. Gifford. Algebraic reconstruction of types and effects. In Proc. 18th ACM POPL, 1991.

    Google Scholar 

  11. Naoki Kobayashi. Quasi-linear types. In Proc. 26th ACM POPL, 1999.

    Google Scholar 

  12. Anders Møller and Michael I. Schwartzbach. The Pointer Assertion Logic Engine. In Proc. ACM PLDI, 2001.

    Google Scholar 

  13. Trygve Reenskaug. Working With Objects. Prentice Hall, 1996.

    Google Scholar 

  14. Radu Rugina and Martin Rinard. Design-driven compilation. In Proc. 10th International Conference on Compiler Construction, 2001.

    Google Scholar 

  15. Mooly Sagiv, Thomas Reps, and Reinhard Wilhelm. Solving shape-analysis problems in languages with destructive updating. In Proc. 23rd ACM POPL, 1996.

    Google Scholar 

  16. F. Smith, D. Walker, and G. Morrisett. Alias types. In Proc. 9th European Symposium on Programming, Berlin, Germany, March 2000.

    Google Scholar 

  17. Robert E. Strom and Shaula Yemini. Typestate: A programming language concept for enhancing software reliability. IEEE Transactions on Software Engineering, January 1986.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics