Korrupta datastrukturer är en viktig orsak till oacceptabelt programgenomförande. Reparation av datastruktur (som eliminerar inkonsekvenser genom att uppdatera korrupta datastrukturer för att anpassa sig till konsekventa begränsningar) lovar att göra det möjligt för många program att fortsätta att köra acceptabelt inför annars dödliga datastruktur korruption fel. En nyckelfråga är att få en exakt och heltäckande specifikation av datastrukturens enhetlighet. Vi presenterar en ny teknik för att erhålla specifikationer för datastrukturkonsistens för datastrukturreparation. Istället för att kräva att utvecklaren ska generera sådana specifikationer manuellt, genererar vår strategi automatiskt kandidatdata struktur konsistens egenskaper med hjälp av Daikon invariant detektionsverktyget. Utvecklaren granskar sedan dessa egenskaper, potentiellt avvisa eller generalisera alltför specifika egenskaper för att få en specifikation lämplig för automatisk verkställighet via datastruktur reparation. Vi har genomfört detta tillvägagångssätt och tillämpat det på tre betydande referensprogram: CTAS (ett flygkontrollsystem), BIND (en allmänt använd Internetnamnserver) och Freeciv (ett interaktivt spel). Våra resultat indikerar att (1) automatisk begränsningsgenerering producerar begränsningar som gör det möjligt för program att utföra framgångsrikt genom datastrukturskonsistensfel, (2) jämfört med manuell specifikation, automatisk generering kan producera mer omfattande uppsättningar av begränsningar som täcker ett större utbud av datastrukturskonsistensegenskaper, och (3) att granska egenskaperna är relativt enkelt och kräver betydligt mindre programmerare ansträngning än manuell generering, främst eftersom det minskar behovet av att undersöka programtexten för att förstå dess funktion och extrahera relevanta konsekventa begränsningar. Dessutom, när utvärderas av en fientlig tredje part "Red Team" kontrakterade för att utvärdera effektiviteten av tekniken, våra datastruktur slutsatser och genomförande verktyg framgångsrikt förhindrade flera annars dödliga attacker.
Det är också möjligt att använda data struktur reparation för att genomdriva inlärda data struktur konsistens egenskaper REF.
Inference and enforcement of data structure consistency specifications
{'venue': "ISSTA '06", 'journal': None, 'mag_field_of_study': ['Computer Science']}