Part III. Internals

ECL is an implementation of the Common-Lisp language that is based on a kernel written in C plus a set of libraries written in Common-Lisp. The kernel includes a bytecodes compiler, an interpreter, and enough functions to create and manipulate all lisp objects. The lisp libraries provide higher level constructs such as macro definitions, LOOPs, an implementation of CLOS, and a translator from Lisp to C.

As a result of this design, which dates back to the Kyoto CL and was later improved in Giuseppe Attardi's ECoLisp, ECL can be used as

  • As a standalone implementation of the Common-Lisp language

  • As an embedded interpreter subject to the control of a larger C program.

  • As a Common-Lisp environment with C/C++ extensions.

This manual describes the facility of ECL to interface the C language and ECL. With this facility, the user can arrange his or her C-language programs so that they can be invoked from ECL. In addition, the user can write Lisp function definitions in the C language to increase runtime efficiency.