From: Mike
Subject: document detailing lisp implementation?
Date: 
Message-ID: <10lb3fjthsp4o97@corp.supernews.com>
I have some ideas I want to pursue and the first step
is understanding and writing a lisp interpreter. The lisp
interpreter might then evolve into a byte or native compiler
and it might have the equivalent of packages to do sockets,
regexps, etc.

First I need to understand and then to write the interpreter.

I'm not interested in the standard Common Lisp system. I don't
need anything that large. I'm thinking of something that is a
small executable to begin with and through packages it expands
to be what it needs. The executable can be copied from one
machine to the next and still functions in its minimal form
if it's files and packages are not there (/usr/local/mylisp).

I'm more interested in the 'original' primitives of lisp1.5
and then adding the specific words to support my ideas.

Please, some pointers to where I can find this data?

Mike

From: Alan Crowe
Subject: Re: document detailing lisp implementation?
Date: 
Message-ID: <86y8iy1e6n.fsf@cawtech.freeserve.co.uk>
Mike inquired:
> First I need to understand and then to write the interpreter.
> 
> I'm not interested in the standard Common Lisp system. I don't
> need anything that large. I'm thinking of something that is a
> small executable to begin with and through packages it expands
> to be what it needs. The executable can be copied from one
> machine to the next and still functions in its minimal form
> if it's files and packages are not there (/usr/local/mylisp).

AI Memo No. 453 The Art of the Interpreter is highly
regarded and can be downloaded from

ftp://publications.ai.mit.edu/ai-publications/0-499/AIM-453.ps

I've just checked this and it works, but my copy is a pdf,
and is 4MBytes instead of 5. I wonder where I found it?

Anyway, the Memo looks excellent, but I already possessed a
copy of the book, the Structure and Interpretation of
Computer Programs (SICP), so I've been reading that instead,
on the theory that the slower pace of a text book, as
compared to a research paper, better suits my needs.

SICP ends on page 610 with exercise 5.52

     As a counterpoint to exercise 5.51, modify the compiler
     so that it compiles Scheme procedures into sequences of
     C instructions. Compile the metacirculation evaluator
     of section 4.1 to produce a Scheme interpreter written
     in C

which makes it sound like it is just what you want.

Alan Crowe
Edinburgh
Scotland
From: Pascal Bourguignon
Subject: Re: document detailing lisp implementation?
Date: 
Message-ID: <873c16z6h4.fsf@thalassa.informatimago.com>
Mike <·····@mikee.ath.cx> writes:

> I have some ideas I want to pursue and the first step
> is understanding and writing a lisp interpreter. The lisp
> interpreter might then evolve into a byte or native compiler
> and it might have the equivalent of packages to do sockets,
> regexps, etc.
> 
> First I need to understand and then to write the interpreter.
> 
> I'm not interested in the standard Common Lisp system. I don't
> need anything that large. I'm thinking of something that is a
> small executable to begin with and through packages it expands
> to be what it needs. The executable can be copied from one
> machine to the next and still functions in its minimal form
> if it's files and packages are not there (/usr/local/mylisp).
> 
> I'm more interested in the 'original' primitives of lisp1.5
> and then adding the specific words to support my ideas.
> 
> Please, some pointers to where I can find this data?

Have a look at lisp500 and SICP.

http://www.modeemi.fi/~chery/lisp500/
http://mitpress.mit.edu/sicp/

Lisp500 is perhaps too minimalist.  I'd use gcl or ecls, and write my
interpreter in a subset of Common-Lisp. If I was not satisfied by the
size of the generated program  I would write a C generator for subset
of Common-Lisp. http://ecls.sourceforge.net/ecldev/devel_5.html#SEC36
like it's done in Squeak. http://www.squeak.org/


-- 
__Pascal Bourguignon__                     http://www.informatimago.com/

Our enemies are innovative and resourceful, and so are we. They never
stop thinking about new ways to harm our country and our people, and
neither do we.
From: Hartmann Schaffer
Subject: Re: document detailing lisp implementation?
Date: 
Message-ID: <WXn5d.1177$Cb5.7892@newscontent-01.sprint.ca>
Mike wrote:
> ...
> First I need to understand and then to write the interpreter.

check out "Lisp In Small Pieces" ny C/ Queinnec(sp?).  i think the 
english version was published by cambridge university press

> ...

hs
From: Mike
Subject: Re: document detailing lisp implementation?
Date: 
Message-ID: <10lelrc999icn2a@corp.supernews.com>
In article <···················@newscontent-01.sprint.ca>, Hartmann Schaffer wrote:
> Mike wrote:
>> ...
>> First I need to understand and then to write the interpreter.
> 
> check out "Lisp In Small Pieces" ny C/ Queinnec(sp?).  i think the 
> english version was published by cambridge university press

I have that book, but not SICP. I need to write a lisp
interpreter, then add the assoc pieces, etc.

Mike
From: mikel
Subject: Re: document detailing lisp implementation?
Date: 
Message-ID: <I1M5d.3536$nj.34@newssvr13.news.prodigy.com>
Mike wrote:
> In article <···················@newscontent-01.sprint.ca>, Hartmann Schaffer wrote:
> 
>>Mike wrote:
>>
>>>...
>>>First I need to understand and then to write the interpreter.
>>
>>check out "Lisp In Small Pieces" ny C/ Queinnec(sp?).  i think the 
>>english version was published by cambridge university press
> 
> 
> I have that book, but not SICP. I need to write a lisp
> interpreter, then add the assoc pieces, etc.

I've written interpreters and compilers using the techniques from both, 
and I'd say you won't go far wrong with either. Another source of advice 
and examples is the interpreter and compiler implementations from 
Norvig's Paradigms of Artificial Intelligence Programming.