Lecture on MetaLisp
Date: Tue, 11 Oct 88 14:04:42 EDT
Computer Science Department
MetaLISP combines much of the syntactic structure of McCarthy's original
M-expression LISP with the semantic structure of Scheme. Like M-expression
LISP, MetaLISP is characterized by distinct notation for program and data
(and therefore no quotation operator). Like Scheme, MetaLISP features
first class functions and continuations. Unlike either dialect, MetaLISP
is characterized by a simple and consistent (Church-Rosser) notion of
reduction analogous to Church's beta.
The confusion caused by LISP's uniform S-expression notation is tolerated
because the notation is seen as an essential aspect of LISP's expressive
power as a metalanguage. This includes the facility of embedding languages
in LISP using the LISP reader, LISP's expression oriented macro facility
and an explicitly available evaluator. Our work shows that this strength
is independent of LISP's syntactic structure.
As a replacement for the LISP reader we introduce a parser generator
(a function from attribute grammars to readers) which disengages
representation from notation and introduces an abstraction barrier
between language and metalanguage. We then introduce a representation
independent macro facility analogous to Kohlbecker and Wand's
Macro-by-Example and show how the traditional name capture problem
can be circumvented. Finally, we sketch a model of reflection in which
a programmer knowledgeable about representations in the metalanguage
may explicitly access the contents of the interpreter's registers.
Date: October 12, 1988
Time: 4-5 (refreshments at 3:30)
Room: 135, 111 Cummington St.
attendance is mandatory for all Ph.D students.
refreshments served 30 minutes before talk.