Live OpenAI stellt Jugend-Sicherheitsplan vor, eSafety kündigt Durchgreifen ab 9. März an

KI-gestützte C-zu-Rust-Migration: Forschungsansätze und Benchmarks

Mehrere KI-gestützte Forschungsprojekte und Experimente zeigen Fortschritte bei der automatisierten Migration von C-Code zu Rust, aber es gibt noch keinen etablierten Standard; die Ergebnisse variieren stark je nach Ansatz und Metrik.

· Veröffentlicht: 19.09.2026 ·5 Min Lesezeit
KI-gestützte C-zu-Rust-Migration: Forschungsansätze und BenchmarksMit KI erstellt
Inhalt
◆ Fakten auf einen Blick
  • RustPrint ist ein documentation-guided agentic framework für Repository-Level C-to-Rust Migration, das Architektur-Dokumentation als Blaupause nutzt.
  • RustPrint wurde auf acht realen C-Repositories (11K bis 84K LoC) getestet und kompilierte jedes Ziel mit Kimi-K2-Instruct und GPT-5.4.
  • Rustine ist eine Pipeline, die statische Analyse, Refactoring und LLMs integriert, um C-Code in idiomatisches, speichersicheres Rust zu übersetzen.
  • Rustine wurde auf 23 Open-Source-C-Programmen (27 bis 13.200 Zeilen) validiert und erreichte eine durchschnittliche assertion-level funktionale Äquivalenz von 87%.
  • LLMigrate ist ein Toolchain, das LLMs mit statischer Analyse und Compiler-Feedback kombiniert, um C-Module in Rust zu übersetzen.
  • LLMigrate wurde auf drei Linux-Kernel-Modulen (math, sort, ramfs) getestet; weniger als 15% der finalen Rust-Zeilen benötigten manuelle Änderungen.

Agentische Frameworks erzielen hohe Kompilier- und Äquivalenzraten

Mehrere Forschungsprojekte untersuchen, ob agentische Frameworks die Übersetzung von C-Code in speichersicheres Rust verbessern können, indem sie große Sprachmodelle (LLMs) mit strukturierten Informationen kombinieren. Ein Beispiel ist RustPrint, ein documentation-guided agentic framework. Es wandelt das Quell-Repository zunächst in architekturbezogene Dokumentation um, die als Migrations-Blaupause dient. Diese Dokumentation erfasst Modulstruktur, Datenfluss, APIs und Design-Rationale. Coding Agents nutzen diese Blaupause, um Crates zu planen, Module zu implementieren, die Kompilierbarkeit zu prüfen, unsicheren Code zu reduzieren und das übersetzte Repository iterativ zu verfeinern. Anschließend vergleicht RustPrint die Dokumentation des Rust-Outputs mit der Quelldokumentation und nutzt Abweichungen als Reparatursignale. Es übersetzt und führt auch die Quell-Testsuiten aus, sodass Laufzeitfehler gezielte Korrekturen auslösen können. In Experimenten mit acht realen C-Repositories kompilierte RustPrint nach Angaben der Autoren jedes Ziel – sowohl mit dem offenen Modell Kimi-K2-Instruct als auch mit GPT-5.4. Mit Kimi-K2-Instruct erreichte RustPrint eine Feature Preservation von 93,26 % und eine Cross-Evaluation Test Pass Rate von 95,17 %, während eine agentische Claude-Code-Baseline 52,52 % bzw. 79,85 % erreichte. Die Autoren schlussfolgern, dass dokumentationsgeführte Koordination ein möglicher Ansatz ist.

Rustine integriert statische Analyse, Refactoring und LLMs in einer Pipeline. Es minimiert rohe Zeiger und unsichere Konstrukte und erreicht nach Angaben der Entwickler eine durchschnittliche assertion-level funktionale Äquivalenz von 87 % auf 23 Open-Source-Programmen (27 bis 13.200 Zeilen). Die Architektur ist kosteneffektiv (ca. 0,50 USD pro Projekt) und skalierbar für Multi-File-Repositories inklusive Build-Skripten und Tests.

