I detta dokument föreslås ett nytt tillvägagångssätt för att forma analysen: genom att använda ett lokalt resonemang om enskilda högplatser i stället för ett globalt resonemang om hela högars abstraktioner. Vi presenterar en inter-procedural form analysalgoritm för språk med destruktiva uppdateringar. Nyckelfunktionen är en ny minnesabstraction som skiljer sig från traditionella abstraktioner på två sätt. Först bygger vi formen abstraktion och analys på toppen av en pekaranalys. För det andra sönderdela vi formen abstraktion till en uppsättning oberoende konfigurationer, som var och en karakteriserar en enda hög plats. Vårt tillvägagångssätt: 1) leder till enklare algoritmspecifikationer, på grund av lokala resonemang om den enda platsen; 2) leder till effektiva algoritmer, på grund av den mindre granularitet av abstraktionen; och 3) gör det lättare att utveckla kontextkänsliga, efterfrågestyrda, och inkrementella formanalyser. Vi visar också att analysen kan användas för att möjliggöra statisk upptäckt av minnesfel i program med explicit deallocation. Vi har byggt en prototyp verktyg som upptäcker minnesläckage och kommer åt genom dingel pekare i C-program. Experimenten visar att analysen är tillräckligt exakt för att upptäcka fel med låg falsk positiv frekvens; och är tillräckligt lätt för att skala till större program. För en uppsättning av tre populära C-program, verktyget har analyserat ca 70K rader kod på mindre än 2 minuter och har producerat 97 varningar, varav 38 var faktiska fel.
Hackett och Rugina REF beskriver en metod som använder lokalt resonemang om enskilda högplatser, snarare än globalt resonemang om hela högars abstraktioner.
Region-based shape analysis with tracked locations
{'venue': "POPL '05", 'journal': None, 'mag_field_of_study': ['Computer Science']}