[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Compiling CASE

The job of both the compiler and macros is to preserve the semantics of
the source code.  Therefore, it doesn't matter if the compiler always
uses macro definitions or if it has its own knowledge of macros as
"special forms."  Many implementations would be unduly hurt if the only
forms the compiler knew were special are the couple dozen listed on page
57.  For example, the Symbolics implementation has very efficient
compilations for many of the multiple-value forms, which by strict
Common Lisp are macros.

Also see in the middle of page 57:
  Conversely, an implementation is free to implement as a special form
  any construct described herein as a macro if an equivalent macro
  definition is also provided.
I believe the intent of this statement is that the interpreter and
compiler may use the special form definition and special knowledge,
respectively, for efficiency.