Thursday, October 30, 4:15pm, 9206
 
Stephanie Weirich  
(University of Pennsylvania)
 
"Unifying Nominal and Structural Ad-hoc Polymorphism"
 
Ad-hoc polymorphism allows the execution of programs to depend on type
information. In modern systems, it is useful for implementing generic
operations over data structures, such as equality, marshalling, or
traversal. In the past, there have been two different forms of ad-hoc
polymorphism. The nominal form dispatches on the name of the type
argument, whereas the structural form operates by decomposing the
structure of types. In languages with user-defined types, these two
approaches are very different. Operations defined by the nominal
approach are "open" they must be extended with specialized
branches for user-defined types. In contrast, structurally defined
operations are closed to extension. They automatically apply to
user-defined types by treating them as their underlying definitions.
Both approaches have their benefits, so it important to provide both
capabilities in a language. Therefore we present an expressive
language that supports both forms of ad-hoc polymorphism in a single
framework. Among the language's features are the ability to define
both "open" and "closed" operations with a single mechanism, the
ability to naturally restrict the domain of type-analyzing operations,
and new mechanisms for defining higher-order polytypism and
manipulating generative type definitions.
Joint work with Geoffrey Washburn at University of Pennsylvania.
 
The Colloquium is supported by generous
contributions from the CUNY Faculty Development Program, Bloomberg,
Information Builders, Inc. and qbt Systems, Inc.
 
 
|
|
|