Eurydice projesi Rust kodlarını okunabilir C diline derliyor
Öne çıkanlar
- Eurydice, Rust kodlarını yapısal düzeni ve çalışma sırasını koruyarak C koduna dönüştürüyor.
- Proje, rustc derleyicisinin ürettiği MIR verisini işlemek için Charon ve KaRaMeL araçlarını kullanıyor.
- Araç güncel sürümde küçük ölçekli programlarda çalışıyor ve karmaşık generic yapılarında kısıtlamalar barındırıyor.
Inria ve Microsoft bünyesindeki araştırmacıların geliştirdiği Eurydice adlı açık kaynaklı derleyici aracı, Rust kodlarını yapısal bütünlüğünü koruyarak C diline çeviriyor. 2023 yılında başlatılan ve Aeneas projesinin bir parçası olan araç, özellikle resmi doğrulama ve uyumluluk denetimlerinin C dili üzerinde yapıldığı yüksek güvenlikli sistemleri hedefliyor. Proje, henüz doğrudan Rust desteği bulunmayan doğrulama araçları ve yalnızca C derleyicisine sahip donanım mimarileri için bir geçiş köprüsü sunuyor.
Eurydice, Rust kodunu ayrıştırmak için doğrudan kendi denetleyicisini yazmak yerine Charon aracılığıyla rustc derleyicisinin orta seviye ara temsilini (MIR) JSON formatında dışa aktarıyor. Bu veriyi F* dilini C'ye dönüştüren KaRaMeL altyapısına aktaran araç, aşamalı geçişlerle Rust'a özgü yapıları ayıklıyor. Orijinal kodun çalışma sırasını ve anlamını korumak için geçici değişkenler kullanan sistem, dinamik boyutlu türler ve monomorfizasyon gibi C'de karşılığı bulunmayan mekanizmaları yapısal olarak uyarlıyor.
Mevcut aşamada küçük ölçekli ve bağımsız programlarda başarılı sonuçlar veren araç, karmaşık Rust özellikleriyle karşılaştığında çeşitli kısıtlamalar yaşıyor. Özellikle sabit generic yapıları gibi modern dil yenilikleri Charon aşamasında hatalara yol açabiliyor. Kuantum sonrası kriptografi algoritmalarının C'ye aktarılmasında da kullanılan projenin ürettiği C kodlarının, takma adlandırma kuralları nedeniyle -fno-strict-aliasing bayrağıyla derlenmesi tavsiye ediliyor.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.