David Van Horn scripsit:

> I have made the same suggestion on this mailing list.  (Although I don't 
> buy the bit about the need for an interpreter [at compile time]).

Well, let us say then, some means of evaluating arbitrary Scheme at
compile time.  It can compile the bodies of low-level macros, load them
into itself, and invoke them.

ISLisp, BTW, which is a Common Lisp derivative standardized by ISO,
has defmacros, but it also has this interesting disclaimer:

# The set of usable operations is restricted to simple data structure
# creation and manipulation; those operations are forbidden that cause
# side-effects to the environment (such as I/O to the terminal), to
# externally accessible data structure (such as a modification to the
# property list of a symbol), or to the macro form itself.

IOW, an ISLisp compiler needs an evaluator, but it does not have to be
a *full* evaluator.  Unfortunately, there is no specification of exactly
which standard functions an implementation must allow.

In my long-delayed ISLisp compiler, there will be a classical tree
walking interpreter at compile time, but no interpreter at run time,
for ISLisp has no "eval" nor any other means of introspection about a
running program.  It is, I think, an attempt at making a Lisp that is
as compilable as possible, while still having only dynamic typing and
dynamic method (CLOS-ish) dispatch.

-- 
John Cowan    [email protected]    http://ccil.org/~cowan
If a traveler were informed that such a man [as Lord John Russell] was
leader of the House of Commons, he may well begin to comprehend how the
Egyptians worshiped an insect.  --Benjamin Disraeli

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to