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