I was thinking about buying Lisp In Small Pieces? and Escentials of
Programming Languages? How good are these books. I already know
Lisp/Scheme but wanted to learn about how to write compilers in Lisp,
and how to write a Lisp compiler. As these are pricey books; how
helpful would these be? How does Anatomy of Lisp compair to the above
books?
I am also intrested in writing Lisp in Lisp, Reflexive or Metacircular
compilers--are there any books about such topics. I liked some papers
I've read in 'Lisp Ponters' (Does the 'zein still exist?) about
implementing Lisp Special-Forms as Lisp Macros.
I also liked in ANSI CL how Paul Grham wrote the basic Lisp functions
in Lisp. Is there a book about how to create a Lisp-kernal (microcode
compiler, base functions) and write an entire ANSI CL on top of it.
(Or, compiling Scheme on top of a kernal, because it is a smaller
language.)
Is there a book about implementing ANSI CL ontop of Scheme. Peter
Novig wrote about implementing Scheme in ANSI CL in his Paradigms of
Artificial Intelligence: Case Studies in Common Lisp book.
·································@hotmail.com (Franz Kafka) wrote in message
>
> I am also intrested in writing Lisp in Lisp, Reflexive or Metacircular
> compilers--are there any books about such topics. I liked some papers
> I've read in 'Lisp Ponters' (Does the 'zein still exist?) about
> implementing Lisp Special-Forms as Lisp Macros.
>
The Lisp I am trying to port has no: PROGV, FLET, LABELS, MACROLET,
and some
other special forms.
The article I read had code implementing: PROGV using
Unwind-Protect(which my Lisp has.) Implementing LABELS using FLET. It
has FLET implemented using MACROLET.
My Lisp does not have a MICROLET.
Could I implement MICROLET in terms of LABELS or FLET?
Could I define all ANSI CL's Special Forms in terms of each other?
I posted the code I was using as a (LONG) message.
If someone could either e-mail me or post the code to implement
all of the Special Forms using other Special Forms so I could
bootstrap my Lisp.
The Lisp I am using has: PROG1, PROG2, PROGN, UNWIND-PROTECT, and
others.
I think it is missing: MACROLET, SYMBOL-MACROLET, GENERIC-MACROLET,
LABELS, GENERIC-LABELS, PROGV, FLET.
Is it possible to implement the above special forms using LAMBDA. (I
think this is one of the most Powerful Lisp Functions. LAMBDA-CALCULUS
& ALL--I could BE wrong.
I guess my question is if I have a subset of CL that has APPLY and
EVAL can I implement the rest of ANSI CL in CLtL1 CL, or CLtL2 CL if
the former is not possible, and if so is there code to do this.
I am not worryed about CLOS with aMOP you can build a subst of CLOS in
CL.