Перейти к содержимому
Экосистема AI Vibe

Новости

40 000 строк Fortran 77 в C++: агенты Mistral и стенд совпадения

Редакция 9 сентября 2026 г.

Дерево вызовов Fortran, миграция модуля в C++ и проверка численного совпадения на каждом шаге.

Европейский энергооператор с помощью Mistral перенёс 40 000 строк Fortran 77 в C++ — симулятор физики резервуаров без тестов и централизованной документации. За первый спринт закрыли эту часть из монолита в 300 000 строк, пока Fortran-база ещё запускалась.

Автоперевод синтаксиса — полдела. В Fortran 77 состояние живёт в COMMON-блоках, имена урезаны до шести символов, опечатка в имени создаёт новую переменную без ошибки. В C++ массивы становятся типизированными объектами, циклы уезжают к вызывающему коду — построчно не сверишь, только по числам. Ещё нужна интеграция с PetSc, без архитектурного рефакторинга автоперевод не вытянет.

Стенд численного совпадения

До запуска агентов команда зафиксировала с инженерами заказчика: «совпадение» — численное равенство финальных и промежуточных точек. В Fortran добавили экспорт состояния, в C++ — загрузку контрольных точек, агентам выдали Skill.md для сверки дампов. В примере RHOG даёт 42,71834 — мигрированный модуль проверяется на том же числе.

Три захода агентов

Сначала документацию собрали из PDF и комментариев: парсер построил дерево caller–callee, через Vibe CLI запустили больше сотни агентов — снизу вверх, с отдельным PR на узел и ревьюером на cron.

Полный автоном за неделю дал рабочий, но «мёртвый» код — COMMON стал глобальными структурами, GOTO остались. Следующий заход с планировщиком, кодером, тестером и ревьюером на модуль поднял качество, но агенты стопорились на багах. Итог — гибрид: человек ведёт очередь независимых модулей до ~10 000 строк Fortran, агенты крутят план → реализация → тест, человек разблокирует застои.

Что вынести из кейса

  • Стенд численного совпадения — до первой строки миграции.
  • Документация рядом с кодом — иначе мигрировать нечего.
  • Структурированный workflow с ревью человека лучше и автопилота, и чисто ручных сессий.

Без запускаемой базы, описанной физики или при зависимости от внешних систем задача заметно тяжелее — авторы это прямо оговаривают.

Источник: Modernizing complex legacy code with AI agents.