Common LISP(ID:946/com014)

Consensus-based common dialect of LISP 


An effort begun in 1981 to provide a common dialect of LISP. The result is a large and complex language, fairly close to a superset of MacLisp.
Lexical binding, data structures using defstruct and setf, closures, multiple values, types using declare, a variety of numerical types. Function calls allow optional, keyword and &rest arguments. Generic sequence can either be a list or an array. Formatted printing using escape characters.
Common LISP now includes CLOS, an extended LOOP macro, condition system, pretty printing, logical pathnames.

According to some postings called "Yu-Shiang Lisp", though why is not clear





Related languages
HCPRVR => Common LISP   Written using
INTERLISP => Common LISP   Evolution of
MACLISP => Common LISP   Evolution of
NIL => Common LISP   Incorporated into
Scheme => Common LISP   Evolution of
Spice Lisp => Common LISP   Influence
ZetaLisp => Common LISP   Evolution of
Common LISP => ABCL/R2   Written using
Common LISP => AKCL   Total Implementation
Common LISP => Butterfly Common LISP   Extension of
Common LISP => Cantor   Incorporated some features of
Common LISP => CLM   Written using
Common LISP => Closette   Extension of
Common LISP => CLX   Implementation
Common LISP => CMN   Written using
Common LISP => ComLisp   Subset
Common LISP => Common Music   Written using
Common LISP => CommonLisp0   Subset
Common LISP => DTP   Based on
Common LISP => EAT   Based on
Common LISP => ECoLisp   Implementation
Common LISP => EuLisp   Influence
Common LISP => FRAPPS   Based on
Common LISP => ILU   Interface for
Common LISP => KCL   Implementation
Common LISP => KEE   Based on
Common LISP => KRS   Built on
Common LISP => MACE   Built with
Common LISP => MVL   Based on
Common LISP => Nqthm   Extension of
Common LISP => ObjectLisp   Extension of
Common LISP => ONS   Runs under
Common LISP => Paralation LISP   Extension of
Common LISP => PARCIL   Based on
Common LISP => QLISP   Extension of
Common LISP => Screamer   Extension of
Common LISP => Uranus   Written using
Common LISP => Yale Haskell   Written using

