Next: Scope and Aim of Common LISPcraft, Previous: The Lisp Language, Up: Preface [Index]
Recently there has been an attempt to standardize many of the innovations that have entered into the different LISP dialects. The result of this atempt at synthesizing LISP variations is called Common LISP. There are a number of ways in which Common LISP departs from previous efforts to build LISP systems. Most significantly, Common LISP is defined as a language, rather than as an implementation of LISP. It is defined as a set of specifications that could be realized in different ways. With the advent of Common LISP, it is now possible to talk about an actual LISP language without having to talk about a specific implementation.
The possibility of painlessly moving a LISP program from one machine to a quite different machine is now rather realistic. Students may now learn something approaching a standard, and not have to relearn a great deal as they move to a different environment.
To some degree it has been designed by a committee. Some issues appear to be treated inconsistently. Some of the particular decisions that were made are questionable. Input in Common LISP is normally converted to upper case. Some of the terminology is poor. For example, the terms “binding” and “special form” are used in a confused and confusing fashion in Common LISP; a different terminology for talking abouty variable and special functions has been instituted here in its place. Some critics have accused Common LISP of being too complex a language, making efficient implementations difficult. Common LISP is not a small language.