Path: csiph.com!eternal-september.org!feeder.eternal-september.org!nntp.eternal-september.org!.POSTED!not-for-mail
From: Tim Rentsch
Newsgroups: comp.lang.c
Subject: Re: MISRA C
Date: Tue, 06 Oct 2026 22:13:04 -0700
Organization: A noiseless patient Spider
Lines: 25
Message-ID: <86wlruks9r.fsf@linuxsc.com>
References: <11822bi$39m36$1@dont-email.me> <119473t$33192$1@dont-email.me> <119493r$33m1o$1@dont-email.me> <1194c7i$34ldb$2@dont-email.me> <1194mqo$37fnf$3@dont-email.me> <1195gqh$23uj$1@news.muc.de> <1195qr8$2aem2$1@dont-email.me> <1195u2r$16ah$1@news.muc.de> <119612d$2aem2$2@dont-email.me> <11962u0$16ah$2@news.muc.de> <1196fb8$3rdj2$1@kst.eternal-september.org> <1196l3v$1b0$1@news.muc.de> <1196nn7$3upk9$1@kst.eternal-september.org> <1197piq$8k7p$1@dont-email.me> <87o6da9yyi.fsf@bsb.me.uk> <119vp2u$3rfpv$1@paganini.bofh.team>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Date: Wed, 07 Oct 2026 05:13:07 +0000 (UTC)
Injection-Info: dont-email.me; logging-data="2706486"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/kEkNbbBERBSXGrueEnFbq0KTMOxIhTRk="; posting-host="f116a0ff36505fb6c1fca8f439768e04"
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:W7cHCVp2Ca4xQzc0dyF4xnloGBk= sha1:MAicG1iIMRCUA4U1grS1ArUNmyQ= sha256:QXUNCJ/gTQjpDMfum2tI63GAIylALYW20GCRw0NSlQA= sha1:NDryZgQt1QRBqwiOdQcG/+b5vU4= sha256:vPVbuzfC7wHZTPbCXDKbTTLsujTZHHujy69I427x3pk=
Xref: csiph.com comp.lang.c:402778
antispam@fricas.org (Waldek Hebisch) writes:
> AFAIK when you allocate memory at the start some functional folks
> will still call it iterative. After all you can just use one
> vector valued variables plus possibly a fixed number of temporaries.
> Only when you really do allocation on the stack and access the
> allocated values in stack-like manner it is considerd trurly
> recursive. AFAICS the following has recursion depth of m and
> uses fixed number of variables per recursion level:
>
> bigint A(bigint m, bigint n) {
> if (m == 0) {
> return n + 1;
> }
> bigint res = 1;
> for(bigint l = 0; l <= n; l++) {
> tmp = A(m - 1, tmp);
> }
> return res;
> }
>
> where bigint is appropriate type for unbounded integers.
Thank you for this definition, which is a great way of
explaining Ben's point.