References:
  • Steele, Guy L. "Common LISP: The Language", Digital Press 1984, ISBN 0-932376-41-X. view details
  • Padget, J. A. "Current Development in LISP" view details Abstract: This talk is a survey, in part from firsthand experience of the
    current developments in LISP and specialized LISP hardware
    happening in Europe, America and Japan. This research will
    have major implications for computer algebra and algebra system
    environments.
    Although LISP, by its extensible nature, has always been an
    evolving language, unconstrained by standards, the past few
    years have been amongst the most active. In the field of
    language work there have been SCHEME-84, Common LISP,
    Standard LISP 85 and 3-LISP, whilst in hardware there are the
    continuing development of Symbolics, the arrival of Texas
    Instruments, several experimental machines in Japan, such as
    FLATS, Alpha and TAO, and the start of similar projects in
    Europe.
    How all these factors will affect future developments and implementations
    of REDUCE, MACSYMA and SCRATCHPAD will
    also be discussed.
          in European Conference on Computer Algebra EUROCAL 85 LNCS 204 view details
  • Steele, G. L. (1986). "Common LISP, and the Connection Machine." view details
          in Computer Language Magazine 11(8) view details
  • Wilensky, R. (1986). Common LISPcraft. New York, W.W. Norton. view details
          in Computer Language Magazine 11(8) view details
  • Simpson, R. (1987). Common LISP : the index : a cross-referenced index to Common LISP : the language. Cambridge, MA Berkeley, CA, Coral Software Corp. ; Franz. view details
          in Computer Language Magazine 11(8) view details
  • Tatar, D. G. (1987). A programmer's guide to COMMON LISP. Bedford, MA, Digital Press. view details
          in Computer Language Magazine 11(8) view details
  • Yuasa, T. and M. Hagiya (1987). Introduction to COMMON LISP. Boston, Academic Press. view details
          in Computer Language Magazine 11(8) view details
  • Yuasa, T. (1988). Common Lisp drill. Boston, Academic Press. view details
          in Computer Language Magazine 11(8) view details
  • Hasemer, T. and J. Domingue (1989). Common LISP programming for artificial intelligence. Workingham, England ; Reading, Mass., Addison-Wesley. view details
          in Computer Language Magazine 11(8) view details
  • Keene, S. E. and D. Gerson (1989). Object-oriented programming in Common LISP : a programmer's guide to CLOS. Reading, Mass., Addison-Wesley. view details
          in Computer Language Magazine 11(8) view details
  • Steele, D. J. (1989). Golden common LISP : a hands-on approach. Singapore ; Reading, Mass., Addison-Wesley. view details
          in Computer Language Magazine 11(8) view details
  • Harrison, P. R. (1990). Common Lisp and artificial intelligence. Englewood Cliffs, N.J., Prentice-Hall. view details
          in Computer Language Magazine 11(8) view details
  • Harrison, P. R. (1990). Common Lisp and artificial intelligence. Englewood Cliffs, N.J., Prentice-Hall. view details
          in Computer Language Magazine 11(8) view details
  • Steele, Guy L. "Common LISP: The Language, 2nd Edition", Digital Press 1990, ISBN 1-55558-041-6. view details Abstract: Common Lisp is intended to meet these goals:


    Commonality
    Common Lisp originated in an attempt to focus the work of several implementation groups, each of which was constructing successor implementations of MacLisp for different computers. These implementations had begun to diverge because of the differences in the implementation environments: microcoded personal computers (Zetalisp, Spice Lisp), commercial timeshared computers (NIL-the "New Implementation of Lisp''), and supercomputers (S-1 Lisp). While the differences among the several implementation environments of necessity will continue to force certain incompatibilities among the implementations, Common Lisp serves as a common dialect to which each implementation makes any necessary extensions.

    Portability
    Common Lisp intentionally excludes features that cannot be implemented easily on a broad class of machines. On the one hand, features that are difficult or expensive to implement on hardware without special microcode are avoided or provided in a more abstract and efficiently implementable form. (Examples of this are the invisible forwarding pointers and locatives of Zetalisp. Some of the problems that they solve are addressed in different ways in Common Lisp.) On the other hand, features that are useful only on certain "ordinary'' or "commercial'' processors are avoided or made optional. (An example of this is the type declaration facility, which is useful in some implementations and completely ignored in others. Type declarations are completely optional and for correct programs affect only efficiency, not semantics.) Common Lisp is designed to make it easy to write programs that depend as little as possible on machine-specific characteristics, such as word length, while allowing some variety of implementation techniques.


    Consistency
    Most Lisp implementations are internally inconsistent in that by default the interpreter and compiler may assign different semantics to correct programs. This semantic difference stems primarily from the fact that the interpreter assumes all variables to be dynamically scoped, whereas the compiler assumes all variables to be local unless explicitly directed otherwise. This difference has been the usual practice in Lisp for the sake of convenience and efficiency but can lead to very subtle bugs. The definition of Common Lisp avoids such anomalies by explicitly requiring the interpreter and compiler to impose identical semantics on correct programs so far as possible.

    Expressiveness
    Common Lisp culls what experience has shown to be the most useful and understandable constructs from not only MacLisp but also Interlisp, other Lisp dialects, and other programming languages. Constructs judged to be awkward or less useful have been excluded. (An example is the store construct of MacLisp.)

    Compatibility
    Unless there is a good reason to the contrary, Common Lisp strives to be compatible with Lisp Machine Lisp, MacLisp, and Interlisp, roughly in that order.

    Efficiency
    Common Lisp has a number of features designed to facilitate the production of high-quality compiled code in those implementations whose developers care to invest effort in an optimizing compiler. One implementation of Common Lisp, namely S-1 Lisp, already has a compiler that produces code for numerical computations that is competitive in execution speed to that produced by a Fortran compiler [11]. The S-1 Lisp compiler extends the work done in MacLisp to produce extremely efficient numerical code [19].

    Power
    Common Lisp is a descendant of MacLisp, which has traditionally placed emphasis on providing system-building tools. Such tools may in turn be used to build the user-level packages such as Interlisp provides; these packages are not, however, part of the Common Lisp core specification. It is expected such packages will be built on top of the Common Lisp core.

    Stability
    It is intended that Common Lisp will change only slowly and with due deliberation. The various dialects that are supersets of Common Lisp may serve as laboratories within which to test language extensions, but such extensions will be added to Common Lisp only after careful examination and experimentation.


    The goals of Common Lisp are thus very close to those of Standard Lisp [31] and Portable Standard Lisp [51]. Common Lisp differs from Standard Lisp primarily in incorporating more features, including a richer and more complicated set of data types and more complex control structures. External link: Copy of text online
          in Computer Language Magazine 11(8) view details
  • Touretzky, D.S. Common LISP : a gentle introduction to symbolic computation. Redwood City, Calif., Benjamin/Cummings Pub 1990 view details
          in Computer Language Magazine 11(8) view details
  • Kiczales, G., J. Des Riviáeres, et al. (1991). The art of the metaobject protocol. Cambridge, Mass., MIT Press. view details
          in Computer Language Magazine 11(8) view details
  • Watson, M. (1991). Common LISP modules : artificial intelligence in the era of neural networks and chaos theory. New York, Springer-Verlag. view details
          in Computer Language Magazine 11(8) view details
  • Young, Norman "Two models of object-oriented programming and the Common Lisp Object System" pp27-36 view details Abstract: This report compares the Common Lisp Object System (CLOS) with two general models of object-oriented programming (OOP). The definition of the Common Lisp programming language and its object-oriented extensions are taken from Steele [4]. The two models of object-oriented programming used for the comparison are described by Booch and Meyer. DOI
          in SIGPLAN Notices 27(04) April 1992 view details
  • Graham, P. (1994). On Lisp : advanced techniques for Common Lisp. Englewood Cliffs, N.J., Prentice Hall. view details
          in SIGPLAN Notices 27(04) April 1992 view details
  • Graham, P. (1996). ANSI Common Lisp. Englewood Cliffs, N.J., Prentice Hall. view details
          in SIGPLAN Notices 27(04) April 1992 view details
  • Library of Congress Subject Headings C28 view details
          in SIGPLAN Notices 27(04) April 1992 view details
    Resources

    • list:common-lisp@ai.sri.com.

    • CMU Common LISP Version
      "

    • Draft proposed ANS Common Lisp
      "
    • History of Common Lisp
      In a brief attempt to remember the roots of "Yu-Shiang Lisp", subsequently
      named COMMON LISP, I searched my old mail files which are still on-line,
      and found a few tidbits of history.  Mostly, my mail stuff got deleted,
      but the "Call" for the conference at SRI on Apr 8, 1981, by Bob Engelmore
      survived, along with an interchange, about a week after the "birth",
      between Ed Feigenbaum and Scott Fahlman.  These I've packeged up in the
      file at MIT-MC JONL;COMMON HIST along with Chuck Hedrick's overall summary
      of the April 8 meeting.
      external link