
Встроенные системы, управляющие авиацией или космическими аппаратами, требуют не просто быстрой, а безупречно предсказуемой работы. Однако прогресс в области компиляторов — программ, переводящих код в машинные команды, — создает парадоксальную угрозу. Стремясь ускорить выполнение задач, современные оптимизаторы перестраивают логику программы, делая ее поведение менее очевидным для проверяющих органов.
Специалисты факультета вычислительной математики и кибернетики (ВМК) МГУ изучили эту проблему на стыке программирования и нормативных требований, включая авиационный стандарт DO-178C и отечественный ГОСТ Р 71206−2024. Выяснилось, что агрессивная оптимизация бинарного кода может нивелировать усилия разработчиков по обеспечению надежности. Программа, прошедшая все тесты, после «улучшения» компилятором иногда ведет себя иначе, чем задумывалось изначально.

Инженеры МГУ предложили методику внедрения так называемого безопасного компилятора на базе Clang. Суть подхода — не запретить оптимизацию полностью, а научить ее работать в жестких рамках, задаваемых архитектурой ARINC 653 (стандарт для авиационной электроники). Исследователи провели сравнительный анализ: оценили, как часто обычный компилятор и его «безопасная» модификация создают потенциальные уязвимости.
Результатом работы стала методика, позволяющая интегрировать защищенный инструмент в операционные системы реального времени.
Предложенная методика позволяет адаптировать технологии безопасной компиляции для использования в бортовых системах и учитывать требования нормативных документов.
Это шаг к тому, чтобы цифровой мозг самолета действовал строго по утвержденному сценарию, без «сюрпризов» от алгоритмов самооптимизации.
Ранее химики МГУ нашли замену токсичному свинцу в солнечных батареях.

