Answer from cs61c-ck (Allen Lee 16583554) for Question 2 If we create a programming language that cannot use recursion, I guess we have a programming language that reads code, more or less, from top to bottom, once. Because languages like MIPS can simulate recursion with merely with labels, so our language would not even have labels. We can only have leaf functions because that would introduce mutual recursion, which is also forbidden. We can eliminate storing and adjusting return addresses associated with recursion, I guess. We would never encounter infinite recursion/looping. We never have to check for base cases - we have to know exactly what we're doing.