Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #402390
| From | Janis Papanagnou <janis_papanagnou+ng@hotmail.com> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: MISRA C |
| Date | 2026-09-25 16:39 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <119612d$2aem2$2@dont-email.me> (permalink) |
| References | (11 earlier) <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> |
On 2026-09-25 15:48, Alan Mackenzie wrote: > Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote: >> On 2026-09-25 12:01, Alan Mackenzie wrote: >>> In comp.theory Dude <punditster@gmail.com> wrote: > >>>> By banning unbounded loops and wild recursion, you ensure that every >>>> valid program in the language is guaranteed to finish > >>> No. Besides, unbounded loops (such as event loops) are necessary. >>> Recursion is, too, if you want to program things like tree structures. > >> Note that recursion isn't "necessary" to program [operations on] >> tree structures. It just makes the algorithms appear simpler and >> clearer, thus recursion is a sensible technique to implement >> application cases like those. > > Some things you need to do on trees need either explicit recursion, or > "simulated recursion", where static arrays are used to hold intermediate > values of variables. This approach limits the depth of a tree, possibly > more so than the size of the stack when using explicit recursion. We > might just be arguing about the meaning of words here. The difference is an explicitly programmed stack vs. an implicitly used stack. Any practical size limitations apply to both, recursion and iterative replacements. (I don't know whether we are arguing about meaning of words; I was just pointing out the non-"necessity", i.e. on the word you used.) > >> WRT Dude's statement it should be mentioned that a recursive algorithm >> can be transformed to an iterative one, so if iterative algorithms >> would have the property to be _decidable_ to finish - actually, they >> are not - we could also say the same for a recursive one. > > Recursion can often be programmed iteratively in practice. In theory, > there are recursively defined functions which grow too quickly with > increasing argument to be definable (or programmable) without recursion. Have you functions like fib() in mind? - Despite they are cascaded recursion you can create iterative ones. - But it's simpler; just recognize that a recursion is using an implicit stack, so you can write it in iterative form with an explicit stack. Even an extreme function like Ackermann (which is more demanding) is not exempt to that principle. - Or do you disagree? (Then please explain - best with an example you may have in mind.) Janis
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
MISRA C (was: buckle-up ....) Alan Mackenzie <acm@muc.de> - 2026-09-25 10:01 +0000
Re: MISRA C Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-09-25 14:52 +0200
Re: MISRA C Alan Mackenzie <acm@muc.de> - 2026-09-25 13:48 +0000
Re: MISRA C Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-09-25 16:39 +0200
Re: MISRA C Alan Mackenzie <acm@muc.de> - 2026-09-25 15:10 +0000
Re: MISRA C bart <bc@freeuk.com> - 2026-09-25 16:57 +0100
Re: MISRA C Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-09-25 11:42 -0700
Re: MISRA C Alan Mackenzie <acm@muc.de> - 2026-09-25 20:21 +0000
Re: MISRA C Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-09-25 14:05 -0700
Re: MISRA C David Brown <david.brown@hesbynett.no> - 2026-09-26 08:43 +0200
Re: MISRA C Alan Mackenzie <acm@muc.de> - 2026-09-26 17:55 +0000
Re: MISRA C Ben Bacarisse <ben@bsb.me.uk> - 2026-10-03 23:55 +0100
Re: MISRA C David Brown <david.brown@hesbynett.no> - 2026-10-04 16:10 +0200
Re: MISRA C Ben Bacarisse <ben@bsb.me.uk> - 2026-10-05 01:22 +0100
Re: MISRA C David Brown <david.brown@hesbynett.no> - 2026-10-05 07:59 +0200
Re: MISRA C Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-05 01:23 -0700
Re: MISRA C Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-05 01:24 -0700
Re: MISRA C antispam@fricas.org (Waldek Hebisch) - 2026-10-05 09:02 +0000
Re: MISRA C Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-05 12:07 +0200
Re: MISRA C Ben Bacarisse <ben@bsb.me.uk> - 2026-10-05 15:29 +0100
Re: MISRA C antispam@fricas.org (Waldek Hebisch) - 2026-10-05 20:29 +0000
Re: MISRA C Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-06 22:13 -0700
Re: MISRA C Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-06 22:14 -0700
Re: MISRA C Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-09-27 10:52 -0700
Re: MISRA C Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-09-28 13:08 +0200
Re: MISRA C bart <bc@freeuk.com> - 2026-09-28 13:07 +0100
Re: MISRA C David Brown <david.brown@hesbynett.no> - 2026-09-28 14:08 +0200
Re: MISRA C Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-09-28 14:28 +0200
Re: MISRA C Alan Mackenzie <acm@muc.de> - 2026-09-28 12:17 +0000
Re: MISRA C Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-09-28 14:40 +0200
Re: MISRA C "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-09-30 10:21 -0700
Re: MISRA C Alan Mackenzie <acm@muc.de> - 2026-09-30 19:57 +0000
Re: MISRA C "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-09-30 13:09 -0700
Re: MISRA C David Brown <david.brown@hesbynett.no> - 2026-10-01 08:47 +0200
Re: MISRA C "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-10-01 15:18 -0700
Re: MISRA C Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-09-27 04:58 +0800
Re: MISRA C David Brown <david.brown@hesbynett.no> - 2026-09-25 17:02 +0200
Re: MISRA C "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-09-26 15:37 -0700
csiph-web