Re:Hey, C Is a Functional Language Too
by charliesome on Friday November 02, 2012 @10:08AM
(#4732651)
Any physical machine cannot be Turing complete because it has a finite amount of RAM.
Re:Hey, C Is a Functional Language Too
by fauigerzigerk on Friday November 02, 2012 @10:18AM
(#4732681)
Sure, but we're talking about whether or not this particular style of C can be Turing complete and I'm not sure it is, even on a machine with an infinite amout of RAM.
A machine with an infinite amount of RAM can have an infinite stack size.
Re:Hey, C Is a Functional Language Too
by fauigerzigerk on Friday November 02, 2012 @10:35AM
(#4732767)
C arrays that live on the stack have to be created with a constant size (at least before C99). It's a limitation of the language regardless of any machine or stack size.
If we're going to grant that a machine can have infinite ram, surely we can grant that a spec of C can have infinite stack allocated arrays... :)
That's already been granted in this argument. The question now is, given an infinite stack, is this programming style Turing-complete?
The only way I see is to allocate (almost) the entire machine memory to the stack, create one giant array in that chunk of memory and then put all lists in that single array. That's tantamount to reimplementing malloc on the stack.