MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Alias Annotations for Program Understanding UW-CSE-02-11-01 November, 2002 Alias Annotations for Program Understanding

Download:
pdf
by Jonathan Aldrich, Valentin Kostadinov, Craig Chambers
ftp://ftp.cs.washington.edu/tr/2002/11/UW-CSE-02-11-01.pdf
Add To MetaCart

Abstract:

One of the primary challenges in building and evolving large object-oriented systems is understanding aliasing between objects. Unexpected aliasing can lead to broken invariants, mistaken assumptions, security holes, and surprising side effects, all of which may lead to software defects and complicate software evolution. This paper presents AliasJava, a capability-based alias annotation system for Java that makes alias patterns explicit in the source code, enabling developers to reason more effectively about the interactions in a complex system. We describe our implementation, prove the soundness of the annotation system, and give an algorithm for automatically inferring alias annotations. Our experience suggests that the annotation system is practical, that annotation inference is efficient and yields appropriate annotations, and that the annotations can express important invariants of data structures and of software architectures. 1.

Citations

3620 Design Patterns. Elements of Reusable Object-Oriented Software – Gamma, Helm, et al. - 1998
472 An introduction to software architecture – Garlan, Shaw - 1994
286 Featherweight Java: A minimal core calculus for Java and GJ – Igarashi, Pierce, et al. - 1999
178 Ownership types for flexible alias protection – Clarke, Potter, et al. - 1998
168 Typed memory management in a calculus of capabilities – Crary, Walker, et al. - 1999
158 Islands: Aliasing protection in object-oriented languages – Hogg - 1991
141 Ownership types for safe programming: Preventing data races and deadlocks – Boyapati, Lee, et al. - 2002
138 Flexible alias protection – Noble, Vitek, et al. - 1988
127 Type inference with polymorphic recursion – Henglein - 1993
126 Alias annotations for program understanding – Aldrich, Kostadinov, et al. - 2002
117 A parameterized type system for race-free Java programs – Boyapati, Rinard - 2001
109 Archjava: connecting software architecture to implementation – Aldrich, Chambers, et al. - 2002
108 Morrisett. Alias types for recursive data structures – Walker, Gregory - 2000
100 Adoption and focus: Practical linear types for imperative programming – Fähndrich, DeLine - 2002
89 Lackwit: A Program Understanding Tool Based on Type Inference – O’Callahan, Jackson - 1997
87 The Geneva convention on the treatment of object aliasing – Hogg, Lea, et al. - 1992
85 Role analysis – Kuncak, Lam, et al. - 2002
82 Ownership and Containment – Clarke - 2001
72 Alias burying: Unique variables without destructive reads – Boyland
72 Simple ownership types for object containment – Clarke, Noble, et al. - 2001
69 Confined Types – Bokowski, Vitek - 1999
66 Scalable context-sensitive flow analysis using instantiation constraints – Fähndrich, Rehof, et al. - 2000
61 Encapsulating objects with confined types – Grothoff, Palsberg, et al. - 2001
61 Towards alias-free pointers – Minsky - 1996
42 Universes: A type system for controlling representation exposure – Muller, Poetzsch-Heffter - 1999
24 encapsulation and the disjointness of type and effect – Ownership - 2002
23 Generalized Aliasing as a Basis for Program Analysis Tools – O’Callahan - 2001
21 Capabilities for Sharing: A Generalization of Uniqueness and Read-Only – BOYLAND, NOBLE, et al. - 2001
17 Arnd Poetzsch-Heffter, and Yunhong Zhou. Using data groups to specify and check side effects – Leino - 2002
6 Architectural Reasoning with ArchJava – Aldrich, Chambers, et al. - 2002
6 Barat—A Front-End for Java. Freie Universität Berlin – Bokowski, Spiegel - 1998
4 Jerzy Tiuryn, and Pawel Urzyczyn. The Undecidability of the Semi-Unification Problem – Kfoury - 1993
3 JFlow: Practical Most-Static Information Flow Control – Myers - 1999
3 Linear Types Can Change the World! Programming Concepts and – Wadler - 1990
2 Balloon Types: Controlling Sharing of State – Almeida - 1997
2 Implementing "Object Ownership to Order – Bokowski - 1999
2 Ownership Types Restrict Aliasing. MEng. Computing Final Year Project Report – Buckley - 2000
2 Implementing the Call-by- ¥§¦©¨ -Calculus Using a Stack of Regions – Tofte, Talpin - 1994