Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If you're being that pedantic, C itself is not Turing-complete in the first place: pointers have finite size, which means that C can address only a bounded amount of memory, so it is a finite state machine (just with an extremely large number of states).


I don't think it's about that. Technically, everything is finite. But placing limits on the loops and restricting memory allocation bounds the complexity. It probably limits everything to P-time.


You can easily have bounded loops and superexponential runtime.


Without dynamic memory allocation? I think you'd need at least O(n) memory to store enough state to go exponential. But it's some time I did complexity theory; I could be wrong.


Unless your input is read-only you should always have O(n) memory available.


When everything is finite and memory is always limited, what are you meaningfully saying about the possible behaviors of software here?


Bounding the complexity is desirable for a system that should never fail due to software errors.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: