We formalize the outlined hierarchical garbage collector for HP.
The collector we formalize is a semispace copying collector, though
other garbage collection algorithms could be used as well. Since the
structure of a HP program already contains hierarchical tasks and
heaps, formalizing the collection algorithm requires few changes to
the semantics. In fact, we simply need to introduce a new form for
tasks to represent a task which is locked for collection, and several
dynamic rules to perform garbage collection on tasks.
be collected in parallel. The collector HGC is thus able to perform
garbage collection without incurring additional synchronization
between the mutator and the collector. The main result of this
subsection is the proof of correctness for HGC.