Quiz submission record for quiz2-2-2 at Thu Jul 1 00:48:32 2004: Your Answer for Question 1: This is a technique that works with leaf procedures, as it does not really apply with nested procedures. The convention is that the 8 saved registers should be preserved on procedure calls (that is if they are used in the procedure, they should be saved in the stack so that they can be restored to their original value when they exit the stack) while the 10 temporary registers do not have to be preserved (it is assumed that their data is not needed upon exiting, so their data does not need to be stored). Your Answer for Question 2: The only thing that I could think of is the testing of base cases. Since that is the only way that a recursize procedure can terminate, it seems logical that if the program is no longer recursive, there is no longer a base case. Although there are still conditions that should cause a program to terminate early, it is not quite the same. With that, there is also another step that might be skipped in special cases: since the program is no longer calling itself, it may not have to save the variables within the function on the stack; however, it still doese if it calls another function, so this is not necessarily a difference. The error in Sheme that is prevented here is infinite recursion and using up all of the stack. Your Answer for Question 3: Basically, all of the information is pretty understandable. Some of the features of MIPS I thought were pretty interesting, especially the method of saving variables on the stack. Your unique submission ID is quiz2-2-2-cs61c-el-1088668112-997.