Vi presenterar en neural modell för att representera snippets av kod som kontinuerlig distribuerade vektorer (łcode inbäddingsž). Den huvudsakliga idén är att representera en kod sippet som en enda fast längd kod vektor, som kan användas för att förutsäga semantiska egenskaper hos sippet. För detta ändamål bryts koden först ned till en samling stigar i sitt abstrakta syntaxträd. Sedan lär sig nätverket atomrepresentationen av varje väg samtidigt som man lär sig hur man aggregerar en uppsättning av dem. Vi visar effektiviteten i vår strategi genom att använda den för att förutsäga en metods namn från vektorrepresentationen av dess kropp. Vi utvärderar vår strategi genom att träna en modell på en datauppsättning av 12M metoder. Vi visar att kodvektorer som är utbildade på detta dataset kan förutsäga metodnamn från filer som inte var observerade under utbildningen. Dessutom visar vi att vår modell lär sig användbara metodnamn vektorer som fångar semantiska likheter, kombinationer och analogier. En jämförelse av vår strategi med tidigare tekniker över samma datauppsättning visar en förbättring på mer än 75%, vilket gör det första att framgångsrikt förutsäga metodnamn baserat på en stor, tvärprojekt corpus. Vår utbildade modell, visualiseringar och vektor likheter finns som en interaktiv online demo på
Alon och Al. REF lär kod vektor inbäddningar genom att utvärdera vägar i AST och utvärdera de resulterande vektorer genom att förutsäga metodnamn från kod sippets.
code2vec: learning distributed representations of code
{'venue': 'PACMPL', 'journal': None, 'mag_field_of_study': ['Computer Science', 'Mathematics']}