Detta dokument introducerar memoized symbolisk exekvering (Momoise), en ny metod för mer effektiv tillämpning av framåt symbolisk exekvering, som är en välstuderad teknik för systematisk utforskning av programbeteenden baserade på avgränsade utförande vägar. Vår nyckelinsikt är att tillämpningen av symbolisk körning ofta kräver flera på varandra följande körningar av tekniken på till stor del liknande underliggande problem, t.ex. kör det en gång för att kontrollera ett program för att hitta ett fel, fixa felet, och kör det igen för att kontrollera det ändrade programmet. Memoise introducerar en trie-baserad datastruktur som lagrar de viktigaste elementen i en körning av symbolisk körning. Underhåll av trien under på varandra följande körningar gör det möjligt att återanvända tidigare beräknade resultat av symboliskt utförande utan att behöva göra om dem som traditionellt görs. Experiment som använder vår prototypimplementering av Memoise visar vilka fördelar den har i olika standardscenarier för att använda symbolisk exekvering, t.ex. med iterativ fördjupning av prospekteringsdjupet, för att utföra regressionsanalys eller för att förbättra täckningen med hjälp av heuristik.
Yang m.fl. REF föreslog Memoise, en trie-baserad datastruktur för att cache viktiga delar av symbolisk körning, så att på varandra följande framåt symbolisk körning kan återanvända tidigare beräknade resultat.
Memoized symbolic execution
{'venue': 'ISSTA 2012', 'journal': None, 'mag_field_of_study': ['Computer Science']}