Artifact 31b8c2e8502900b9367042d333e34517c4db0dc7ac099825d8b173064f5940db:
- Executable file
r37/lisp/csl/jlisp/STRATEGY
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 772) [annotate] [blame] [check-ins using] [more...]
Strategy for preserving a heap image...
(a)
S = HashTable() // "stack" (maybe have one for cons, one for symbol
// and one for vectors?)
V = HashTable() // "visited"
V2 = HashTable() // "visited twice"
for each root, insert item into S, insert item into V
while S is non-empty do
p = an item removed from S
for each x referred to be p
[note: referred to may be modified for Cons cells to
iterate down lists here]
if x is in V then
if x is not in V2 then insert x into V2
else
insert x into S and V
[each item stored in V2 is <item, number> where the number is an index]