Advertisement

A Language for Role Specifications

  • Viktor Kuncak
  • Patrick Lam
  • Martin Rinard
Conference paper
Part of the Lecture Notes in Computer Science book series (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.

Keywords

Regular Expression Role Parameter Program Point Role Change Propositional Dynamic Logic 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [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. [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. [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. [4]
    Pascal Fradet and Daniel Le Metayer. Shape types. In Proc. 24th ACM POPL, 1997.Google Scholar
  5. [5]
    James Gosling, Bill Joy, Guy Steele, and Gilad Bracha. The Java Language Specification. Sun Microsystems, Inc., 2001.Google Scholar
  6. [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. [7]
    David Harel, Dexter Kozen, and Jerzy Tiuryn. Dynamic Logic. The MIT Press, Cambridge, Mass., 2000.zbMATHGoogle Scholar
  8. [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. [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. [10]
    Pierre Jouvelot and David K. Gifford. Algebraic reconstruction of types and effects. In Proc. 18th ACM POPL, 1991.Google Scholar
  11. [11]
    Naoki Kobayashi. Quasi-linear types. In Proc. 26th ACM POPL, 1999.Google Scholar
  12. [12]
    Anders Møller and Michael I. Schwartzbach. The Pointer Assertion Logic Engine. In Proc. ACM PLDI, 2001.Google Scholar
  13. [13]
    Trygve Reenskaug. Working With Objects. Prentice Hall, 1996.Google Scholar
  14. [14]
    Radu Rugina and Martin Rinard. Design-driven compilation. In Proc. 10th International Conference on Compiler Construction, 2001.Google Scholar
  15. [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. [16]
    F. Smith, D. Walker, and G. Morrisett. Alias types. In Proc. 9th European Symposium on Programming, Berlin, Germany, March 2000.Google Scholar
  17. [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

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Viktor Kuncak
    • 1
  • Patrick Lam
    • 1
  • Martin Rinard
    • 1
  1. 1.Laboratory for Computer ScienceMassachusetts Institute of TechnologyCambridge

Personalised recommendations