Vi presenterar den första metoden för automatisk gruvdrift kod idiomer från en corpus av tidigare skrivna, idiomatiska programvaruprojekt. Vi anser att en kod idiom är ett syntaktiskt fragment som återkommer över projekt och har ett enda semantiskt syfte. Idiomer kan ha metavariabler, såsom kroppen av en för loop. Moderna IDE:er tillhandahåller ofta hjälpmedel för att manuellt definiera idiom och infoga dem på begäran, men detta hjälper inte programmerare att skriva idiomatiska kod på språk eller använda bibliotek som de är obekanta med. Vi presenterar Haggis, ett system för gruvdrift kod idiomer som bygger på nyligen avancerade tekniker från statistiska naturliga språk bearbetning, nämligen icke-parametrisk Bayesian probabilistic träd substitution grammatiker. Vi tillämpar Haggis på flera av de mest populära öppenkällkodsprojekten från GitHub. Vi lägger fram ett brett spektrum av bevis för att de resulterande idiomen är semantiskt meningsfulla, vilket visar att de verkligen återkommer över programvaruprojekt och att de förekommer oftare i belysande kodexempel som samlas in från en Q&A-webbplats. Manuell undersökning av de vanligaste idiomen indikerar att de beskriver viktiga programkoncept, inklusive objektskapande, undantagshantering och resurshantering.
Allamanis och Sutton använde icke-parametrisk Bayesian probabilistic trädsubstitution till mina idiomer från källkod REF.
Mining idioms from source code
{'venue': 'FSE 2014', 'journal': None, 'mag_field_of_study': ['Computer Science']}