{"id":"https://openalex.org/W6964130907","doi":"https://doi.org/10.25560/91147","title":"Enhancing dynamic symbolic execution via loop summarisation, segmented memory and pending constraints","display_name":"Enhancing dynamic symbolic execution via loop summarisation, segmented memory and pending constraints","publication_year":2020,"publication_date":"2020-12-01","ids":{"openalex":"https://openalex.org/W6964130907","doi":"https://doi.org/10.25560/91147"},"language":"en","primary_location":{"id":"pmh:oai:spiral.imperial.ac.uk:10044/1/91147","is_oa":false,"landing_page_url":"http://hdl.handle.net/10044/1/91147","pdf_url":null,"source":{"id":"https://openalex.org/S4306401396","display_name":"Spiral (Imperial College London)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I47508984","host_organization_name":"Imperial College London","host_organization_lineage":["https://openalex.org/I47508984"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Thesis or dissertation"},"type":"article","indexed_in":["datacite"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://doi.org/10.25560/91147","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":null,"display_name":"Kapus, Timotej","orcid":null},"institutions":[{"id":"https://openalex.org/I47508984","display_name":"Imperial College London","ror":"https://ror.org/041kmwe10","country_code":"GB","type":"education","lineage":["https://openalex.org/I47508984"]}],"countries":["GB"],"is_corresponding":true,"raw_author_name":"Kapus, Timotej","raw_affiliation_strings":["Imperial College London"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Imperial College London","institution_ids":["https://openalex.org/I47508984"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I47508984"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":{"value":0.5009985,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":true,"primary_topic":{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.5153999924659729,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.5153999924659729,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.1542000025510788,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.04769999906420708,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/symbolic-execution","display_name":"Symbolic execution","score":0.861299991607666},{"id":"https://openalex.org/keywords/pointer","display_name":"Pointer (user interface)","score":0.6473000049591064},{"id":"https://openalex.org/keywords/satisfiability-modulo-theories","display_name":"Satisfiability modulo theories","score":0.5855000019073486},{"id":"https://openalex.org/keywords/alias","display_name":"Alias","score":0.5365999937057495},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.46160000562667847},{"id":"https://openalex.org/keywords/scalability","display_name":"Scalability","score":0.4147000014781952},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.4074999988079071},{"id":"https://openalex.org/keywords/memory-model","display_name":"Memory model","score":0.4009999930858612},{"id":"https://openalex.org/keywords/cache","display_name":"Cache","score":0.3986000120639801},{"id":"https://openalex.org/keywords/pointer-analysis","display_name":"Pointer analysis","score":0.3785000145435333}],"concepts":[{"id":"https://openalex.org/C2779639559","wikidata":"https://www.wikidata.org/wiki/Q7661178","display_name":"Symbolic execution","level":3,"score":0.861299991607666},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8428999781608582},{"id":"https://openalex.org/C150202949","wikidata":"https://www.wikidata.org/wiki/Q107602","display_name":"Pointer (user interface)","level":2,"score":0.6473000049591064},{"id":"https://openalex.org/C164155591","wikidata":"https://www.wikidata.org/wiki/Q2067766","display_name":"Satisfiability modulo theories","level":2,"score":0.5855000019073486},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5457000136375427},{"id":"https://openalex.org/C46681722","wikidata":"https://www.wikidata.org/wiki/Q4725589","display_name":"Alias","level":2,"score":0.5365999937057495},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.46160000562667847},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.42399999499320984},{"id":"https://openalex.org/C48044578","wikidata":"https://www.wikidata.org/wiki/Q727490","display_name":"Scalability","level":2,"score":0.4147000014781952},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.4074999988079071},{"id":"https://openalex.org/C12186640","wikidata":"https://www.wikidata.org/wiki/Q6815743","display_name":"Memory model","level":3,"score":0.4009999930858612},{"id":"https://openalex.org/C115537543","wikidata":"https://www.wikidata.org/wiki/Q165596","display_name":"Cache","level":2,"score":0.3986000120639801},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.38119998574256897},{"id":"https://openalex.org/C7263679","wikidata":"https://www.wikidata.org/wiki/Q5978076","display_name":"Pointer analysis","level":3,"score":0.3785000145435333},{"id":"https://openalex.org/C65620979","wikidata":"https://www.wikidata.org/wiki/Q7661176","display_name":"Symbolic data analysis","level":2,"score":0.3481000065803528},{"id":"https://openalex.org/C1306188","wikidata":"https://www.wikidata.org/wiki/Q4060687","display_name":"Nested loop join","level":2,"score":0.3441999852657318},{"id":"https://openalex.org/C23123167","wikidata":"https://www.wikidata.org/wiki/Q7661193","display_name":"Symbolic trajectory evaluation","level":3,"score":0.33719998598098755},{"id":"https://openalex.org/C2778770139","wikidata":"https://www.wikidata.org/wiki/Q1966904","display_name":"Solver","level":2,"score":0.3310000002384186},{"id":"https://openalex.org/C199519371","wikidata":"https://www.wikidata.org/wiki/Q942695","display_name":"Source lines of code","level":3,"score":0.32100000977516174},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.3149999976158142},{"id":"https://openalex.org/C110251889","wikidata":"https://www.wikidata.org/wiki/Q1569697","display_name":"Model checking","level":2,"score":0.3091000020503998},{"id":"https://openalex.org/C118702147","wikidata":"https://www.wikidata.org/wiki/Q189396","display_name":"Dynamic random-access memory","level":3,"score":0.304500013589859},{"id":"https://openalex.org/C11219265","wikidata":"https://www.wikidata.org/wiki/Q5158734","display_name":"Concolic testing","level":4,"score":0.29670000076293945},{"id":"https://openalex.org/C28180684","wikidata":"https://www.wikidata.org/wiki/Q4080983","display_name":"Memory safety","level":3,"score":0.287200003862381},{"id":"https://openalex.org/C152752567","wikidata":"https://www.wikidata.org/wiki/Q116877","display_name":"Code refactoring","level":3,"score":0.28540000319480896},{"id":"https://openalex.org/C2781020372","wikidata":"https://www.wikidata.org/wiki/Q533093","display_name":"On the fly","level":2,"score":0.27880001068115234},{"id":"https://openalex.org/C119907115","wikidata":"https://www.wikidata.org/wiki/Q6815725","display_name":"Memory errors","level":3,"score":0.27410000562667847},{"id":"https://openalex.org/C1009929","wikidata":"https://www.wikidata.org/wiki/Q179550","display_name":"Software bug","level":3,"score":0.26260000467300415},{"id":"https://openalex.org/C149635348","wikidata":"https://www.wikidata.org/wiki/Q193040","display_name":"Embedded system","level":1,"score":0.26080000400543213},{"id":"https://openalex.org/C189783530","wikidata":"https://www.wikidata.org/wiki/Q352090","display_name":"CPU cache","level":3,"score":0.258899986743927},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.25609999895095825},{"id":"https://openalex.org/C34339311","wikidata":"https://www.wikidata.org/wiki/Q1050390","display_name":"C dynamic memory allocation","level":4,"score":0.2540999948978424}],"mesh":[],"locations_count":2,"locations":[{"id":"pmh:oai:spiral.imperial.ac.uk:10044/1/91147","is_oa":false,"landing_page_url":"http://hdl.handle.net/10044/1/91147","pdf_url":null,"source":{"id":"https://openalex.org/S4306401396","display_name":"Spiral (Imperial College London)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I47508984","host_organization_name":"Imperial College London","host_organization_lineage":["https://openalex.org/I47508984"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"Thesis or dissertation"},{"id":"doi:10.25560/91147","is_oa":true,"landing_page_url":"https://doi.org/10.25560/91147","pdf_url":null,"source":{"id":"https://openalex.org/S7407050757","display_name":"Imperial College Research Computing Service Data Repository","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":null,"raw_source_name":null,"raw_type":"article-journal"}],"best_oa_location":{"id":"doi:10.25560/91147","is_oa":true,"landing_page_url":"https://doi.org/10.25560/91147","pdf_url":null,"source":{"id":"https://openalex.org/S7407050757","display_name":"Imperial College Research Computing Service Data Repository","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"article-journal"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":0,"referenced_works":[],"related_works":[],"abstract_inverted_index":{"Software":[0],"has":[1],"become":[2],"ubiquitous":[3],"and":[4,127,197,199,206,270,272,282],"its":[5],"impact":[6,34],"is":[7,13,183,245],"still":[8],"increasing.":[9],"The":[10,240],"more":[11,16],"software":[12,45],"created,":[14],"the":[15,257],"bugs":[17,27],"get":[18],"introduced":[19],"into":[20,152],"it.":[21],"With":[22],"software\u2019s":[23],"increasing":[24],"omnipresence,":[25],"these":[26],"have":[28],"a":[29,51,77,84,107,134,142,167,173],"high":[30],"probability":[31],"of":[32,86,101,109,218,242],"negative":[33],"on":[35,106,191,264],"everyday":[36],"life.":[37],"There":[38],"are":[39,227,250],"many":[40],"efforts":[41],"aimed":[42],"at":[43],"improving":[44],"correctness,":[46],"among":[47],"which":[48,214],"symbolic":[49,72,121,161,180,219],"execution,":[50,122],"program":[52,61],"analysis":[53],"technique":[54,135,263],"that":[55,136,159,226],"aims":[56],"to":[57,82,164,179,230,252],"systematically":[58],"explore":[59],"all":[60],"paths.":[62],"In":[63,146],"this":[64,147],"thesis":[65],"we":[66,104,149,210],"present":[67,76,211],"three":[68],"techniques":[69],"for":[70,279],"enhancing":[71],"execution.":[73],"We":[74,131,185,260],"first":[75],"counterexample-guided":[78],"inductive":[79],"synthesis":[80],"approach":[81,96],"summarise":[83],"class":[85],"loops,":[87],"called":[88],"memoryless":[89,102],"loops":[90,103],"using":[91,141,154,256],"standard":[92],"library":[93],"functions.":[94],"Our":[95],"can":[97,115,215,275],"summarize":[98],"two":[99],"thirds":[100],"gathered":[105],"set":[108],"open-source":[110],"programs.":[111],"These":[112],"loop":[113],"summaries":[114],"be":[116,231,253],"used":[117],"to:":[118],"1)":[119],"enhance":[120,216],"2)":[123],"optimise":[124],"native":[125],"code":[126],"3)":[128],"refactor":[129],"code.":[130],"then":[132],"propose":[133],"avoids":[137],"expensive":[138],"forking":[139,177],"by":[140,221],"segmented":[143,188],"memory":[144,151,174,189,207],"model.":[145],"model,":[148],"split":[150],"segments":[153],"pointer":[155,162,181],"alias":[156],"analysis,":[157],"so":[158],"each":[160],"refers":[163],"objects":[165],"in":[166,172,203],"single":[168],"segment.":[169],"This":[170],"results":[171],"model":[175,190],"where":[176],"due":[178],"dereferences":[182],"reduced.":[184],"evaluate":[186,261],"our":[187,262],"benchmarks":[192],"such":[193],"as":[194],"SQLite,":[195],"m4":[196],"make":[198,269],"observe":[200],"significant":[201],"decreases":[202],"execution":[204,220,224,241],"time":[205],"usage.":[208],"Finally,":[209],"pending":[212],"constraints,":[213],"scalability":[217],"aggressively":[222],"prioritising":[223],"paths":[225,244,249],"already":[228],"known":[229,251],"feasible":[232,254],"either":[233],"via":[234],"cached":[235],"solver":[236],"solutions":[237],"or":[238],"seeds.":[239],"other":[243],"deferred":[246],"until":[247],"no":[248],"without":[255],"constraint":[258],"solver.":[259],"nine":[265],"applications,":[266],"including":[267],"SQLite3,":[268],"tcpdump,":[271],"show":[273],"it":[274],"achieve":[276],"higher":[277],"coverage":[278],"both":[280],"seeded":[281],"non-seeded":[283],"exploration.":[284]},"counts_by_year":[],"updated_date":"2025-11-06T06:51:31.235846","created_date":"2025-10-10T00:00:00"}
