Abstrakt. Vi beskriver Deskcheck, en parametrisk statisk analysator som kan etablera egenskaper hos program som manipulerar dynamiskt tilldelade minne, matriser och heltal. Deskcheck kan verifiera kvantifierade invarianter över blandade abstrakta domäner, t.ex., högar och numeriska domäner. Dessa domäner behöver endast mindre tillägg för att fungera med vårt ramverk för domänkombinationer. Den teknik som används för att hantera kommunikationen mellan domäner påminner om Nelson-Oppen tekniken för att kombinera beslutsförfaranden, genom att de två domänerna delar ett gemensamt predikat språk för att utbyta gemensamma fakta. Men medan Nelson-Oppen-tekniken är begränsad till ett gemensamt predikatspråk för delade jämlikheter, använder den teknik som beskrivs i detta papper ett gemensamt predikatspråk på vilket delade fakta kan kvantifieras predikat uttryckta i första ordningens logik med transitiv stängning. Vi förklarar hur vi använde Deskcheck för att fastställa minnessäkerheten för webbserverns cachedatastruktur, som använder länkade listor, en hashtabell och referensräkning i en enda sammansatt datastruktur. Vårt arbete behandlar några av de mest komplexa datastrukturinvarianter som beaktas i formanalyslitteraturen.
Den statiska kontrollören DESKCHECK REF kombinerar TVLA och numeriska domäner.
Statically Inferring Complex Heap, Array, and Numeric Invariants
{'venue': 'SAS', 'journal': None, 'mag_field_of_study': ['Computer Science']}