GNU Info

Info Node: (librep.info)Compiled Lisp

(librep.info)Compiled Lisp


Next: Datums Prev: Loading Up: The language
Enter node , (file) or (file)node

Compiled Lisp
=============

   `librep' contains a Lisp compiler as well as an interpreter; this
takes a Lisp form or program and compiles it into a "byte-code" object.
This byte-code object is a string of characters representing virtual
machine instructions, a vector of constants and some other
meta-information. The system also contains a byte-code interpreter;
this takes the compiled byte-codes and executes them by simulating the
virtual machine. This simulation will have exactly the same effect as
interpreting the original form or program.

   One of the main reasons for compiling programs is to increase their
efficiency. Compiled functions are likely to be more efficient than
interpreted counterparts in all areas (space and time). For example:

     user> (define (fib n) (if (<= n 2) 1 (+ (fib (- n 1)) (fib (- n 2)))))
     user> ,time (fib 30)
     832040
     Elapsed: 17.05572 seconds
     user> ,compile
     user> ,time (fib 30)
     832040
     Elapsed: 1.479007 seconds

--the compiled function is over an order of magnitude faster than the
interpreted version.

Compilation Functions
How to compile Lisp programs
Compiler Declarations
Hinting to the compiler
Compilation Tips
Getting the most out of the compiler
Disassembly
Examining compiled functions

automatically generated by info2www version 1.2.2.9