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 base...
Abstract. Generic types in programming languages are most often supported with various forms of para...
Inheritance together with virtual functions in C++ provides programmers much polymorphism, an import...
Classes are often too small units of modularization. In a lot of cases, a cohesive piece of function...
Beginning with Beta, a range of programming language mechanisms have been developed to allow inherit...
Virtual classes are class-valued attributes of objects. Like virtual methods, virtual classes are de...
Virtual classes are class-valued attributes of objects. Like virtual methods, virtual classes are de...
We design and study #Obj, a calculus and dependent type system for objects and classes which can hav...
Virtual classes [MMP89] are a very useful language construct introduced in the language Beta which p...
Virtual classes are class-valued attributes of objects.Like virtual methods, virtual classes are def...
AbstractThe virtual class [15] construct was first introduced in the language Beta to provide added ...
. Virtual types have been proposed as a notation for generic programming in object-oriented languag...
The notions of class, subclass and virtual procedure are fairly well understood and recognized as so...
Abstract. We design and study νObj, a calculus and dependent type system for objects and classes whi...
The notations of class, subclass and virtual procedure are fairly well understood and recognized as...
Virtual classes allow nested classes to be refined in subclasses. In this way nested classes can be ...
Abstract. Generic types in programming languages are most often supported with various forms of para...
Inheritance together with virtual functions in C++ provides programmers much polymorphism, an import...
Classes are often too small units of modularization. In a lot of cases, a cohesive piece of function...
Beginning with Beta, a range of programming language mechanisms have been developed to allow inherit...
Virtual classes are class-valued attributes of objects. Like virtual methods, virtual classes are de...
Virtual classes are class-valued attributes of objects. Like virtual methods, virtual classes are de...
We design and study #Obj, a calculus and dependent type system for objects and classes which can hav...
Virtual classes [MMP89] are a very useful language construct introduced in the language Beta which p...
Virtual classes are class-valued attributes of objects.Like virtual methods, virtual classes are def...
AbstractThe virtual class [15] construct was first introduced in the language Beta to provide added ...
. Virtual types have been proposed as a notation for generic programming in object-oriented languag...
The notions of class, subclass and virtual procedure are fairly well understood and recognized as so...
Abstract. We design and study νObj, a calculus and dependent type system for objects and classes whi...
The notations of class, subclass and virtual procedure are fairly well understood and recognized as...
Virtual classes allow nested classes to be refined in subclasses. In this way nested classes can be ...
Abstract. Generic types in programming languages are most often supported with various forms of para...
Inheritance together with virtual functions in C++ provides programmers much polymorphism, an import...
Classes are often too small units of modularization. In a lot of cases, a cohesive piece of function...