///////////////////////////////////////////////////////////////////// // Papers on Tribe (virtual classes) /////////////////////////////////////////////////////////////////////
Dave Clarke, Sophia Drossopoulou, James Noble & Tobias Wrigstad.
Appeared in proceedings of the 6th international conference on Aspect-oriented software development (AOSD). March 2007.
Beginning with BETA, a range of programming language mechanisms such as virtual classes (class-valued attributes of objects) have been developed to allow inheritance in the presence of mutually dependent classes. This paper presents Tribe, a type system which generalises and simplifies other formalisms of such mechanisms, by treating issues which are inessential for soundness, such as the precise details of dispatch and field initialisation, as orthogonal to the core formalism. Tribe can support path types dependent simultaneously on both classes and objects, which is useful for writing library code, and ubiquitous access to an object's family, which offers family polymorphism without the need to drag around family arguments. Languages based on Tribe will be both simpler and more expressive than existing designs, while having a simpler type system, serving as a useful basis for future language designs.
The AOSD 2007 Tribe paper was preceeded by an unpublished but cited paper called, "Tribe: More Types for Virtual Classes", by the same authors. For completeness, this paper is available here.