Sammanhangskänslighet är en viktig teknik för att säkerställa hög precision i Java pekaranalyser. Det har observerats att tillämpa kontextkänslighet delvis, endast på en utvald delmängd av metoderna, kan förbättra balansen mellan analysprecision och hastighet. Befintliga tekniker är dock baserade på heuristik som inte ger någon större inblick i vad som kännetecknar denna metoddelmängd. I detta arbete presenterar vi ett mer principfast tillvägagångssätt för att identifiera precisionskritiska metoder, baserat på allmänna mönster av värdeflöden som förklarar var det mesta av oföränderligheten uppstår i kontext-okänslig pekaranalys. Följaktligen tillhandahåller vi en effektiv algoritm för att känna igen dessa flödesmönster i ett givet program och utnyttja dem för att ge goda avvägningar mellan analysprecision och hastighet. Våra experimentella resultat på standardriktmärke och real-world-program visar att en pekaranalys som delvis tillämpar kontextkänslighet, endast på de identifierade precisionskritiska metoderna, effektivt bevarar alla (98,8%) av precisionen i en högprecis konventionell sammanhangskänslig pekaranalys (2-objektkänslig med en kontextkänslig hög), med en betydande hastighetsökning (i genomsnitt 3.4X, och upp till 9.2X).
Värdeflödesmönster Zipper REF använder värdeflödesmönster som medför precisionsförluster i kontextokänslig analys för att identifiera metoder som kräver högre analysprecision.
Precision-guided context sensitivity for pointer analysis
{'venue': 'PACMPL', 'journal': None, 'mag_field_of_study': ['Computer Science']}