Praktiska program delar stora moduler av kod. Men många programanalyser är ineffektiva på att återanvända analysresultat för delad kod över program. Vi presenterar POLYMER, en analys optimizer för att ta itu med detta problem. POLYMER kör analysen offline på en corpus av träningsprogram och lär sig analys fakta över delad kod. Det beskär de inlärda fakta för att eliminera mellanliggande beräkningar och sedan återanvända dessa beskurna fakta för att påskynda analysen av andra program som delar kod med tränings corpus. Vi har implementerat POLYMER för att påskynda analyser som specificeras i Datalog, och tillämpa det för att optimera två analyser för Java-program: en call-graph analys som är flöde-och kontext-okänslig, och en poäng-till analys som är flöde-och kontext-känslig. Vi utvärderar de resulterande analyserna på tio program från DaCapo-sviten som delar JDK-biblioteket. POLYMER uppnår genomsnittliga hastigheter på 2,6× för callgraph analys och 5,2× för poäng-till analys.
Kulkarni m.fl. REF påskyndar programanalys i Datalog genom att köra analysen offline på en corpus av träningsprogram för att lära sig analys fakta över delad kod och sedan återanvända de inlärda fakta för att påskynda analysen av andra program som delar kod med utbildningen corpus.
Accelerating program analyses by cross-program training
{'venue': 'OOPSLA 2016', 'journal': None, 'mag_field_of_study': ['Computer Science']}