Common Lisp Macros are compilers. If you write a macro that transforms some code into Common Lisp that can then be compiled by Common Lisp, then isn't that a compiler? Check out some Common Lisp programming bookbooks on Macros, and I think you'll find some very useful information there. I'd recommend On Lisp and Let Over Lambda.
A recent practical example of using Common Lisp macros as a code transformer/compiler is CLPython:, but there are all sorts of DSLs/other examples that use this technique.
Another good example is Doug Hoyte's implementation of a Forth compiler in Common Lisp; that one is at the end of Let Over Lambda.