From: Jeff Dalton
Subject: Re: Myths and the Encyclopaedia Britannica
Date: 
Message-ID: <DGnCIF.DLw@cogsci.ed.ac.uk>
Erik Naggum <····@naggum.no> writes:

>I found this in the Britannica Online, and quote it here for purposes of
>review in the hope that someone of proper authority might like to notify
>them of their misconceptions:

>    LISP.

>    LISP (List Processor) is a language that is powerful in manipulating
>    lists of data or symbols rather than processing numerical data.  In
>    this sense, LISP is unique.  It requires large memory space and, since
>    it is usually processed by an interpreter, is slow in executing
>    programs.  ...

This view is kinda odd, since Lisp compilers have been around for
ages.  Lisp 1.5 had a compiler.  The 1965 (I think) book on Lisp
(something like "The Programming Language Lisp it's Operation and
Applications" -- hope I'm thinking of the right one) even contained
a compiler listing.

Moreover, Lisp can be very small.

>(BTW, LISP 1.5 Programmer's Manual is incredibly interesting reading.  my
>heartfelt thanks go to the nameless librarian at the University of Oslo who
>in 1975 secured a copy of this seminal 1962 paper.)

BTW, Mccarthy's 1961 CACM paper on Lisp is available on-line.
See http://www-formal.stanford.edu/jmc/

-- jeff

From: Cyber Surfer
Subject: Re: Myths and the Encyclopaedia Britannica
Date: 
Message-ID: <814044201snz@wildcard.demon.co.uk>
In article <··········@cogsci.ed.ac.uk>
           ····@cogsci.ed.ac.uk "Jeff Dalton" writes:

> Moreover, Lisp can be very small.

Yep. I remember reading about one that ran in 16K of RAM. That machine
included a Microsoft Basic interpreter in the 12K ROM, so I'd say that
the Lisp in question was possibly even smaller, and yet it was powerful
enough to do some symbolic math. The first (and for all I know only)
C compiler for that machine required a further 32K of RAM to be added.

How small does a Lisp have to be before it can be called "small"? One
third of the memory needed for a C compiler for the same machine sounds
pretty good to me. How do the requirements of modern Lisp and C systems
compare? Oops, I hope this doesn't start another "C vs Lisp" thread...

Once upon a time, 16K of RAM was enough for a word processor. These days,
you need more like 8 MB of RAM. Actually, you can still get by with 1 MB
of RAM, but only if you're happy with an OS like DOS. I find _that_ more
significant. If you demand more from an OS, like a GUI, that'll probably
push your memory size up far more than the choice of language.
-- 
<URL:http://www.demon.co.uk/community/index.html>
<URL:http://www.enrapture.com/cybes/namaste.html>
Current favourite word: hypersonic. As used by Fluffy.
"You can never browse enough."
From: Henry Baker
Subject: Re: Myths and the Encyclopaedia Britannica
Date: 
Message-ID: <hbaker-1910951007400001@10.0.2.15>
In article <············@wildcard.demon.co.uk>,
············@wildcard.demon.co.uk wrote:

> In article <··········@cogsci.ed.ac.uk>
>            ····@cogsci.ed.ac.uk "Jeff Dalton" writes:
> 
> > Moreover, Lisp can be very small.
> 
> Yep. I remember reading about one that ran in 16K of RAM. That machine
> included a Microsoft Basic interpreter in the 12K ROM, so I'd say that
> the Lisp in question was possibly even smaller, and yet it was powerful
> enough to do some symbolic math. The first (and for all I know only)
> C compiler for that machine required a further 32K of RAM to be added.

Early Autolisp, as used in AutoCAD, was a version of xlisp that runs in very
little space -- 32K bytes, I think.  The newer versions have much larger
pointers, which now allow megabytes of list structure.

-- 
www/ftp directory:
ftp://ftp.netcom.com/pub/hb/hbaker/home.html
From: J W Dalton
Subject: Re: Myths and the Encyclopaedia Britannica
Date: 
Message-ID: <46gpr3$di7@scotsman.ed.ac.uk>
Cyber Surfer <············@wildcard.demon.co.uk> writes:

>In article <··········@cogsci.ed.ac.uk>
>           ····@cogsci.ed.ac.uk "Jeff Dalton" writes:

>> Moreover, Lisp can be very small.

>Yep. I remember reading about one that ran in 16K of RAM. That machine
>included a Microsoft Basic interpreter in the 12K ROM, so I'd say that
>the Lisp in question was possibly even smaller, and yet it was powerful
>enough to do some symbolic math. [...]

For a number of years, I used a Lisp that could handle undergraduate
course work in 16 K of 36-bit words.  It's possible that the compiler
needed 24 K rather than 16, but I don't think so.

There have also been Lisps on 16-bit machines, Lisps written in
Basic, and so on.

>Once upon a time, 16K of RAM was enough for a word processor. These days,
>you need more like 8 MB of RAM. Actually, you can still get by with 1 MB
>of RAM, but only if you're happy with an OS like DOS. [...]

I've written a couple of simple Lisps in Basic so that I could play
around on some machine where that's what I had to use.  For some
reason, it took a few pages, around 5 I think.  When I later tried
writing a minimal Lisp in Pascal, it took about 30 pages.

The Pascal Lisp did more than the Basic ones, but not all that
much more.  I'm not sure what accounts for the difference.

-- jeff
From: Cyber Surfer
Subject: Re: Myths and the Encyclopaedia Britannica
Date: 
Message-ID: <814538837snz@wildcard.demon.co.uk>
In article <··········@scotsman.ed.ac.uk>
           ····@festival.ed.ac.uk "J W Dalton" writes:

> The Pascal Lisp did more than the Basic ones, but not all that
> much more.  I'm not sure what accounts for the difference.

How did you handle the Lisp heap, in Basic? Did you use arrays? If so,
then the declarations for the "types" would be minimal. On the other
hand, if you could define your own data types in Basic, as you can in
Pascal, then that wouldn't help account for the difference.

My first Lisp interpreter was writtin in about 3000 lines of 68K
assembly language, and was, I think, no more than 12K of native code.
It ran in less than 68K of RAM. My 2nd interpeter was written in
10,000 lines of C, and the binary was more than 100K, for a 68K CPU.
It required several hundred K of RAM for the heap, and used 100K
just for system objects.

Of course, the 1st interpreter was a very minimal Lisp that didn't
even include support for strings - only symbols, characters, numbers,
and lists. I think functions were just sexprs bound to a symbol,
in a special table. My 2nd interpreter was a subset of CL, roughly
similar to XLISP in terms of the size of the subset.

I guess that tells us more about the significance of the dialect,
and my limited skills as a Lisp implementor. In the first case, I was
very green, but in the 2nd case, I had a much better idea of what
I was doing. Techniques and dialects can vary considerably!
-- 
<URL:http://www.demon.co.uk/community/index.html>
<URL:http://www.enrapture.com/cybes/namaste.html>
Current favourite word: hypersonic. As used by Fluffy.
"You can never browse enough."
From: Tim Bradshaw
Subject: SMall Lisps (was Re: Myths and the Encyclopaedia Britannica)
Date: 
Message-ID: <TFB.95Oct26165800@scarp.ed.ac.uk>
* Jeff Dalton wrote:

> BTW, there was a great, very small, lists-are-strings Lisp 
> submitted to one of the obfuscated C contests a while back.
> Maybe I can find it...

I have a lisp in awk somewhere, although I think it was buggy. It was
pretty small.

--tim
From: Al Slater
Subject: Re: SMall Lisps (was Re: Myths and the Encyclopaedia Britannica)
Date: 
Message-ID: <DH3My6.Bo8@bri.hp.com>
Tim Bradshaw (···@ed.ac.uk) wrote:
: * Jeff Dalton wrote:

: > BTW, there was a great, very small, lists-are-strings Lisp 
: > submitted to one of the obfuscated C contests a while back.
: > Maybe I can find it...

: I have a lisp in awk somewhere, although I think it was buggy. It was
: pretty small.

Hmm, theres definitely a Scheme in Perl lurking on the perl archive somewhere.
Runs to afaik about 2 x 40k shar files. Ugh.

cheers,
al