Garbage Collection: Algorithms for Automatic Dynamic Memory Management