[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
contours, locales and modules.
As you all know, Abelson & Sussman's excellent book is
now generally available. They describe Scheme as having roots
in early Lisp and in Algol 60. We agree this is a step forward,
but there are many other good ideas that could be but into
Scheme dialects. T, for example, has included the idea of
OBJECTs and OPERATIONs, giving a unified view of procedural
data abstactions. Most new languages include methods for
for controling name space that is not nesting, such as
Algol's block structure. The list includes Common Lisp, Ada,
Modular, Clue, KL0-PROLOG and I'm sure there are many more.
The point of my previous notes on modules is to argue that
LOCALE is a bad idea that should be expunged in favor of
a construct that behaves like MODULES of the previous note,
but allows dynamic linking, as expected from any Lisp-like
system. Ableson & Sussman talk about packages, and correctly
note the need for explicit naming of imported and exported items,
and the need for local symbols unreachable outside the package.
They then present a truely ugly kludge that does not fit in the
book. One could only guess what compiled code would result if
a compiler existed for packages in that dialect.
In conclusion, things that manage name spaces should not
be limited to being related to contours.