Talk:Find limit of recursion

From Rosetta Code

I suspect that the recursion limit depends often on the compiler (for compiled languages), operating system (stack assigned to a process could be tuned, I suppose, and may change from O.S. to O.S.), implementation of an "interpreter" (when more than one exists) and/or on how the recursive function/method/whatever is written. E.g. C version passes an argument to keep track of the depth, Sather uses a class attribute ... Different ways change the limit (it's not the case of the C version in my tests since clearly gcc optimizes using a register to pass the only argument) ...

Current GNU Sather compiler uses C as intermediate language; so the more limited recursion depth could depends on the fact that sather's "functions" translated in C have to keep something like a "context", being part of a class (more real arguments), or/and simply they use more stack because of needed variables that appear in the translated code... in fact it looks this way:

<lang c>void MAIN_recurse(MAIN self) {

INT L1;
INT L21_;
OUT L3;
dSTR L4;
OB L5;
OUT L6;
extern STR name6;
L1 = ATTR(self,r);
L21_=INTPLUS(L1,1); 
SATTR(self,r,L21_);
L3 = OUT_createrOUT(((OUT) NULL));
L5=ZALLOC_LEAF(sizeof(struct INT_boxed_struct));
if (L5==NULL) FATAL("Unable to allocate more memory");
memset(L5,0,sizeof(struct INT_boxed_struct));
((OB)L5)->header.tag=INT_tag;
L4 = (dSTR)((INT_boxed) L5);
((INT_boxed) L4)->immutable_part = ATTR(self,r);
L6 = OUT_pl930378279(L3, L4);
OUT_plus_STR(L6, ((STR) &name6));
MAIN_recurse(self);

}</lang>

The point is... depending the recursion max depth on too many parameters, shouldn't we specify the environment (O.S., compiler, interpreter) running the examples? Otherwise a novice user could think that the shown limit is hardcoded somewhere in the nature of the language (that could be, maybe, for some languages, and should be noted!) —ShinTakezou 14:46, 20 April 2010 (UTC)

The name of the game

Noticed now... the name is Find Limit of Recursion, while I've read proposal for naming like "Find limit of recursion"... I suppose this page should be moved (I think slowly and act too fastly, thus let someone else do it properly)... —ShinTakezou 15:11, 20 April 2010 (UTC)