From kragen@dnaco.net Fri Aug 14 12:11:20 1998 Date: Fri, 14 Aug 1998 12:11:19 -0400 (EDT) From: Kragen To: Kragen Subject: Re: garbage collection In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Keywords: X-UID: 1259 Status: O X-Status: On Fri, 14 Aug 1998, Kragen wrote: > Henry Baker's home page is at ftp://ftp.netcom.com/pub/hb/hbaker. > > NoMotionGC.html there is about a non-moving soft-real-time incremental > garbage collector from 1991. > > Several papers there are about "linear logic", in which accessing a > value destroys it, and no objects are multiply referenced. This gives > automatic storage management without garbage collection. ForthStack.html argues that linear logic is a more natural fit for computer architectures than any other mathematical model: "Functional programming languages have gone the furthest with the mathematical expression metaphor, and have been extended to cover many programming tasts. Unfortunately, functional programs have been considered "inefficient". . . Fortran, Ada, and C are the bastard progeny of the coupling between a pseudo-mathematical notation and a von Neumann-style RAM. There has never been a simple or particularly effective mathematical model to aid in the deep understanding or compiling of programs in these languages. The real Achilles' heel for these languages, however, is their innate ability to deal with parallel or distributed computation." It's an entertaining jeremiad against "mathematical mysticism". Linear logic automatically solves the problem of concurrency, because multiple parts of the program can't try to access the same object at the same time. He suggests that the inefficiency of moving big objects around on a stack can be circumvented by reference-counting them instead. He also suggests that Forth stack manipulations are the equivalent of register loads, stores and transfers in RISC processors, and maybe are more efficient. Kragen