Report on the 1980 LiSP Conference Stanford University. August 25-27, 1980

The 1980 LISP Conference is, to my knowledge, the second conference ever held oit the subject of the LISP language. The first was in Mexico City in 1964. This chronological gap would seem to indicate a lack of interest in LISP, but LISP is in fact a vigorous and thriving language. For most of its history LISP has been used primarily in Artificial Intelligence applications. 1 More recently, however, it has been used as a systems programming language to implement such systems as general text editors (see the abstract of Greenberg's paper (3) below). While LISP has been known primarily for non-numeric, symbolic processing, optimizing compilers have been written that compete with FORTRAN in efficiency. 2 John McCarthy, inventor of LISP, notes that LISP is the second or third oldest surviving programming language (depending on whether or not you count APT), and suggests that "LISP has survived for 21 years because it is an approximate local optimum in the space of programming languages." This has not kept people from trying to improve on LISP, however, by either revision or extension. One topic debated dunng the conference was whether it would be a good thing to construct a version of LISP frith strong data typing. 3 Arguments raised in tiavor of this include increased error-checking, reliability, mad ease of verification; arguments against include the flexibility of typelessness and faster program production and turnaround in experimental, interactive situations. Of thirty-one papers, at least five (7, 8, 10, 18, 22) were concerned with data types, modes, and abstraction. Multiprocessing was another topic of great interest. Over one-fourth of the papers presented (3, 4, 5, i2, 15, 24, 25, 26) dealt with multiprocessing, parallelism, and cooperating processes. A third area of interest, not surprisingly, was efficiency. Like most interpreter-based languages, LISP has suffered from a mythical and undeserved reputation for slowness. APL suffered from a similar reputation, but recently clever interpretation algorithms (particularly in the proprietary commercial time-sharing implementations) have made it incredibly fast. LISP, too, can be fast when interpreted or compiled correctly; better techniques for heap storage management can also help. were concerned directly with efficiency or compilation techniques, and others were so concerned indirectly. There was a panel session on possible futures for LISP, which became a lively audience-participation discussion. There was not a great deal of agreement on any issue, but then again no issue suffered from lack of interest. …

[1]  Michael J. C. Gordon,et al.  The Denotational Description of Programming Languages , 1979, Springer New York.

[2]  Daniel H. H. Ingalls,et al.  The Smalltalk-76 programming system design and implementation , 1978, POPL.

[3]  Gerald Jay Sussman,et al.  The Art of the Interpreter or, The Modularity Complex (Parts Zero, One, and Two) , 1978 .

[4]  Peter Henderson,et al.  A lazy evaluator , 1976, POPL.

[5]  Henry Lieberman,et al.  Specifying and Proving Properties of Guardians for Distributed Systems , 1979, Semantics of Concurrent Computation.

[6]  Daniel G. Bobrow,et al.  Compact Encodings of List Structure , 1979, TOPL.

[7]  Martin L. Griss,et al.  Standard LISP report , 1979, SIGP.

[8]  Carl Hewitt,et al.  Viewing Control Structures as Patterns of Passing Messages , 1977, Artif. Intell..

[9]  Robert M. Keller,et al.  A loosely-coupled applicative multi-processing system* , 1979, 1979 International Workshop on Managing Requirements Knowledge (MARK).

[10]  Tony Hoare,et al.  Hierarchical Program Structures , 1972 .

[11]  Craig Schaffert,et al.  Abstraction mechanisms in CLU , 1977, Commun. ACM.

[12]  Gerald Jay Sussman,et al.  The Revised Report on SCHEME: A Dialect of LISP. , 1978 .

[13]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1960, Commun. ACM.

[14]  L. Peter Deutsch A LISP Machine with Very Compact Programs , 1973, IJCAI.

[15]  Douglas W. Clark,et al.  An empirical study of list structure in Lisp , 1977, CACM.

[16]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[17]  Brian Cantwell Smith,et al.  Towards a programming apprentice , 1974, IEEE Transactions on Software Engineering.

[18]  L. Peter Deutsch,et al.  Experience with a microprogrammed Interlisp system , 1978, MICRO 11.

[19]  Daniel G. Bobrow,et al.  A model and stack implementation of multiple environments , 1973, CACM.

[20]  Carl Hewitt,et al.  The incremental garbage collection of processes , 1977, Artificial Intelligence and Programming Languages.