From: Scott D. Anderson
Subject: Geneology of Common Lisp wanted
Date: 
Message-ID: <01bd262a$4dae6a80$f32956d1@manley.spelman.edu>
I posted this question a week ago, but it doesn't seem to have left my
site, so I'm
trying again from a different ISP.  My apologies if you see this twice.

I'm trying to learn more about the Lisp languages that came before Common
Lisp, 
just for a little historical perspective to give my programming languages
class.  The
book, by Robert Sebesta, gives just a tiny geneology of Common Lisp, saying
that it's
a descendant of Scheme.  This strikes me as wrong, and CLtL1 says that
Common 
Lisp is a descendant of Maclisp (which strikes me as right).

Meanwhile, there are all those other languages:  Maclisp, NIL, Spicelisp,
S1 Lisp, UCI Lisp, TLISP (not to be confused with T, which *is* a
descendant of Scheme), Zetalisp, and, of course, Interlisp.  I'm sure I'm
leaving some out, too.  

I would really appreciate it if anyone can fill in any facts about these
languages:  where and when they started, their parent and child languages,
interesting aspects of the languages, or anything else.

Thanks very much.  I always read this group, but if you could send me an
email as
well (in case my ISP(s) let me down), I'd appreciate that, too.

Scott D. Anderson
········@spelman.edu 
http://www.spelman.edu/~anderson/
········@mindspring.com

From: Rainer Joswig
Subject: Re: Geneology of Common Lisp wanted
Date: 
Message-ID: <6a48p1$9j4@desire.lavielle.com>
Scott D. Anderson schrieb in Nachricht
<··························@manley.spelman.edu>...
>I posted this question a week ago, but it doesn't seem to have left my
>site, so I'm
>trying again from a different ISP.  My apologies if you see this twice.
>
>I'm trying to learn more about the Lisp languages that came before Common
>Lisp,
>just for a little historical perspective to give my programming languages
>class

The ANSI CL document should give an overview about the CL history, I think.

Otherwise you might get the book "History of Programming Languages" by
Thomas J Bergin and
Richard G. Gibson. There is a large chapter by Guy L. Steele Jr. and Richard
P. Gabriel
devoted to the "Evolution of Lisp".