LLMigrate kombiniert LLMs mit statischer Analyse und Compiler-Feedback. Es übersetzt C-Module in Rust und minimiert manuelle Änderungen. Auf drei Linux-Kernel-Modulen (math, sort, ramfs) benötigte es nach Angaben der Autoren weniger als 15 % manuelle Änderungen an den finalen Rust-Zeilen, trotz starker Nutzung von sicherem Rust. Der Kern: LLMs neigen bei langen, komplexen Eingaben zu „Faulheit“ und lassen Code weg; LLMigrate zerlegt die Arbeit in funktionsgroße Einheiten, erhält genug Kontext, nutzt eine Reparaturschleife mit Compiler-Feedback und fällt bei Bedarf auf regelbasierte Tools wie C2Rust zurück. Gemeinsam ist diesen Ansätzen die Kombination von Sprachmodellen mit strukturierten Informationen, um die Übersetzung zu steuern und Fehler zu beheben.

SafeTrans: Iterative Reparatur steigert Erfolgsquote auf 80%

SafeTrans ist ein Framework, das LLMs zur Transpilierung von C-Code in idiomatisches Rust einsetzt und dabei sicherstellt, dass der generierte Code speicherbezogene Schwachstellen des Originals behebt. Der Ablauf: Zuerst transpiliert das LLM den C-Code nach Rust. Anschließend behebt SafeTrans iterativ Kompilier- und Laufzeitfehler im resultierenden Code. Eine zentrale Neuerung ist die few-shot guided repair Technik: Für bestimmte Fehlertypen liefert das Framework dem Modell kontextuelle Informationen und Beispielcode-Snippets, die das LLM zur korrekten Lösung führen. Statt nur eine Fehlermeldung zu zeigen, erhält das Modell also passende Beispiele, wie ähnliche Fehler in ähnlichem Kontext behoben wurden. Die Autoren geben an, dass diese Technik die Reparaturqualität verbessert. In Experimenten mit sechs führenden LLMs und 2.653 C-Programmen, begleitet von umfassenden Unit-Tests, zeigte sich: Die iterative Reparaturstrategie steigerte die Erfolgsquote der Übersetzungen von 54 % auf 80 % für das beste Modell (GPT-4o). Das bedeutet: Ohne Reparatur scheitert fast die Hälfte der Übersetzungen; mit der iterativen Fehlerbehebung gelingen vier von fünf. Darüber hinaus evaluiert SafeTrans die Sicherheitsimplikationen des Transpilationsprozesses, indem es prüft, ob potenzielle Schwachstellen des C-Originals im Rust-Code tatsächlich behoben wurden. Dies unterstreicht, dass die einmalige Übersetzung oft nicht ausreicht – erst die wiederholte, gezielte Korrektur führt zu korrektem und idiomatischem Rust.

CRUST-Bench zeigt ernüchternde Single-Shot-Ergebnisse

