NASAはミッションクリティカルなフライトソフトウェアをCで書いています。 そしてルールは本当に狂っています。 > 再帰はありません。絶対に。 > すべてのループは証明可能な上限を持つ必要があります。 > 初期化後に動的なメモリ割り当てはありません。 > 1機能あたり最大~60行。 > 関数ごとに最低2つのアサーションが必要です。 > すべての返還値はチェックしなければなりません。 > コンパイラ警告は一切許可されていません。 > 日々の静的分析。そこも警告は全くありません。 > 関数の指針はありません。 > 制限されたポインタの参照解除。 これがNASAやJPLでミッションクリティカルなシステムのコードを書く方法です。