> There shall be no direct or indirect use of recursive function calls.<p>> [The] absence of recursion prevents runaway code, and helps to secure predictable performance for all tasks.<p>I can see the reasoning here, but wow, banning recursion..
Here's a great video with a bit more background about why you'd want to adopt such a standard.<p><a href="https://www.usenix.org/conference/hotdep12/workshop-program/presentation/holzmann" rel="nofollow">https://www.usenix.org/conference/hotdep12/workshop-program/...</a>
> The goto statement shall not be used...<p>> ...often results in improved code clarity<p>Um not really, if goto is used _right_ it clarifies code immensely.
>The JPL recommended static analyzers are fast, and produce sparse and accurate messages.<p>I'm interested in what analyzers they may be recommending. I think this is a field that's come a long way since 2009.<p>A lot of these standards could actually be implemented as rules in modern products, which would assist with using them.
It's lovely reading a coding standards document that is 100% focused on code safety, and has zero stylistic argument.<p>These rules are a good reminder for me, too. A lot of them were habit when I was doing C/C++ on game consoles. Using more dynamic scripting languages on machines with more and more memory over the years has helped me forget. But most, if not all, of these rules have valid analogues in any language that can be aspired to.