Common LispA very powerful but somewhat messy dialect of the Lisp programming language. It was intended to unify the many dialects of Lisp, and it has succeeded for the most part in doing so. The only other widely used dialects are Scheme and EMACS Lisp.
It turns out that despite its goal of unification, Common Lisp is actually a very good language. It is my opinion that it is unsurpassed, the best overall language as of now (09-14-2002).
- Some features:
- a powerful (but dangerous) macro system, a class-based object system with multiple-dispatch (CLOS) (and often with a powerful meta-object protocol), an extensive standard library full of rich data structures, and a whole lot more. In addition, there are a number of high quality implementations, free and non-free, available. Some of these implementations output very fast code.
- Some misfeatures:
- there are many constraints placed on the language due to compatibility reasons, not the least of which is the fact that it is a lisp2 (ie, it has a special namespace for functions). Many very intelligent people (Fare, Kent M. Pitman) feel that this is not a disadvantage, but I do. I feel the macro system is unnecessarily dangerous and restrictive (in that macros are not first class values like procedures). Nothing huge though.
This sounds like the opinion of most people who don't understand that macro hygeine isn't needed in a lisp2. :-) However the points are correct and there is some lisp possible that should be able to best both Common Lisp and Scheme: each design has very old roots. -- water
- SBCL, a very high quality free implementation. Based on CMUCL.
- CMUCL, outputs very fast code
- GCL, the GNU project's free implementation
- ECL, Embeddable Common Lisp with interpreter and translator to C code
- WCL - Embeddable Common Lisp for Linux
- CLISP: compiles to portable bytecode, offers mediocre performance.
This page is linked from: AP5 AspectL bknr CafeOBJ CL CLHS CLiki CLIM CLOS Design by Contract EuLisp fare-matcher Fault-tolerant Garnet Kent M. Pitman KnowOS Literate Programming Max Movitz NetCLOS PL 101 Poplog Qi REBOL Reflective Programming Languages Scheme Screamer Stella language Trotskyite Tunes TUNES vs the WWW Type System UFFI UnCommon Web zzz