10.07.2015 Views

LISP I Programmer's Manual - Software Preservation Group

LISP I Programmer's Manual - Software Preservation Group

LISP I Programmer's Manual - Software Preservation Group

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

the user to program the return of registers to the free-storagelist.This return takes place automatically whenever the free-storage list has been exhausted during the running of a <strong>LISP</strong> Iprogram. The program which retrieves the storage is a SAPcodedprogram called the garbage collector.Any piece of list structure that is accessible to programsin the machine is considered an active list and is not touchedby the garbage collector. The active lists are accessible tothe program through certain fixed sets of base registers suchas the registers in the list of atomic symbols, the registerswhich contain partial results of the <strong>LISP</strong> computation in progress,etc. The list structures involved may be arbitrarilylong but each register which is active must be connected to abase register through a car-cdr chain of registers. Any registerthat cannot be so reached is not accessib1,e to any programand is non-active; therefore its contents are no longer ofinterest .'The non-active, i.e. available, registers are reclaimedfor the free-storage list by the garbage collector as follows.First every active register which can be reached through acar-cdr chain is marked by setting its sign negative.* Whenevera negative register is reached in a chain during thisprocess, the garbage collector knows that the rest of the listinvolving that register has already been marked. Then the*Special provision is made for the rare case when the sign ofa register is already negative.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!