procedure ProcOne(var p:PBlock); begin if p=nil then begin writeln('jest nil'); exit; end; if PChar(p^)<PChar(@Spaces) then begin writeln('nie przeniesione'); Spaces[1,newPtr]:=p^; p^:=@Spaces[1,newPtr]; p:=@Spaces[1,newPtr]; inc(newPtr); end else begin writeln('przeniesione'); p:=p^; end; end;

procedure Process; var i,j: integer; begin newPtr:=0; for i:=0 to High(roots) do for j:=0 to 1 do ProcOne(roots[i,j]); procPtr:=0; while procPtr<newPtr do begin for j:=0 to 1 do ProcOne(Spaces[1,procPtr,j]); inc(procPtr); end; end;

Semispace Cheney oparł swoją pracę na algorytmie odśmiecania pamięci semispace, który został opublikowany rok wcześniej przez R.R Fenichela i J.C. Yochelsona.

Równoważność do trójkolorowej abstrakcji Pierwszym elementem szarego zbioru jest sam stos. Obiekty referowane na stosie są kopiowane do nowej sterty, która zawiera elementy zbiorów czarnych i szarych.