Originally Posted by
bsieker
It is far better (and provably so) to write in a well-specified (i. e. not C) language, prove the source code correct (for which scalable and practical techniques exist today), or define and prove correct a finite state machine and have code generated from it.
I doubt that they used C or C++, but given appropriate coding standards, I do not have problems with either. In fact, a major issue with keeping the code in alignment with an understandable design is in what kind of awkward and extraneous semantics the programmers needs to go through to getting the code to do what they want. Languages like C# are advertised as "safer" because they prevent certain types of errors - like memory management. But they add a major layer of code that is unrelated to the final functionality. That makes the really important parts of the code diffused and harder to review.
When I say "appropriate coding standards", the issue is reviewability. So using the C++ support for object oriented coding is good. Using polymorphism or the "virtual" keyword is avoidable - and for an application like this, should be avoided.