Combining subsumption and binary methods: an object calculus with views

We presen t an object-oriented calculus whic hallows arbitrary hiding of methods in protot ypes, even in the presence of binary methods and friend functions. This combination of features permits complete control of the in terface a class exposes to the remainder of a program (which is of key importance for program readability, security and ease of maintenance), while still allowing complex in teractions with other classes belonging to the same module or softw are component.This result is made possible by the use of views. A view is a name that specifies an in terface to an object. A set of views is attached to each object and a method can be invoked either directly or via a view of the object.

[1]  Kim B. Bruce,et al.  Subtyping Is Not a Good "Match" for Object-Oriented Languages , 1997, ECOOP.

[2]  John C. Mitchell,et al.  A Delegation-based Object Calculus with Subtying , 1995, FCT.

[3]  Viviana Bono,et al.  An Imperative, First-Order Calculus with Object Extension , 1998, ECOOP.

[4]  Luca Cardelli,et al.  On Binary Methods , 1995, Theory Pract. Object Syst..

[5]  Didier Rémy,et al.  Objective ML: a simple object-oriented extension of ML , 1997, POPL '97.

[6]  Luigi Liquori,et al.  A lambda calculus of objects with self-inflicted extension , 1998, OOPSLA '98.

[7]  Benjamin C. Pierce,et al.  Statically typed friendly functions via partially abstract types , 1993 .

[8]  Giorgio Ghelli Foundations for Extensible Objects with Roles , 2002, Inf. Comput..

[9]  Didier Rémy,et al.  Type inference for records in natural extension of ML , 1994 .

[10]  Matthias Felleisen,et al.  A Syntactic Approach to Type Soundness , 1994, Inf. Comput..

[11]  Didier Rémy,et al.  Objective ML: An Effective Object-Oriented Extension to ML , 1998, Theory Pract. Object Syst..

[12]  Giorgio Ghelli,et al.  Foundations for extensible objects with roles, extended abstract , 1999 .

[13]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[14]  John H. Reppy,et al.  The design of a class mechanism for Moby , 1999, PLDI '99.

[15]  John H. Reppy,et al.  Extending Moby with Inheritance-Based Subtyping , 2000, ECOOP.

[16]  John H. Reppy,et al.  Foundations for MOBY Classes , 1998 .

[17]  Jon G. Riecke,et al.  Privacy via Subsumption , 2002, Inf. Comput..

[18]  John C. Mitchell,et al.  A lambda calculus of objects and method specialization , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[19]  Mitchell Wand,et al.  Complete Type Inference for Simple Objects , 1987, LICS.

[20]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[21]  Matthias Felleisen,et al.  Classes and mixins , 1998, POPL '98.

[22]  Michele Bugliesi,et al.  Subtyping Constraints for Incomplete Objects (Extended Abstract) , 1997, TAPSOFT.