Vi studerar problemet med semantiska kodreparationer, som i stort sett kan definieras som att automatiskt fixera icke-syntaktiska fel i källkoden. Majoriteten av tidigare arbete inom semantisk kodreparation antog tillgång till enhetstester mot vilka kandidatreparationer kunde valideras. Däremot är målet här att utveckla en stark statistisk modell för att exakt förutsäga både felplatser och exakta korrigeringar utan tillgång till information om det avsedda korrekta beteendet i programmet. För att uppnå ett sådant mål krävs en robust kontextuell reparationsmodell, som vi tränar på en stor corpus av verkliga källkod som har förstärkts med syntetiskt injicerade buggar. Vårt ramverk antar en tvåstegsstrategi där först en stor uppsättning av reparationskandidater genereras av regelbaserade processorer, och sedan dessa kandidater görs av en statistisk modell med hjälp av en ny neural nätverk arkitektur som vi kallar Share, Specialize och Compete. Specifikt genererar arkitekturen (1) en delad kodning av källkoden med hjälp av en RNN över det abstrakta syntaxträdet, (2) poäng varje kandidat reparation med hjälp av specialiserade nätverksmoduler, och (3) normaliserar sedan dessa poäng tillsammans så att de kan konkurrera mot varandra i jämförbart sannolikhetsutrymme. Vi utvärderar vår modell på en riktig testuppsättning från GitHub som innehåller fyra vanliga kategorier av buggar. Vår modell kan förutsäga exakt korrekt reparation 41% av tiden med en enda gissning, jämfört med 13% noggrannhet för en uppmärksamhet sekvens-till-sekvens modell.
Devlin m.fl. arbete REF använde en neural nätverk arkitektur för att reparera buggar i Python, med fokus på fyra vanliga omvandlingar.
Semantic Code Repair using Neuro-Symbolic Transformation Networks
{'venue': 'ArXiv', 'journal': 'ArXiv', 'mag_field_of_study': ['Computer Science']}