Call for Participation

Many of the most widely used languages to emerge in the last five years have come, not from the academic programming language research community, but from industry.  Examples include Perl, Python, Ruby, and Rebol.  These languages have borrowed heavily from academic research, sporting features such as garbage collection and closures, but they also experiment with many novel ideas, such as first class environments and keyword-free syntax.  In the meantime, academic research has made substantial progress in formally addressing issues such as safety, correctness, and also the implementation of seemingly expensive features such as closures and dynamic dispatch.  Lightweight languages have proven to be the most effective vector for getting innovative language features into the hands of working programmers.

We use the term "lightweight languages" to describe some of the common features of these new languages.  The term "lightweight" refers not to actual functionality, but to the idea that these languages are easy to acquire, learn, and use.  Examples that would fall into this category include Perl, Python, Ruby, Scheme (and scsh), and Curl.

The one day workshop on lightweight languages aims to bring together implementors from the lightweight language community and researchers from academia.  The hope is that both communities will find it both enjoyable and enlightening to hear what others are up to.  People involved with implementing the next generation of scripting languages might find design and implementation ideas from academia, and programming language researchers can hear about the challenges and successes involved with producing and maintaining popular lightweight languages.

The workshop will consist of both prepared presentations and also lively discussions.  Participants are invited to give short presentations of their work, including their goals, aesthetics, and issues.

Participants will influence what topics we focus on.  Some example topics are: interoperability, RMI, macros, closures, types (static vs. dynamic), executable invariants and assertions, and dynamic optimization.  Let us know your preferences.