[Pl-seminar] TALK: Reconciling Software Extensibility with Modular Program Reasoning

Mitchell Wand wand at ccs.neu.edu
Tue Mar 11 13:14:41 EST 2003


------- start of forwarded message (RFC 934 encapsulation) -------
Return-Path: <apache at www.lcs.mit.edu>
Delivered-To: wand at ccs.neu.edu
From: EventNotification <events at lcs.mit.edu>
To: ai-seminar at ai.mit.edu
Subject: TALK: Reconciling Software Extensibility with Modular Program Reasoning
Date: Wed, 5 Mar 2003 10:39:38 -0500 (EST)


Reconciling Software Extensibility with Modular Program Reasoning
Speaker: Todd Millstein
Speaker Affiliation: University of Washington
Host: Professor Arvind
Host Affiliation: MIT

Date: 03-19-2003
Time: 4:05 PM - 5:05 PM
Refreshments: 3:50 PM
Location: NE43-518

Abstract: Languages can help programmers build robust software systems
by supporting the creation of reusable components.  However, current
languages have severe restrictions that hinder the utility of such
components.  For example, a well-known problem in object-oriented
languages is the inability for clients to easily add
application-specific methods to existing classes.  Languages like
Cecil and AspectJ resolve this problem, but they must forego modular
reasoning, requiring some whole-program information in order to
properly typecheck and compile even a single class.

In this talk I describe my thesis work, which addresses longstanding
extensibility limitations of traditional components while maintaining
modular typechecking and compilation.  I formally studied the problems
in the context of a simple and flexible core language and designed a
range of possible solutions, at various points along the tradeoff
between expressiveness and modular reasoning.  This theoretical work
then informed my design of practical extensions to mainstream
languages.  One of these, MultiJava, is a small, backward-compatible
Java extension supporting (among other things) the ability to
modularly add new methods to existing classes.  MultiJava has been in
daily use by others in a variety of application domains since March
2002.  It has been particularly successful in supporting the
implementation of reliable ubiquitous computing systems, where
extensibility is at a premium.  MultiJava allows the desired
extensibility idioms to be declaratively expressed and statically
checked, easing program maintenance and removing a large source of
potential runtime errors.

Relevant URL(S): 
For more information please contact: Valerie DiNardo, 617-253-1996, valerie at lcs.mit.edu
------- end -------


More information about the pl-seminar mailing list