[Fwd: [Pl-seminar] Semantics Seminar Schedule]

dvanhorn <[email protected]>
Newsgroups gmane.org.ballistichelmet.lambda
Message-ID <[email protected]>

-------- Original Message --------
Subject: [Pl-seminar] Semantics Seminar Schedule
Date: Thu, 04 Sep 2003 20:34:00 -0400
From: Mitchell Wand <[email protected]>
To: [email protected]

NU Programming Languages Seminar
Tuesday, September 9, 2003
206 Egan  Hall, Northeastern University
    (building 60 on http://www.campusmap.neu.edu/)
1000-1200

** Note non-standard day and time **

Eric Allen

Sun Microsystems, Burlington, MA


A First-Class Approach to Genericity


We describe 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 C++ (via templates), they are clumsy and
error-prone because C++ 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 type
systems have 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 a static type system with nominal
subtyping.

Upcoming Events:

**Please note that the standard time for the seminar will be Wednesdays
11:45 to 1:45.**

Speakers to be announced; volunteers welcome!

--Mitch

_______________________________________________
pl-seminar mailing list
[email protected]
https://lists.ccs.neu.edu/bin/listinfo/pl-seminar
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.