Hacker News new | ask | show | jobs
by mistercow 4964 days ago
Even that is not infinite because there is a limit to how much memory you can address. You don't have to bring physical realities into it.
2 comments

How is a "limit to how much memory [one] can address" not a physical, rather than logical, constraint?

Really, the crux of the matter is that you can have a function call itself an unbounded number of times in C (i.e. unbounded recursion). That you eventually run into a stack overflow is a limitation of the machine, not of the language; the definition of C does not prescribe a maximum number of recursive calls. This, together with conditionals, makes the C language Turing-complete.

The system will just spontaneously update to the next power-of-two bits when address space gets short. Problem solved.
That would break binary compatibility with all existing programs, though. So I guess the claim should be that it's impossible to implement a practically useful system without a de-facto recursion depth limit.