Canonical запустила проект инструментария для автоматической трансляции кода с языка C на Rust

Компания Canonical совместно с Бристольским университетом будет развивать новый проект, нацеленный на разработку инструментария для автоматической трансляции кода с языка Си на Rust.

Цель проекта — перевести большие репозитории с сотнями тысяч строк кода на безопасное и легко сопровождаемое представление на Rust.

Canonical будет поддерживать работу исследователей в течение трёх лет. Технологию опробуют для перевода на Rust пакетов AppArmor и snap‑confine.

Планируется задействовать гибридную модель, которая будет включать технологии на основе машинного обучения и классические методы анализа, тестирования и формальной верификации. В процессе крупные кодовые базы будут разделяться на отдельные фрагменты, транслируемые независимо без потери общего контекста, необходимого для учёта типов, зависимостей и поведения.

Инструменты будут обучать на коде существующих проектов, уже переведённых с Си на Rust, чтобы задействовать в результирующем коде корректные Rust‑абстракции вместо переписывания Си‑конструкций.

Одновременно исследователи выпустят инструментарий для проверки результирующего кода с использованием fuzzing‑тестирования и элементов формальной верификации, а также средств для отладки и анализа проблем.

Проект позиционируется как исследовательский и подразумевает разработку новых методов, обрабатывающих ситуации с неопределённым поведением в коде на Си, указателями и конкурирующими блокировками. Разработчики пояснили, что ручное переписывание с Си на Rust требует объёмной работы и приводит к потере накопленных исправлений и оптимизаций.

Ранее в Canonical опубликовали планы по развитию с внедрением множества функций искусственного интеллекта. Ожидается, что в течение следующего года в Ubuntu Linux появятся различные функции ИИ с упором на локальный вывод по умолчанию. Инженеры Canonical будут работать над интеграцией агентных рабочих процессов в Ubuntu для всех желающих. Изучаются области использования ИИ в Ubuntu как для настольных компьютеров, так и для серверов, например, для помощи в интерпретации системных журналов. Что касается запланированных функций, пока они всё ещё находятся в стадии разработки для создания контекстно‑ориентированной операционной системы.

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев