From kragen@dnaco.net Fri Aug 14 12:11:20 1998
Date: Fri, 14 Aug 1998 12:11:19 -0400 (EDT)
From: Kragen <kragen@dnaco.net>
To: Kragen <kragen@pobox.com>
Subject: Re: garbage collection
In-Reply-To: <Pine.SUN.3.96.980814114132.21889d-100000@picard.dnaco.net>
Message-ID: <Pine.SUN.3.96.980814115816.21889g-100000@picard.dnaco.net>
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


