Memoryallocation Is Required In All Phases of Design. It Typically Consists of Onlytwo Operations: the Allocation of a Specified Amount of Unused Memory and Thefreeing of an Allocated Block. some Systems Reduce This to a Single Operationthat Allocates on Demand and Frees Automatically When the Object Is No Longerused. Special Garbage-Collection Operationsfind the Unused Memory By Counting the Number of References to Each Block[Deutsch and Bobrow].