1.1 Explicit deallocation1.2 Automatic dynamic memory management1.3 Comparing garbage collection algorithmsSafetyThroughputCompleteness and promptnessPause timeSpace overheadOptimisations for specific languagesScalability and portability1.4 A performance disadvantage?1.5 Experimental methodology1.6 Terminology and notationThe heapThe mutator and the collectorThe mutator rootsReferences, fields and addressesLiveness, correctness and reachabilityPseudo-codeThe allocatorMutator read and write operationsAtomic operationsSets, multisets, sequences and tuples