NASA пишет критически важное программное обеспечение для полетов на C. И правила абсолютно СУПЕР. > Никакой рекурсии. Никогда. > Каждый цикл должен иметь доказуемую верхнюю границу. > Никакое динамическое выделение памяти после инициализации. > Максимум ~60 строк на функцию. > Минимум 2 утверждения на функцию. > Каждое возвращаемое значение должно проверяться. > Никаких предупреждений компилятора не допускается. > Ежедневный статический анализ. Никаких предупреждений и там. > Никаких указателей на функции. > Ограниченное разыменование указателей. Вот как они пишут код в NASA / JPL для критически важных систем.