EDBT 2026 Demo / reviewers in the wild / expert
Jonathan Bannet
dblp:74/5969
· DBLP profile ↗
1ranked-venue papers
0as first author
0since 2021 · last 2003
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
1 paper |
Programming languages and type systems · 91% Compilers and program optimization · 9% |
Topics — the 4 heaviest of 4, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems › type systems › polymorphism
generics |
0.0 | 1 | 2003 | A first-class approach to genericity · OOPSLA 2003 |
Programming languages and type systems › inheritance
mixins |
0.0 | 1 | 2003 | A first-class approach to genericity · OOPSLA 2003 |
Programming languages and type systems
type systems |
0.0 | 1 | 2003 | A first-class approach to genericity · OOPSLA 2003 |
Compilers and program optimization
incremental compilation |
0.0 | 1 | 2003 | A first-class approach to genericity · OOPSLA 2003 |
Methods — techniques the papers use, named apart from their topics
local type checking · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2003 | A first-class approach to genericityabstractThis paper describes how to add first-class generic types---including mixins---to strongly-typed OO languages with nominal subtyping such as Java and C#. A generic type system is "first-class" if generic types can appear in any context where conventional types can appear. In this context, a mixin is simply a generic class that extends one of its type parameters, e.g., a class C that extends T. Although mixins of this form are widely used in Cpp (via templates), they are clumsy and error-prone because Cpp treats mixins as macros, forcing each mixin instantiation to be separately compiled and type-checked. The abstraction embodied in a mixin is never separately analyzed.Our formulation of mixins using first-class genericity accommodates sound local (class-by-class) type checking. A mixin can be fully type-checked given symbol tables for each of the classes that it directly references---the same context in which Java performs incremental class compilation. To our knowledge, no previous formal analysis of first-class genericity in languages with nominal type systems has been conducted, which is surprising because nominal subtyping has become predominant in mainstream object-oriented programming languages.What makes our treatment of first-class genericity particularly interesting and important is the fact that it can be added to the existing Java language without any change to the underlying Java Virtual Machine. Moreover, the extension is backward compatible with legacy Java source and class files. Although our discussion of a practical implementation strategy focuses on Java, the same implementation techniques could be applied to other object-oriented languages such as C# or Eiffel that support incremental compilation, dynamic class loading, and nominal subtyping. Eric E. Allen, Jonathan Bannet, Robert Cartwright |
OOPSLA | 2 |