Ownership types for flexible alias protection

被引:141
作者
Clarke, DG [1 ]
Potter, JM [1 ]
Noble, J [1 ]
机构
[1] Macquarie Univ, Microsoft Res Inst, Sydney, NSW 2109, Australia
关键词
alias protection; sharing; containment; ownership; representation exposure; programming language design;
D O I
10.1145/286942.286947
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Object-oriented programming languages allow inter-object aliasing. Although necessary to construct linked data structures and networks of interacting objects, aliasing is problematic in that an aggregate object's state can change via an alias to one of ifs components, without the aggregate being aware of any aliasing. Ownership types form a static type system that indicates object ownership. This provides a flexible mechanism to limit the visibility of object references and restrict access paths to objects, thus controlling a system's dynamic topology. The type system is shown to be sound, and the specific aliasing properties that a system's object graph satisfies are formulated and proven invariant for well-typed programs.
引用
收藏
页码:48 / 64
页数:17
相关论文
共 46 条
  • [11] CARDELLI L, 1998, FDN SOFTWARE SCI COM
  • [12] CHAN EC, 1998, IEEE INT C SOFTW ENG
  • [13] CIVELLO F, 1993, OOPSLA P
  • [14] DEUTSCH A, 1994, P ACM SIGPLAN 94 C P
  • [15] DONG JS, 1995, TOOLS PACIFIC, V18
  • [16] ELLIS MA, 1990, ANNOTATED C PLUS PLU
  • [17] FLATT M, 1998, 25 ACM C PRINC PROGR
  • [18] GOSLING J, 1996, JAVA LANGUAGE SPECIF
  • [19] GROGONO P, 1994, P C OBJ OR DAT SOFTW
  • [20] HARMS DE, 1991, IEEE T SOFTW ENG, V17