Моделі й дослідження
Canonical підтримує нейросимвольне ШІ-дослідження для автоматизації перекладу C на Rust
Canonical у партнерстві з Брістольським університетом розпочала трирічний проєкт для автоматичного перекладу великих C-репозиторіїв на безпечний Rust. Ініціатива використовує нейросимвольний підхід, поєднуючи LLM з формальною верифікацією та аналізом програм.
20 серпня 2026 р. 3 хв читання
Куратор Oleksandr Kuzmenko, AI Product EngineerОновлено 20 серпня 2026 р.Джерела вказані в кожному матеріалі
За участі AI · перевірено редакторомЯк ми використовуємо AI

Вплив: Середній
Чому це важливо
Інженери, які займаються міграцією застарілого коду, можуть застосовувати нейросимвольний підхід, розбиваючи репозиторії на модулі перед рефакторингом за допомогою LLM.
TL;DR
- 01Гібридний нейросимвольний переклад поєднує генеративні LLM з детермінованою формальною верифікацією.
- 02Модульна декомпозиція залежностей є обов'язковою перед передачею застарілого коду в контекст LLM.
- 03Canonical тестує технологію на AppArmor та snap-confine як реальних бенчмарках.
Ключові факти
- Тривалість проєкту
- 3 роки
- Партнери
- Canonical та Брістольський університет
- Тестові кодбази
- AppArmor, snap-confine
Обмеження традиційних конвертерів та звичайних LLM Переклад продакшн-коду C на Rust вимагає збереження десятиліть оптимізацій, виправлень крайових випадків та неявного управління пам'яттю. Транслятори на основі правил створюють непідтримуваний unsafe Rust. Звичайні LLM припускаються галюцинацій у контексті цілих репозиторіїв. ### Нейросимвольний гібридний конвеєр Canonical та Брістольський університет декомпозують репозиторії на модульні блоки з відстеженням топології залежностей. Навчені LLM генерують ідіоматичні конструкції Rust. Після цього інструменти статичного аналізу та формальної верифікації підтверджують відповідність поведінки нового коду оригінальному C.
✓ Коли використовувати
- Використовуйте при проектуванні агентів рефакторингу для модернізації застарілого C/C++ коду.
- Застосовуйте нейросимвольні конвеєри верифікації, коли необхідні автоматизовані гарантії безпеки.
✕ Коли НЕ варто
- Не покладайтеся виключно на LLM для трансляції низькорівневих операцій з пам'яттю без інструментів аналізу.
- Не застосовуйте прямий переклад промптами до несегментованих C-кодбаз обсягом понад 10 000 рядків.
Що зробити сьогодні
- Декомпозуйте великі модулі на окремі функції перед запуском інструментів рефакторингу на базі LLM.
- Впровадьте автоматизовані тести поведінки для перевірки паритету логіки при міграції з C на Rust.
#Canonical#Ubuntu#AppArmor
Джерела