Object-oriented languages define the identity of an object to be an address-based object identifier. The programmer may customize the notion of object identity by overriding the ...
Mandana Vaziri, Frank Tip, Stephen Fink, Julian Do...
Higher-order logic with shallow type class polymorphism is widely used as a specification formalism. Its polymorphic entities (types, operators, axioms) can easily be equipped wit...
Abstract. In this paper we present Jam, an extension of the Java language supporting mixins, that is, parametric heir classes. A mixin declaration in Jam is similar to a Java heir ...
Class sharing is a new language mechanism for building extensible software systems. Recent work has separately explored two different kinds of extensibility: first, family inherit...
We design and study νObj, a calculus and dependent type system for objects and classes which can have types as members. Type can be aliases, abstract types, or new types. The type...