Programming language projects
- Flame on object-oriented.
- Manifesto on JAR's next language.
- I follow the
E programming language discussion, and contribute from time to time.
One of my postings that might be of general interest is
about Pascal, E, continuations, and monads.
- I was on a
panel
at MIT that discussed programming language design.
- Scheme + ADT's = secure OS. Idea described in
"A security kernel based on the lambda-calculus,"
which was part of my PhD thesis.
- Mobot Scheme (at
Cornell, with
Bruce Donald). This is Scheme 48 running on a 4" by 6"
embedded controller card (MC68000 with 1M RAM, .5M ROM). Byte
code interpreter is in ROM. The board supervises a mobot
with several other computers and a RWI B12 wheel base.
Paper "Program
mobile robots in Scheme" was in ICRA 92.
-
Monad-parameterized Lisp interpreter. Monads (an
invention of category theorists) give a good
way of factoring the semantics of a language into essence and
accident.
-
Scheme 48, at MIT, Xerox PARC, and Cornell, with
Richard Kelsey. See Lisp and Symbolic
Computation 7(4):315--335, 1994.
- A reliable macro system for Scheme (at MIT; with Will Clinger;
published in POPL 91) (originally conceived while
working in Daniel Weise's group at Stanford)
- I was a teaching assistant for
6.821,
MIT's graduate programming
language core course; I wrote software and course notes, and
generally helped develop the course (with Dave Gifford).
The course has evolved a bit since I was last involved,
as has my thinking on programming language pedagogy.
- Consultant to VAX Lisp product development group (DEC's Common Lisp)
- Editing the
thrice-revised Scheme Report
(MIT; with Will Clinger)
-
Pseudoscheme (at MIT) -- Scheme embedded in Common Lisp
- T3 project (at DEC WRL, with a cast of thousands) -- hairy native
code Scheme compiler.
Paper in SIGPLAN Compiler Construction 1986.
- T project (at Yale, with Norman Adams,
Kent Pitman, and Jim
Philbin) -- used Steele's S-1 Lisp compiler and ideas from
NIL to build the first compiler-based Scheme implementation.
Paper in 1982 ACM Lisp Conference (which wasn't called that).
- NIL (New Implementation of Lisp) (at
MIT), where JonL White taught me all I know about
repulsively clever Lisp implementation techniques.
- Snostorm (SNOBOL4 preprocessor, at Yale). SNOBOL, with a
modest set of improvements, and Algol 68 were my favorite
languages before
Drew McDermott showed me their similar but cleaner cousins Lisp
and Scheme.
- SNOBOL4 port to Sigma-7 (at
Grand Valley State Colleges, Michigan)
Editorial
Even after 50 years of hard work by many smart people, programming is
still much more difficult than by all rights it should be.
I attribute this in part to the failure so far of creative individuals
to find good methods and solutions, and in part to the failure of
the software industry (and one company in particular) to be aware
of and exploit known good practices.