← Neueste Arbeiten
💻 computer science

Prefactory: Automated Discovery and Application of Library-Adoption Refactorings

Dieses Paper stellt Prefactory vor, ein automatisiertes System, das mithilfe von LLMs ausführbare Suchheuristiken synthetisiert, um Library-Adoption-Refactorings in Python-Code effizient zu erkennen und anzuwenden, wobei es auf einem neuen Benchmark aus realen Projekten signifikant höhere Erkennungs- und Validierungsraten als bestehende Baselines erzielt.

Ursprüngliche Autoren: Islem Bouzenia, Michael Pradel

Veröffentlicht 2026-07-21
📖 3 Min. Lesezeit☕ Kaffeepausen-Lektüre

Ursprüngliche Autoren: Islem Bouzenia, Michael Pradel

Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen

Stellen Sie sich vor, Sie sind ein Bibliothekar, der damit beauftragt ist, eine riesige, chaotische Bibliothek zu organisieren, in der jedes Buch von einem anderen Autor in seinem eigenen, einzigartigen Stil geschrieben wurde. Einige Autoren erfinden das Rad neu und schreiben lange, komplizierte Anleitungen für Dinge, die es bereits als perfektes, fertiges Werkzeug im Hinterraum der Bibliothek gibt. In der Welt der Computerprogrammierung nennt man das „Refactoring“. Es ist die Kunst, unordentlichen, handgeschriebenen Code aufzuräumen und ihn durch saubere, effiziente Aufrufe bestehender, gut getesteter Bibliotheken zu ersetzen. Denken Sie daran wie an der Erkenntnis, dass man gerade einen Pullover handstrickt, obwohl man statlich einen perfekten im Laden kaufen könnte. Das Problem dabei ist, dass die Suche nach solchen Gelegenheiten wie die Suche nach der Nadel im Heuhaufen ist, besonders wenn die Nadel überhaupt nicht wie eine Nadel aussieht. Der handgeschriebene Code erwähnt die Bibliothek vielleicht nicht einmal beim Namen; er führt einfach nur auf eine klobige Weise dasselbe aus. Jahrelang hatten Computer Schwierigkeiten, diese verborgenen Chancen zur Aktualisierung von Code zu erkennen, da sie zu starr waren, und die Anforderung an eine superintelligente KI, jede einzelne Datei eines Projekts zu lesen, war zu teuer und zu langsam.

Hier kommt Prefactory ins Spiel, ein neues Werkzeug, das entwickelt wurde, um dieses Rätsel zu lösen. Anstatt eine superintelligente KI zu bitten, die gesamte Bibliothek des Codes jedes Mal von Grund auf neu zu lesen (was so wäre, als würde man einen Detektiv anheuern, der jedes Buch in der Bibliothek einzeln liest), lehrt Prefactory die KI, zuerst einen Satz maßgeschneiderter „Metalldetektoren“ zu bauen. Diese Detektoren sind wie spezialisierte Metalldetektoren, die darauf abgestimmt sind, bestimmte Formen und Klänge von vergrabenem Schatz zu finden. Sobald die KI diese Detektoren gebaut hat, können sie den gesamten Codebestand in einem Augenblick scannen und den unordentlichen, handgeschriebenen Code finden, der dem Muster einer Bibliotheksfunktion entspricht. Wenn eine Übereinstimmung gefunden wird, greift die KI ein letztes Mal ein, um den Austausch vorzunehmen und doppelt zu prüfen, ob der neue Code exakt so funktioniert wie der alte.

Die Forscher testeten diesen Ansatz an einer massiven Sammlung von 100 realen Beispielen, bei denen Entwickler bereits erfolgreich handgeschriebenen Code gegen Bibliotheksaufrufe ausgetauscht hatten. Sie fanden heraus, dass Prefactory unglaublich gut darin war, diese Gelegenheiten aufzuspüren. Es identifizierte die richtigen Dateien in 75 von 100 Fällen und lokalisierte die exakten Funktionen, die korrigiert werden mussten, in 56 Fällen. Im Vergleich dazu fand die nächstbeste Methode, die auf einem Standard-KI-Agenten basierte, der den Code durchliest, nur in 35 Fällen die richtigen Dateien und in 32 Fällen die richtigen Funktionen. Noch besser: Prefactory gelang es, 40 vollständig validierte, funktionierende Refactorings zu erstellen, die alle Sicherheitstests bestanden.

Was diesen Ansatz so besonders macht, ist, wie viel Geld und Zeit er spart. Das Scannen eines Projekts mit Prefactory dauert im Durchschnitt nur 1,3 Sekunden und kostet weniger als 0,05 $ pro Instanz, um den Fehler zu finden und zu beheben. Die Methode mit dem Standard-KI-Agenten kostet hingegen etwa dreimal so viel und dauert viel länger, weil die KI jedes Mal aufs Neue über das gesamte Projekt „nachdenken“ muss. Das Paper legt nahe, dass wir, indem wir das Wissen der KI in wiederverwendbare, ausführbare Detektoren umwandeln, die Code-Bereinigung schnell, günstig und zuverlässig machen können. Die Autoren merken jedoch auch an, dass das System noch nicht perfekt ist; es hat manchmal Schwierigkeiten mit sehr großen, komplexen Bibliotheken, bei denen der „handgeschriebene“ Code sehr unterschiedlich zu den Standardmustern der Bibliothek aussieht, und es kann keinen Code korrigieren, der komplexe, dateiübergreifende Architekturänderungen beinhaltet. Aber für die überwiegende Mehrheit der alltäglichen Code-Bereinigungsaufgaben scheint dieser „Detektor-bauende“ Ansatz ein Game-Changer zu sein.

Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?

Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.

Digest testen →