Abstrakt. Vi beskriver en ny program terminering analys utformad för att hantera imperativ program vars avslutande beror på mutationen av programmets hög. Vi beskriver först hur en abstrakt tolkning kan användas för att konstruera ett begränsat antal relationer som, om var och en är välgrundad, innebär uppsägning. Vi ger sedan en abstrakt tolkning baserad på separation logik formler som spårar djupet av bitar av högar. Slutligen kombinerar vi dessa två tekniker för att producera en automatisk avslutningsprovare. Vi visar att analysen kan bevisa avslutandet av loopar extraherade från Windows enhetsdrivrutiner som inte kunde bevisas avsluta tidigare på andra sätt; vi diskuterar också en tidigare okänd bugg som hittats med analysen.
Ett annat alternativ är att använda en abstrakt tolkning baserad på separation logik formler som spårar djupet av bitar av högar på liknande sätt som REF.
Automatic termination proofs for programs with shape-shifting heaps
{'venue': 'IN 18TH CAV', 'journal': None, 'mag_field_of_study': ['Computer Science']}