TFix: Lernen, Programmierfehler mit einem Text-zu-Text-Transformer zu beheben

Das Problem der Fehlerbehebung in Programmen hat über die Jahre erhebliches Interesse hervorgerufen. Die zentrale Herausforderung bei der Entwicklung eines effektiven Werkzeugs zur Code-Reparatur besteht darin, eine breite Palette von Fehlern abzubilden, gleichzeitig jedoch eine hohe Genauigkeit zu gewährleisten. In diesem Artikel greifen wir diese Herausforderung auf und stellen ein neues, lernbasiertes System namens TFix vor. TFix arbeitet direkt auf Programmtext und formuliert das Problem der Code-Reparatur als eine Text-zu-Text-Aufgabe. Dadurch kann es ein leistungsstarkes, auf natürlicher Sprache vortrainiertes Transformer-Modell nutzen, das anschließend anhand eines großen, hochwertigen Datensatzes aus GitHub-Commits zur Generierung von Code-Reparaturen feinabgestimmt wurde. TFix ist nicht auf eine bestimmte Programmiersprache oder eine bestimmte Fehlerklasse beschränkt und verbesserte tatsächlich ihre Präzision, indem sie gleichzeitig auf 52 verschiedene Fehlerarten, die von einem populären statischen Analysewerkzeug gemeldet wurden, feinabgestimmt wurde. Unsere Evaluation an einem umfangreichen Datensatz an JavaScript-Programmen zeigt, dass TFix praktisch wirksam ist: Es kann in 67 Prozent der Fälle korrekten Code generieren, der den Fehler behebt, und übertrifft dabei bestehende lernbasierte Ansätze erheblich.