Software Demonstrations

Common Lisp for a Common Cultural Recommendation System: Creating a Cultural Recommendation & Exploration Engine Using Semantic Web

Robert P. Goldman, John Maraist

SHOPPER: Interpreter for a High-level Web Services Language

Glenn D. House Sr., Charles A. Cox

Operational Assessment Support Information System (OASIS)

François-René Rideau, Spencer Brody

XCVB: Improving Modularity for Common Lisp

Jon L White

Syntactic Extension of Regular Expression Production Sets using Lisp

Alberto Riva

A Common Lisp Application for Large-Scale Bioinformatics

Abstracts

Genuine, full-power, hygienic macro system for a language with syntax
David Moon

Programming Language for Old Timers (PLOT) is a hobby of mine. It
is supposed to do everything "right" and avoid the mistakes, bad
ideas, confusion, and compromises of past languages. It emphasizes
cleanliness, flexibility, and extensibility. I will talk in
particular about the macros, which might be the first genuine,
full-power, easy-to-use, hygienic macro system for any language with
syntax. I will also touch briefly on the very clean object system and
on the somewhat idiosyncratic indentation-based syntax.

Dave Moon has worked at the M.I.T. Laboratory for Computer
Science, Symbolics inc, and Apple Computer attempting to push the
state of the art of dynamic languages. Eleven years ago he retired
from that field. Since then he has worked on object-oriented
databases at Object Design and Progress Software. He has two very
intelligent children and resides in Lexington, Mass.

Evolvability and Robust Design
Gerald Jay Sussman, MIT (USA)

It is hard to build robust systems: systems that have acceptable
behavior over a larger class of situations than was anticipated by
their designers. The most robust systems are evolvable: they can be
easily adapted to new situations with only minor modification. How
can we design systems that are flexible in this way?

Observations of biological systems tell us a great deal about how
to make robust and evolvable systems. Techniques originally developed
in support of symbolic Artificial Intelligence can be viewed as ways
of enhancing robustness and evolvability in programs and other
engineered systems. By contrast, common practice of computer science
actively discourages the construction of robust systems.

Robust designs are built on an additive infrastructure: there are
exposed interfaces for attaching new functionality without serious
disruption of preexisting mechanisms. Indeed, the ability to
harmlessly duplicate a mechanism and then modify the copy to supply
useful new functionality is one of the principal ploys appearing in
natural evolution. What are the preconditions that support such
augmentation? Can we engineers arrange our systems to be extensible
in this way? Are there exploitable analogies between the techniques
that we have created to make extensible artifacts and the mechanisms
that we find in biological systems?

I will address these and related issues, and show, in terms of
explicit and concrete examples, how some of the insights we glean can
inform the way we do engineering in the age of information.

Gerald Jay Sussman is the Panasonic (formerly Matsushita)
Professor of Electrical Engineering at the Massachusetts Institute of
Technology. He received the S.B. and the Ph.D. degrees in mathematics
from the Massachusetts Institute of Technology in 1968 and 1973,
respectively. He has been involved in artificial intelligence
research at M.I.T. since 1964. He has also worked in computer
languages and in computer architecture and in VLSI design. Sussman
was the principal designer of the Digital Orrery, a machine designed
to do high-precision integrations for orbital- mechanics experiments.
Using the Digital Orrery, Sussman and Wisdom, discovered numerical
evidence for chaotic motions in the solar system. The Digital Orrery
is now retired at the Smithsonian Institution in Washington DC.
Sussman is a coauthor (with Hal Abelson and Julie Sussman) of,
"Structure and Interpretation of Computer Programs," the introductory
computer science textbook used at M.I.T. As a result of his
contributions to computer-science education, Sussman received the
ACM's Karl Karlstrom Outstanding Educator Award in 1990, and the Amar
G. Bose award for teaching in 1991. Sussman is a fellow of the
Institute of Electrical and Electronics Engineers (IEEE). He is a
member of the National Academy of Engineering (NAE), a fellow of the
American Association for the Advancement of Science (AAAS), a fellow
of the American Association for Artificial Intelligence (AAAI), a
fellow of the Association for Computing Machinery (ACM), a fellow of
the American Academy of Arts and Sciences, and a fellow of the New
York Academy of Sciences (NYAS). He is also a life member of the
American Watchmakers-Clockmakers Institute (AWI), a member of the
Amateur Telescope Makers of Boston (ATMOB), and a member of the
American Radio Relay League (ARRL).

The Moby Scheme Compiler for Smartphones, or, Is That a Parenthesis in Your Pocket?
Shriram Krishnamurthi, Brown University (USA)

The Moby compiler translates a class of Scheme programs to execute
on mobile phone platforms. These programs are written using PLT
Scheme's World library, which provides special support for programming
reactive systems. The result can be viewed as one of the first
scripting platforms for writing reactive programs on smartphones.

The talk will describe reactive programming using World, present
some architectural details about Moby, and include demonstrations.

Moby is joint work with Danny Yoo (WPI).

Shriram Krishnamurthi is an Associate Professor of Computer
Science at Brown University. His recent work focuses on language
support for interactive software, and on analyses for security
policies. He is a co-author of the DrScheme programming environment,
the Margrave access control policy analysis package, the Flapjax
programming language, the FASTLINK genetic linkage analysis package,
and the Continue conference paper manager. He is co-author of "How to
Design Programs" and author of "Programming Languages: Application and
Interpretation". He coordinates the decade-old TeachScheme! outreach
program.

The Anatomy of a Loop: A Story of Scope and Control
Olin Shivers, Northeastern University, (USA)

In functional languages, we write loops with tail-recursive
function calls. This is the equivalent of writing them as
goto's. Given that loop packages for Lisp-family languages have been
around for over 25 years, it is striking that none has had much
success in the Scheme world. I suggest the reason is that Scheme
forces us to be precise about the scoping of the various variables
introduced by our loop forms, something previous attempts to design
ambitious loop forms have not managed to do.

I will present the design of a loop package for Scheme with a well-
defined and natural scoping rule, based on a notion of control
dominance that generalizes the standard lexical-scope rule of the
lambda-calculus. The new construct is powerful, clear, modular, and
extensible.

The loop language is defined in terms of an underlying language for
expressing control-flow graphs. This language itself has interesting
properties as an intermediate representation. The whole system is an
interesting example of exploiting Lisp's macro technology---one of its
crown jewels---to implement entire "little languages."

Olin Shivers was an undergraduate at Yale University and
earned his doctorate at Carnegie Mellon, where he studied AI and
programming languages under Allen Newell and Peter Lee. A peripatetic
scholar, he subsequently held research and faculty positions at Bell
Labs, Hong Kong University, MIT, and Georgia Tech, before joining the
faculty at Northeastern University. He has been the founder of three
startup companies, most recently Smartleaf Corporation.