В инструментарии будет задействована гибридная модель, комбинирующая технологии на основе машинного обучения с классическими методами анализа, тестирования и формальной верификации. В процессе работы крупные кодовые базы будут разделяться на отдельные фрагменты, транслируемые независимо без потери общего контекста, необходимого для учёта типов, зависимостей и поведения. AI-инструментарий будет обучен на коде существующих проектов, уже переведённых с Си на Rust, для задействования в результирующем коде корректных Rust-абстракций вместо переписывания Си-конструкций на Rust.
Помимо этого будет предоставлен инструментарий для проверки результирующего кода, использующий fuzzing-тестирование и элементы формальной верификации, а также средства для отладки и анализа проблем, выявленных в результате проверки. Проект позиционируется как исследовательский и подразумевает не просто создание связки «AI-компиляция-тестирование», а разработку новых методов, обрабатывающих ситуации с неопределенным поведением в коде на Си, указателями и конкурирующими блокировками.
Создание нового проекта объясняется тем, что ручное переписывание с Си на Rust требует больших трудозатрат и приводит к потере накопленных исправлений и оптимизаций, традиционные трансляторы создают неидиоматичный и небезопасный Rust-код, а AI-модели плохо масштабируются на крупные репозитории и не гарантируют сохранение поведения программы.
Источник: http://www.opennet.ru/opennews/art.shtml?num=66099