Some information about the early history is at
http://www8.informatik.uni-erlangen.de/html/lisp-enter.html ,
(don't click on the bibliography link ;-) )
From: Valentino Kyriakides
Subject: Re: Geneology of Common Lisp wanted
Date: 
Message-ID: <34C5D9AF.7E56@lavielle.com>
Rainer Joswig wrote:
> 
> ...
> ...
> The ANSI CL document should give an overview about the CL history, I think.
> 
> Otherwise you might get the book "History of Programming Languages" by
> Thomas J Bergin and
> Richard G. Gibson. There is a large chapter by Guy L. Steele Jr. and Richard
> P. Gabriel
> devoted to the "Evolution of Lisp".
> 
> Some information about the early history is at
> http://www8.informatik.uni-erlangen.de/html/lisp-enter.html ,
> (don't click on the bibliography link ;-) )


At the CMU AI Repository you can find a postscript version of Gabriel and Steel's
"The Evolution of Lisp" from the 1993 ACM History of Programming Language conference.

See: ftp://ftp.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/doc/history/0.html


Hope this helps ?


-VKyr


-- 
Valentino Kyriakides

Lavielle EDV Systemberatung GmbH & Co.  Tel.: +49(0)40 / 65 80 8 - 997
Lotharstrasse 2b, D-22041 Hamburg, Germany  Fax.:  +49(0)40 / 65 808-202
http://www.lavielle.com/                    mailto: ····@lavielle.com
From: Kent M Pitman
Subject: Re: Geneology of Common Lisp wanted
Date: 
Message-ID: <sfwg1mevr3l.fsf@world.std.com>
Valentino Kyriakides <····@lavielle.com> writes:

> Rainer Joswig wrote:
> > Otherwise you might get the book "History of Programming Languages" by
> > Thomas J Bergin and Richard G. Gibson. There is a large chapter by 
> > Guy L. Steele Jr. and Richard P. Gabriel devoted to the "Evolution of Lisp".
> > 
> > Some information about the early history is at
> > http://www8.informatik.uni-erlangen.de/html/lisp-enter.html ,
> > (don't click on the bibliography link ;-) )
>
> At the CMU AI Repository you can find a postscript version of Gabriel and Steel's
> "The Evolution of Lisp" from the 1993 ACM History of Programming Language conference.
> 
> See: ftp://ftp.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/doc/history/0.html

Btw, I'd asked Steele about this (before others responded) and he just sent
me this hardcopy publication info which may be of interest to some:

  Steele, Guy L., Jr. and Gabriel, Richard P. "The Evolution of Lisp."
  In Bergin, Thomas J., and Gibson, Richard G. (eds.),
  _History_of_Programming_Languages_, ACM Press (New York)
  and Addison-Wesley (Reading, Massachusetts), 1996, pp. 233-330.
  Proceedings of the Second ACM SIGPLAN History of Programming
  Languages Conference (HOPL-II), April 1993.  Contains both papers
  and transcripts of discussions at the conference.  Paper preprints
  only also published in ACM _SIGPLAN_Notices_ 28, 3 (March 1993).
From: William Paul Vrotney
Subject: Re: Geneology of Common Lisp wanted
Date: 
Message-ID: <vrotneyEn4npx.n45@netcom.com>
In article <··························@manley.spelman.edu> "Scott
D. Anderson" <········@mindspring.com> writes:

> 
> I posted this question a week ago, but it doesn't seem to have left my
> site, so I'm
> trying again from a different ISP.  My apologies if you see this twice.
> 
> I'm trying to learn more about the Lisp languages that came before Common
> Lisp, 
> just for a little historical perspective to give my programming languages
> class.  The
> book, by Robert Sebesta, gives just a tiny geneology of Common Lisp, saying
> that it's
> a descendant of Scheme.  This strikes me as wrong, and CLtL1 says that
> Common 
> Lisp is a descendant of Maclisp (which strikes me as right).
> 
> Meanwhile, there are all those other languages:  Maclisp, NIL, Spicelisp,
> S1 Lisp, UCI Lisp, TLISP (not to be confused with T, which *is* a
> descendant of Scheme), Zetalisp, and, of course, Interlisp.  I'm sure I'm
> leaving some out, too.  

Well, the front cover of my CLTL1 looks something like:

                C O M M O N
                L I S P

                      MACLISP
                 SCHEME
                     SPICELISP
                  ZETALISP
                STANDARD
                   LISP                     <--- ?
                     NIL

I can vouch for MACLISP, SCHEME and ZETALISP.  ZETALISP was the Lisp dialect
on the Symbolics and from my experience the closest to Common Lisp and
therefore has common descendants with Common Lisp.  MACLISP is the earliest
descendant, but Scheme lends a lexical scoping influence.  SPICELISP was
mentioned in the Acknowledgments.  It says the goals of Common Lisp are
closest to the goals of PORTABLE STANDARD LISP.  It says S1 LISP was one
implementation of Common Lisp.  It says very little about the influence of
NIL except that it was one example of the uncommonality of Lisps at the time
that begged for a "Common" Lisp (SPICELISP and UCI Lisp being other such
examples).

It also says "Common Lisp strives to be compatible with ZETALISP, MACLISP,
and INTERLISP in that order".  I would classify Scheme as most different
from the whole group because of some very fundamental differences, like
evaluation of the function expression CAR, heavy use of continuations,
recursion looping, minimalism, use of #T and #F ... etc.



-- 

William P. Vrotney - ·······@netcom.com
From: Kent M Pitman
Subject: Re: Geneology of Common Lisp wanted
Date: 
Message-ID: <sfwafcp7bbp.fsf@world.std.com>
·······@netcom.com (William Paul Vrotney) writes:
> Well, the front cover of my CLTL1 looks something like:
> 
>                 C O M M O N
>                 L I S P
> 
>                       MACLISP
>                  SCHEME
>                      SPICELISP
>                   ZETALISP
>                 STANDARD
>                    LISP                     <--- ?
>                      NIL               [think "search keywords" -kmp]
> 
> I can vouch for MACLISP, SCHEME and ZETALISP.  ZETALISP was the Lisp dialect
> on the Symbolics and from my experience the closest to Common Lisp and
> therefore has common descendants with Common Lisp.  MACLISP is the earliest
> descendant, but Scheme lends a lexical scoping influence.  SPICELISP was
> mentioned in the Acknowledgments.  It says the goals of Common Lisp are
> closest to the goals of PORTABLE STANDARD LISP.  It says S1 LISP was one
> implementation of Common Lisp.  It says very little about the influence of
> NIL except that it was one example of the uncommonality of Lisps at the time
> that begged for a "Common" Lisp (SPICELISP and UCI Lisp being other such
> examples).
> 
> It also says "Common Lisp strives to be compatible with ZETALISP, MACLISP,
> and INTERLISP in that order".

I remember INTERLISP coming into play in discussions of EQUAL and
SUBST and other basic Lispy functions. (You wouldn't believe how
incompatible EVERY dialect was on these basic functions and how little
anyone knew or cared. INTERLISP was studied and taken into
consideration, but its functionality may ultimately not have won. :-)
I believe CAR/CDR of NIL being NIL comes from Interlisp but via
Maclisp.  The chief INTERLISP influence in CL comes in ANSI CL in that
CLOS is heavily influenced by LOOPS which came out of the Xerox community
(as well as other facilities, like Lisp Machine flavors).

> I would classify Scheme as most different
> from the whole group because of some very fundamental differences, like
> evaluation of the function expression CAR, heavy use of continuations,
> recursion looping, minimalism, use of #T and #F ... etc.

CL got "lexical scoping" from Scheme, as well as a few later things like
the LAMBDA macro (intended to make lambda calculus look a little more natural
for Schemers so you can write without #'lambda, though not without funcall).
We also got the idea for COMPLEMENT from the Scheme community, to allow
us to phase out the -IF-NOT and :TEST-NOT functionality (which are supported
but deprecated in ANSI CL).

Jonathan Rees and I tried to also get "global lexicals" (top-level
variables you can close over) accepted in CL, but the proposal was
rejected.  Too bad.  Sort of.  Well, in order to make the proposal 
make people happy, it was so heavily amended it would not have served its
original purpose.  At that point, it would have passed but it would have
satisfied no one--the original authors couldn't have used the revised
proposal and the reveisers didn't want the propsal, they just wanted to
render the original proposal non-scary.  So we just kinda gave up.

There was discussion of a single namespace but we concluded that there
were important efficiency and cultural reasons for sticking with multiple
namespaces.

I don't think anyone outside of Scheme thinks full continuations (the
kind you can return from more than once) is worth the implementation
hassles. D don't think anyone seriously proposed this.

Tail call efficiency is accomodated for implementations that want it,
but we don't require it because it's considered an implementation
isue.

The language NIL briefly experimented with #T for truthity (instead of T).
It annoyed a lot of people and worked against the stability that CL sought
to provide.  CL wasn't trying to redesign things more than necessary--it was
trying to unify things.  Empty list and NIL being distinct I think was
also a property of the language NIL and again was a mess.

Minimalism--hey we aded that somewhere.  You probably just can't see it
on top of all the other stuff. ;-)