Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!seismo!gatech!bloom-beacon!tdavis
From: tdavis@athena.mit.edu (Timothy L. Davis)
Newsgroups: comp.lang.lisp
Subject: Re: Importance of REPLACA, REPLACD, and - (nf)
Message-ID: <1162@bloom-beacon.MIT.EDU>
Date: Fri, 17-Jul-87 15:10:13 EDT
Article-I.D.: bloom-be.1162
Posted: Fri Jul 17 15:10:13 1987
Date-Received: Sat, 18-Jul-87 15:01:36 EDT
References: <22@citcom.UUCP> <6900008@iaoobelix.UUCP>
Sender: daemon@bloom-beacon.MIT.EDU
Reply-To: tdavis@athena.mit.edu (Timothy L. Davis)
Distribution: world
Organization: MIT & Harvard Medical School
Lines: 25
Keywords: garbage-collection compilers optimization
Summary: Scheme shouldn't need a garbage collector

{}

I think the style & "readability" wins of "writing out the parse tree", which
is really what lisp syntax is all about, could be combined with less esoteric
data structures,  a la C's malloc() and free(), to produce VERY optimized
code. There should be no need for run-time garbage collection.

Does anyone know if it is possible to write a lisp (or SCHEME) 
pre-processor which will eliminate the need for garbage collection by 
inserting (free ..) in the approprate places?  A starting point would be
lexically-scoped Scheme, no side-effects, and no global or fluid bindings.

If that is too hard (or proven impossible), how about a pre-processor to add 
>most< of the needed (free ...) statements, so that the garbage collector need 
not hardly ever be called?  The compiler could even flag unfreeable variables
and let the programmer specify their disposal explicitly.

I know many of the lisp hackers out there may think I don't understand the lisp
philosophy; I do, but let's leave garbage collection to rapid prototyping,
and develop good compilers to automatically transform those prototypes into 
the products (software, parallel-ware, VLSI, etc.) of the future.

Tim Davis                tdavis@athena.mit.edu
60 Wadsworth #19A        ...mit-eddie!mit-athena!tdavis
Cambridge, MA 02142