[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
> Why is it bad to require a "data-like" representation of the syntactic
> elements of the language? This works quite well in lisp, no?
It works so well in Lisp because Lisp is so simple. Classical Lisp syntax
has two non-terminals (atoms and numbers) and one terminal (list cells), and
the mapping between data and program structure is so direct that one doesn't
even think about it.
For macros in a language like Self that has real syntax, one has to take a
position as to how the macro arguments should be parsed. Should they be
parsed as expressions? If so, macros just become an efficiency hack,
because they can't do anything that ordinary messages can't do. If not,
then presumably something in the macro definition has to specify this ... in
which case we're back to the much more serious problem of deciding how macro
definitions are scoped and when they should be expanded, a problem which I
think is quite sufficient to sink the whole concept for Self.
L. Peter Deutsch