La NASA escribe software de vuelo crítico para la misión en C. Y las reglas son absolutamente LOCOS. > No hay recursión. Nunca. > Todo bucle debe tener un límite superior demostrable. > No hay asignación dinámica de memoria tras la inicialización. > máximo ~60 líneas por función. > Mínimo 2 aserciones por función. > Cada valor de retorno debe comprobarse. > No se permiten advertencias del compilador. > Análisis estático diario. Tampoco hay ninguna advertencia. > No hay punteros de función. > Desreferenciación de punteros restringidos. Así es como escriben código en la NASA / JPL para sistemas críticos para la misión.