Global Register Allocation-Part 3 and Implementing Object-Oriented Languages