[comp.os.cpm] TRYIT pascal example...again.

ERIK@BROCK1P.BITNET ("Erik L. Seielstad") (07/06/88)

In a recent issue of the cpm digest, I saw the following:
>Recursion program discussed earlier in INFO-CPM Digest - implemented
>for Turbo Pascal.
>The program as originally submitted will not work in *any* correctly
>implemented Pascal, because it allows only one byte for the variable
>"nextchar".   Declaring the variable inside a procedure doesn't mean
>that the variable will have a new space created for it on every call
>to the procedure; it only means that the variable is not global.

    I am forced to disagree.  The definition of Pascal sets up a
stack frame at runtime for each invocation of a subroutine.  This is
the reason ANY recursion is possible in pascal.  The program TRYIT
was a simple example of recursion, and *should* work on all pascal
compilers.  I tried it here on our mainframe, and it worked fine as
written.
    The reasson it does not work on Turbo Pascal, is Borland
allocates static storage for all variables at compile time, unless
the special compiler directive {A+} is used.
    -Erik @ Brock1p
/* the views expressed are brought to you as a public service */
/* by me. (and nobody else but me) */