TwinLisp is a language with C/Java - like syntax, but with internals and abilities of a Common Lisp (it is a twin of a lisp internally). TwinLisp is implemented as a translator from its own syntax to lisp code, which can be executed by any CL implementation.

TwinLisp code is translated into CL code. CL code is essentialy an AST (abstract syntax tree) for an initial code. First of all, this tree is human-readable. Second, there is a macro facility to manipulate AST, which gives TwinLisp powers of Lisp in a convenient form (syntax).

One may use Common Lisp inside TwinLisp code, and use TwinLisp inside Common Lisp. In this way, it is possible to evolve existing CL code with TwinLisp. Moreover, all CL libraries are available in TwinLisp, and TwinLisp libraries can be used in CL.