CRUST-Bench ist ein Benchmark für die Transpilierung von C zu sicherem Rust. Er besteht aus 100 C-Repositories, die jeweils mit manuell geschriebenen Interfaces in sicherem Rust sowie Testfällen zur Validierung der Korrektheit der Transpilierung gepaart sind. Anders als viele Einzelstudien betrachtet CRUST-Bench ganze Repositories statt isolierter Funktionen und erfasst so die Herausforderungen der Übersetzung komplexer Projekte mit Abhängigkeiten über mehrere Dateien hinweg. Die bereitgestellten Rust-Interfaces dienen als explizite Spezifikationen, die die Einhaltung idiomatischer, speichersicherer Rust-Muster sicherstellen; die Testfälle erzwingen funktionale Korrektheit. Die Autoren evaluierten state-of-the-art LLMs auf dieser Aufgabe und stellten fest, dass die Generierung von sicherem und idiomatischem Rust weiterhin ein schwieriges Problem ist. Das beste Modell, OpenAI o1, konnte im Single-Shot-Setting nur 15 von 100 Aufgaben lösen. Das bedeutet: Ohne iterative Reparatur oder zusätzliche Hilfestellungen schafft selbst das stärkste Modell nur 15 % der Repositories. Diese Ergebnisse unterscheiden sich von den in Einzelstudien wie RustPrint oder SafeTrans berichteten Erfolgsquoten von 80 % oder mehr. Der Grund liegt in abweichenden Metriken und Testbedingungen: Einzelstudien verwenden oft ausgewählte Repositories, erlauben mehrere Reparatur-Iterationen und messen Kompilierbarkeit oder Äquivalenz mit eigenen, teils weniger strengen Tests. CRUST-Bench hingegen verlangt, dass das Modell auf Anhieb – im Single-Shot – idiomatischen, speichersicheren Rust-Code erzeugt, der gegen manuell geschriebene Interfaces und Testfälle besteht. Die Anforderungen sind also strenger: Es geht nicht nur um Kompilieren, sondern um korrekte, sichere und idiomatische Übersetzung ohne nachträgliche Korrekturen. Daher sind die Ergebnisse nicht direkt vergleichbar, und CRUST-Bench liefert ein realistischeres Bild der aktuellen Fähigkeiten von LLMs bei der C-zu-Rust-Transpilierung.

Praxis und Förderung: Einzelprojekt und DARPA-Interesse

Auch außerhalb der akademischen Forschung gibt es Aktivitäten zur automatisierten C-zu-Rust-Migration. Ein konkretes Beispiel: Ein Entwickler gab nach eigenen Angaben 174 US-Dollar aus, um zwölf Open-Source-C-Projekte mit insgesamt 28.000 Zeilen mithilfe von KI-Agenten nach Rust zu transpilieren. Das entspricht einem Bruchteil der Kosten einer manuellen Migration durch erfahrene Rust-Entwickler, die üblicherweise 150–200 US-Dollar pro Stunde kosten. Der Entwickler lieferte damit Daten zu den wirtschaftlichen Aspekten der KI-gestützten Migration. Allerdings zeigt die Forschung, dass ein reiner Kostenvergleich zu kurz greift: Die Qualität des erzeugten Codes – insbesondere Sicherheit und Idiomatik – variiert stark, wie die SafeTrans-Studie mit ihrer iterativen Reparatur zeigt. Parallel dazu signalisiert die US-Forschungsbehörde DARPA ihr Interesse an diesem Thema: Über eine sogenannte Special Notice hat DARPA bekannt gegeben, dass sie die Finanzierung von Forschung zur Übersetzung von C zu Rust in Betracht zieht. Eine Special Notice ist noch kein Förderprogramm, sondern ein erster Schritt, bei dem DARPA Informationen sammelt, um einen späteren Aufruf zur Einreichung von Vorschlägen vorzubereiten. Dass eine Behörde wie DARPA diesen Bereich aktiv sondiert, ist ein Indiz dafür, dass das Thema als strategisch relevant eingestuft wird. Trotz der gemischten Ergebnisse aus Benchmarks wie CRUST-Bench und den optimistischeren Einzelstudien zeigt sich insgesamt: Industrie und Behörden sehen in der automatisierten Migration einen möglichen Weg, um Legacy-Code in speichersichere Sprachen zu überführen und damit die Sicherheit von Software zu verbessern. Die Kombination aus konkreten Praxiserfahrungen und behördlichem Interesse deutet darauf hin, dass die C-zu-Rust-Migration in den kommenden Jahren an Bedeutung gewinnen wird, auch wenn die Werkzeuge noch weiterentwickelt werden müssen.

J
Jasmin Freitag
Redaktion · KI-Anwendungen & Tools

Jasmin Freitag beobachtet für KI Spotlight die praktische Seite der künstlichen Intelligenz: neue Anwendungen, generative Werkzeuge, kreative KI und den Einsatz von Tools im Alltag und in Unternehmen. Sie erklärt praxisnah, was ein Werkzeug wirklich taugt.

Ähnliche Artikel