Common Lisp CLISP
- Common Lisp is
- a general-purpose programming language and an AI language
- interactive
- a Lisp for professional use
- a standard language: the syntax and semantics will not
change tomorrow at someone's whim
- Common Lisp programs are
- easy to test (interactive)
- easy to maintain (depending on programming style)
- portable across hardware/OS platforms and implementations
(there is a standard for the language and the library functions)
- Our Common Lisp CLISP
- needs only 4 MB of memory
- implements most of the ANSI standard, as well as many extensions
- can call your preferred editor
- is freely distributable
- Common Lisp provides
- clear syntax, carefully designed semantics
- several data types: numbers, strings, arrays, lists, characters,
symbols, structures, streams etc.
- dynamic typing: the programmer need not bother about type
declarations, but he gets notified on type violations.
- many generic functions:
88 arithmetic functions for all kinds of numbers (integers, ratios,
floating point numbers, complex numbers),
44 search/filter/sort functions for lists, arrays and strings
- automatic memory management (garbage collection)
- packaging of programs into modules
- an object system, generic functions with powerful method
combination
- macros: every programmer can make his own language extensions
- Our Common Lisp CLISP provides
- an interpreter
- a compiler which makes execution of programs 5 times faster
- a source-level debugger which allows stepping through interpreted
code, form by form
- all data types with unlimited size (the size need never be
declared, the size of lists and arrays may be changed dynamically)
- integers of arbitrary length
- unlimited floating point number precision
- 800+ library functions and macros, 600+ of them written in C
CLISP and Unicode
CLISP fully supports Unicode
3.2:
here is a Lisp file
with Japanese characters in it, run in xterm:
(also edited in GNU Emacs).
CLISP and CLX
Here is a demo of the CLISP new-clx module (with the xshape
extension):
CLISP Performance
CLISP compares well with other ANSI CL implementations with respect
to performance in most areas, such as CLOS, I/O, lists, integer
arithmetics (CLISP's bignum performance is better than that of most
other CL implementations).
The worst performance CLISP exhibits is in the area of floating point
arithmetics.
While showing nothing spectacularly bad and easily outperforming Java,
Perl, TCL and any Scheme interpreter, CLISP is slower than another
open-source CL implementation, CMU
CL, which outperforms C and FORTRAN. If your code is heavily
numeric, you might prefer CMUCL, otherwise CLISP is a wise choice.