It might not be "perfect code", but I find it fascinating what certain institutions do to create bug-free and easily testable code, institutions which are involved in work where small errors can quite literally ruin billions of dollars of investment.
For example Coding Standards from NASA's Jet Propulsion Laboratory (JPL) for C[1] and Java[2]
This will also give you an idea of just how tedious it is to do so
I am not even sure if enforcing those strict standards leaves a Turing-complete language
> important general differences from the JPL institutional C coding standard for flight software references (JPL-C-STD) are: (1) the Java standard allows
dynamic memory allocation (object creation) after initialization, (2) the Java standard allows recursion, and (3) does not require loop bounds to be statically
verifiable. Apart from these differences most other differences are due to the different nature of the two languages.
That said, the standard in question is explicitly only intended for ground-based systems.
How can it not be Turing complete? You have the option of doing those things, even if by accident but you avoid it as much as you can. Turing complete does not mean it runs forever or has a mind of its own. I'm not necessarily trying to be combative and am not the most well versed in computational theory, but this statement seems off.
For example Coding Standards from NASA's Jet Propulsion Laboratory (JPL) for C[1] and Java[2]
This will also give you an idea of just how tedious it is to do so
I am not even sure if enforcing those strict standards leaves a Turing-complete language
[1] http://lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf
[2] http://lars-lab.jpl.nasa.gov/JPL_Coding_Standard_Java.pdf