I detta dokument behandlas problemet med hur man tillämpar pekaranalys på en mängd olika kompilatortillämpningar. Vi lägger inte fram någon ny pekaranalys. Snarare fokuserar vi på att sätta två befintliga pekaranalyser, poäng-till-analys och kopplingsanalys, i arbete. Vi visar att det grundläggande problemet är att man måste kunna jämföra de minnesplatser som läses/skrivs via pekaringredioner, vid olika programpunkter, och man måste också kunna sammanfatta effekten av pekarreferenser över regioner i programmet. Det är enkelt att beräkna läs- och skrivuppsättningar för indikeringar som omfattar staplade pekare med hjälp av punkt-till-information. Men för heap-directed pekare visar vi att man måste införa begreppet ankarhandtag i anslutningsanalys och sedan uttrycka läs/skriv set till högen med avseende på dessa ankarhandtag. Baserat på läs/skriv set visar vi hur man utökar traditionella analyser som vanlig underuttryck eliminering, loop-invariant borttagning och plats-invariant borttagning för att inkludera pekarreferenser. Vi demonstrerar också användningen av vår information om mer avancerade tekniker såsom systemberoende testning och programförståelse. Vi har implementerat våra tekniker i vår McCAT C-kompilator, och vi visar exempel på att tillämpa våra metoder på en uppsättning pekarintensiva C-riktmärken, samt presentera konkreta empiriska data om de uppnådda förbättringarna.
Ghiya och Hendren visar empiriskt att deras poäng-till-analys och anslutningsanalys kan förbättra loop-invariant borttagning och gemensam underuttryck eliminering, array beroende testning, och program förståelse REF.
Putting pointer analysis to work
{'venue': "POPL '98", 'journal': None, 'mag_field_of_study': ['Computer Science']}