EvoC2Rust: Projektweite C-zu-Rust-Übersetzung mit Skeleton‑Guided Framework
Ein neues Tool namens EvoC2Rust bietet eine automatisierte Lösung, um komplette C-Projekte in Rust zu überführen. Das Framework nutzt einen „Skeleton‑Guided“-Ansatz, der die Komplexität von großen Codebasen bewältigt und dabei sowohl Regel‑ als auch LLM‑Methoden kombiniert.
Traditionelle Regel‑basierte Verfahren stoßen bei umfangreichen Projekten oft an ihre Grenzen, weil sie die Sicherheit und Idiomatik des Codes nicht vollständig gewährleisten können. Auf der anderen Seite erzeugen LLM‑basierte Ansätze häufig semantisch inkorrekte Rust‑Versionen, weil sie stark von den Abhängigkeiten im gesamten Projekt abhängig sind. EvoC2Rust adressiert diese Schwächen, indem es die C‑Codebasis in funktionale Module zerlegt und ein LLM mit Feature‑Mapping unterstützt, um Definitionen, Makros und Funktionsstubs zu übersetzen.
Der Übersetzungsprozess besteht aus drei Phasen: Erstens wird ein kompilerbarer Rust‑Skeleton erzeugt, indem Funktionsstubs generiert werden. Zweitens werden die einzelnen Funktionen schrittweise übersetzt und die entsprechenden Platzhalter ersetzt. Drittens werden eventuelle Kompilierungsfehler durch eine Kombination aus LLM‑Feedback und statischer Analyse behoben. Durch diese evolutionäre Vorgehensweise nutzt EvoC2Rust die Stärken beider Ansätze.
In umfangreichen Tests mit Open‑Source‑Benchmarks und sechs Industrieprojekten zeigte EvoC2Rust eine deutlich bessere Leistung als die stärkste LLM‑basierte Basis. Die Syntax‑Genauigkeit lag 17,24 % höher, während die semantische Übereinstimmung um 14,3 % verbessert wurde. Diese Ergebnisse unterstreichen die Effektivität des Frameworks für die projektweite C‑zu‑Rust‑Übersetzung.
Mit EvoC2Rust können Entwickler sicherstellen, dass ihre Legacy‑C‑Codebasen nicht nur in Rust übersetzt, sondern auch sicher, wartbar und idiomatisch korrekt bleiben. Das Tool markiert einen wichtigen Schritt in Richtung moderner, sicherheitskritischer Softwaresysteme.