Previous | Next --- Slide 28 of 66
Back to Lecture Thumbnails

Does single static assignment mean that the variable v1 shouldn't be assigned anything else in other places?

Why is recursion not allowed?


Recursion would allow programs to be written for which the compiler could not bound the region of the graph accessed (read/written) by a particular piece of code (in other words the dependencies would be dynamic, and not known until the loop body was evaluated). As a result the compiler would be unable to perform most of the optimizations described throughout the rest of this section of the lecture.


In this case, the 'no recursive functions' also means functions calling other functions (besides itself) as I am assuming since the compiler would have problems binding the regions of graph accessed by the other functions?


@althalus, I think so, because calling other functions should appear not different from calling itself to the compiler. Also, if it is allowed, we can two similar functions calling each other.