HeadlinesBriefing HeadlinesBriefing.com

Eurydice переводит Rust в читаемый C

Hacker News •
×

Несколько лет назад единственным способом скомпилировать код на Rust был компилятор rustc с LLVM в качестве бэкенда. С тех пор несколько проектов, включая mrustc, поддержку Rust в GCC (gccrs), rust_codegen_gcc и Cranelift, разнообразили реализации компиляторов Rust. Самый новый проект, Eurydice, нацелен на преобразование кода Rust в чистый код на C, что полезно в высоконадёжном ПО, где инструменты верификации ожидают C.

Eurydice, начатый в 2023 году, является частью проекта Aeneas, который разрабатывает инструменты для применения формальной верификации к коду Rust. Его поддерживают исследователи из Inria и Microsoft. Eurydice следует стандартной структуре компилятора: разбор Rust, преобразование в IR, применение проходов и вывод C.

В отличие от других компиляторов, Eurydice сохраняет структуру кода, одновременно удаляя конструкции, специфичные для Rust. Например, функции наименьшего общего кратного он компилирует в читаемый C с временными переменными, чтобы сохранить порядок вычислений. Хотя не все программы на Rust переводятся точно из-за обобщённых типов и итераторов, Eurydice обеспечивает более плавный переход для сред, где есть компиляторы C, но нет поддержки Rust.

Проект включает код под лицензиями MIT и Apache-2.0 и принимает внешний вклад.

Источник: Hacker News · Сводку подготовил HeadlinesBriefing