Das Forschungsfeld des plattformübergreifenden Code-Klonens hat aufgrund der steigenden Komplexität der modernen Softwareentwicklung, in der in der Regel mehrere Programmiersprachen in einem einzigen Projekt eingesetzt werden, an Bedeutung gewonnen. Unter dem Begriff “plattformübergreifende Code-Klon-Erkennung” versteht man den Prozess, identische oder nahezu identische Code-Segmente in mehreren Computersprachen aufzufinden.
Durch Fortschritte im Bereich der künstlichen Intelligenz und des maschinellen Lernens, insbesondere mit der Einführung großer Sprachmodelle (LLMs), konnten viele Rechenaufgaben bewältigt werden. Aufgrund ihrer außergewöhnlichen Fähigkeiten im Bereich der natürlichen Sprachverarbeitung haben LLMs Aufmerksamkeit für ihre mögliche Verwendung bei codebezogenen Aufgaben wie der Klonidentifikation erlangt. In einer aktuellen Studie haben Forscher der Universität Luxemburg das Problem der plattformübergreifenden Code-Klon-Erkennung erneut untersucht und die Wirksamkeit von LLMs und vorab trainierten Einbettungsmodellen in diesem Bereich untersucht.
Die Untersuchung bewertet die Leistung von vier verschiedenen LLMs in Verbindung mit acht einzigartigen Prompts, die dazu dienen, die Erkennung von plattformübergreifenden Code-Klonen zu unterstützen. Sie evaluiert die Nützlichkeit eines vorab trainierten Einbettungsmodells, das Vektorrepräsentationen von Codeausschnitten erzeugt. Anschließend werden Paare von Code-Fragmenten basierend auf diesen Repräsentationen als Klone oder Nicht-Klone kategorisiert. Zur Evaluierung wurden zwei beliebte plattformübergreifende Datensätze verwendet: CodeNet und XLCoST.
Die Ergebnisse der Studie haben die Vor- und Nachteile von LLMs in dieser Situation gezeigt. Bei einfachen Programmierbeispielen wie denen im XLCoST-Datensatz zeigten die LLMs, dass sie hohe F1-Werte von bis zu 0,98 erreichen können. Bei schwierigeren Programmieraufgaben hingegen litt ihre Leistung. Dieser Rückgang lässt die Möglichkeit offen, dass LLMs Schwierigkeiten haben könnten, die subtile Bedeutung von Code-Klonen vollständig zu erfassen, insbesondere in einem plattformübergreifenden Kontext, in dem es entscheidend ist, die funktionale Äquivalenz von Code zwischen Sprachen zu verstehen.
Die Forschung hat gezeigt, dass Einbettungsmodelle, die Codefragmente aus vielen Programmiersprachen innerhalb eines einzelnen Vektorraums repräsentieren, eine stärkere Basis für die Identifizierung plattformübergreifender Code-Klone bieten. Durch Training eines einfachen Klassifikators mit diesen Einbettungen konnten die Forscher eine Verbesserung um etwa zwei Prozentpunkte im XLCoST-Datensatz und um etwa 24 Prozentpunkte im komplizierteren CodeNet-Datensatz erzielen, wodurch bessere Ergebnisse erzielt wurden als alle bewerteten LLMs.
Das Team hat seine Hauptbeiträge wie folgt zusammengefasst: Die Arbeit analysiert weitreichend die Kapazitäten von LLMs zur Identifizierung plattformübergreifender Code-Klone, insbesondere in Java in Verbindung mit zehn verschiedenen Programmiersprachen. Diese Arbeit wendet verschiedene LLMs auf eine Vielzahl plattformübergreifender Datensätze an und bewertet die Auswirkungen verschiedener schneller Technikmethoden, die eine andere Perspektive im Vergleich zu früheren Forschungen bieten.
Die Studie bietet aufschlussreiche Informationen darüber, wie gut LLMs bei der Identifizierung von Code-Klonen abschneiden. Sie betont, wie sehr die Nähe zweier Programmiersprachen die Fähigkeit von LLMs beeinflusst, Klone zu identifizieren, insbesondere wenn einfache Hinweise gegeben werden. Die Auswirkungen von Unterschieden in Programmiersprachen werden verringert, wenn die Prompts sich auf logisches Denken und Schlussfolgerungen konzentrieren. Die Generalisierbarkeit und universale Wirksamkeit von LLMs bei plattformübergreifenden Code-Klon-Erkennungsaufgaben wurden ebenfalls diskutiert.
Die Studie vergleicht die Leistung von LLMs mit traditionellen ML-Techniken, die auf erlernten Code-Repräsentationen basieren. Die Ergebnisse des Experiments deuten darauf hin, dass LLMs möglicherweise nicht vollständig verstehen, was Klone im Kontext der Code-Klon-Erkennung bedeuten, was darauf hindeutet, dass traditionelle Techniken in dieser Hinsicht möglicherweise immer noch überlegen sind.
Zusammenfassend lässt sich sagen, dass LLMs zwar sehr leistungsfähig sind, insbesondere im Umgang mit einfachen Code-Beispielen, jedoch möglicherweise nicht die effektivste Methode zur Identifizierung plattformübergreifender Code-Klone sind, insbesondere in komplexeren Situationen. Einbettungsmodelle eignen sich dagegen besser, um Spitzenleistungen in diesem Bereich zu erzielen, da sie konsistente und sprachneutrale Repräsentationen von Code liefern.
Hinterlasse eine Antwort