[Pl-seminar] Semantics Seminar Schedule

Mitchell Wand wand at ccs.neu.edu
Mon Oct 24 00:05:01 EDT 2005


NU Programming Languages Seminar
** Note non-standard time **
Wednesday, 10/26/05
1:45-3:00 pm
Room 366 WVH (http://www.ccs.neu.edu/home/wand/directions.html)

The Scala Experiment -- Can We Provide Better Language Support for
Component Systems?

Martin Odersky
EPFL

True component systems have been an elusive goal of the software
industry. Ideally, software should be assembled from libraries of
pre-written components, just as hardware is assembled from
pre-fabricated chips. In reality, large parts of software applications
are written ``from scratch'', so that software production is still
more a craft than an industry.

Components in this sense are simply program parts which are used in
some way by larger parts or whole applications.  Components can take
many forms; they can be modules, classes, libraries, frameworks,
processes, or web services. Their size might range from a couple of
lines to hundreds of thousands of lines. They might be linked with
other components by a variety of mechanisms, such as aggregation,
parameterization, inheritance, remote invocation, or message passing.

At least to some extent, the lack of progress in component software is
due to shortcomings in the programming languages used to define and
integrate components.  Most existing languages offer only limited
support for component abstraction and composition. This holds in
particular for statically typed languages such as Java and C\# in
which much of today's component software is written.

In our work on Scala, we have tried to rethink abstraction mechanisms
for components from the ground up. We have identified three
programming language abstractions for the construction of reusable
components: abstract type members, explicit selftypes, and modular
mixin composition. Together, these abstractions enable us to transform
an arbitrary assembly of static program parts with hard references
between them into a system of reusable components. The transformation
maintains the structure of the original system.

In this talk, I give an introduction to Scala and demonstrate how it
helps solving some hard problems in the construction of component
systems.



Upcoming Events:

11/2  Sam Tobin-Hochstadt: The Fortress Programming Language  

--Mitch




More information about the pl-seminar mailing list