>> (2) C, as well as many other PLs, has always had a problem in
>> that there is no clean, standard mechanism to handle the
>> situation in which a function invocation finds insufficient
>> stack remaining to complete the linkage (instance allocation).
>> This is especially problematic in memory-constrained apps such
>> as many embedded systems, when the algorithm is sufficiently
>> dynamic that it is impossible to predict the maximum nesting
>> depth.  At least with malloc failure, the program is informed
>> when there is a problem and can take measures to cope with it.
>> 
>> I hope people working on run-time environments will find ways
>> to do better.

FORTRAN never had this problem.  Its memory needs were fixed at
compile time.  Neither did COBOL.  But then again, you couldn't write
recursive programs either; all locals were static storage class.  The
trade off to get recursion has been worth it and doesn't cause
problems actual use.  It wasn't a problem with Algol, PL/1, Pascal,
and C programs on very small machines.  Why should it be a problem
with today's memory sizes?

Brantley

Reply via email to