{"id":"https://openalex.org/W3205892009","doi":"https://doi.org/10.1145/3485515","title":"Dynaplex: analyzing program complexity using dynamically inferred recurrence relations","display_name":"Dynaplex: analyzing program complexity using dynamically inferred recurrence relations","publication_year":2021,"publication_date":"2021-10-15","ids":{"openalex":"https://openalex.org/W3205892009","doi":"https://doi.org/10.1145/3485515","mag":"3205892009"},"language":"en","primary_location":{"id":"doi:10.1145/3485515","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3485515","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3485515","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3485515","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5004815005","display_name":"Didier Ishimwe","orcid":"https://orcid.org/0000-0001-8470-3835"},"institutions":[{"id":"https://openalex.org/I114395901","display_name":"University of Nebraska\u2013Lincoln","ror":"https://ror.org/043mer456","country_code":"US","type":"education","lineage":["https://openalex.org/I114395901"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Didier Ishimwe","raw_affiliation_strings":["University of Nebraska-Lincoln, USA"],"raw_orcid":"https://orcid.org/0000-0001-8470-3835","affiliations":[{"raw_affiliation_string":"University of Nebraska-Lincoln, USA","institution_ids":["https://openalex.org/I114395901"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5059181444","display_name":"KimHao Nguyen","orcid":"https://orcid.org/0000-0002-6599-2528"},"institutions":[{"id":"https://openalex.org/I114395901","display_name":"University of Nebraska\u2013Lincoln","ror":"https://ror.org/043mer456","country_code":"US","type":"education","lineage":["https://openalex.org/I114395901"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"KimHao Nguyen","raw_affiliation_strings":["University of Nebraska-Lincoln, USA"],"raw_orcid":"https://orcid.org/0000-0002-6599-2528","affiliations":[{"raw_affiliation_string":"University of Nebraska-Lincoln, USA","institution_ids":["https://openalex.org/I114395901"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5069411288","display_name":"ThanhVu Nguyen","orcid":"https://orcid.org/0000-0002-4255-4592"},"institutions":[{"id":"https://openalex.org/I162714631","display_name":"George Mason University","ror":"https://ror.org/02jqj7156","country_code":"US","type":"education","lineage":["https://openalex.org/I162714631"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"ThanhVu Nguyen","raw_affiliation_strings":["George Mason University, USA"],"raw_orcid":"https://orcid.org/0000-0002-4255-4592","affiliations":[{"raw_affiliation_string":"George Mason University, USA","institution_ids":["https://openalex.org/I162714631"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5004815005"],"corresponding_institution_ids":["https://openalex.org/I114395901"],"apc_list":null,"apc_paid":null,"fwci":1.2349,"has_fulltext":true,"cited_by_count":15,"citation_normalized_percentile":{"value":0.79765573,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":94,"max":99},"biblio":{"volume":"5","issue":"OOPSLA","first_page":"1","last_page":"23"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11241","display_name":"Advanced Malware Detection Techniques","score":0.9979000091552734,"subfield":{"id":"https://openalex.org/subfields/1711","display_name":"Signal Processing"},"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/T11241","display_name":"Advanced Malware Detection Techniques","score":0.9979000091552734,"subfield":{"id":"https://openalex.org/subfields/1711","display_name":"Signal Processing"},"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9976999759674072,"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/T11424","display_name":"Security and Verification in Computing","score":0.9976000189781189,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.6759127378463745},{"id":"https://openalex.org/keywords/recurrence-relation","display_name":"Recurrence relation","score":0.5678738951683044},{"id":"https://openalex.org/keywords/time-complexity","display_name":"Time complexity","score":0.5541889071464539},{"id":"https://openalex.org/keywords/simple","display_name":"Simple (philosophy)","score":0.5010552406311035},{"id":"https://openalex.org/keywords/computational-complexity-theory","display_name":"Computational complexity theory","score":0.4916878342628479},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.48876094818115234},{"id":"https://openalex.org/keywords/polynomial","display_name":"Polynomial","score":0.4842345714569092},{"id":"https://openalex.org/keywords/matching","display_name":"Matching (statistics)","score":0.47670382261276245},{"id":"https://openalex.org/keywords/multiplication","display_name":"Multiplication (music)","score":0.4460936188697815},{"id":"https://openalex.org/keywords/complexity-class","display_name":"Complexity class","score":0.4285995662212372},{"id":"https://openalex.org/keywords/pattern-matching","display_name":"Pattern matching","score":0.41013988852500916},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.33063602447509766},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.23331686854362488},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.19320270419120789},{"id":"https://openalex.org/keywords/combinatorics","display_name":"Combinatorics","score":0.16302144527435303}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6759127378463745},{"id":"https://openalex.org/C201292218","wikidata":"https://www.wikidata.org/wiki/Q740970","display_name":"Recurrence relation","level":2,"score":0.5678738951683044},{"id":"https://openalex.org/C311688","wikidata":"https://www.wikidata.org/wiki/Q2393193","display_name":"Time complexity","level":2,"score":0.5541889071464539},{"id":"https://openalex.org/C2780586882","wikidata":"https://www.wikidata.org/wiki/Q7520643","display_name":"Simple (philosophy)","level":2,"score":0.5010552406311035},{"id":"https://openalex.org/C179799912","wikidata":"https://www.wikidata.org/wiki/Q205084","display_name":"Computational complexity theory","level":2,"score":0.4916878342628479},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.48876094818115234},{"id":"https://openalex.org/C90119067","wikidata":"https://www.wikidata.org/wiki/Q43260","display_name":"Polynomial","level":2,"score":0.4842345714569092},{"id":"https://openalex.org/C165064840","wikidata":"https://www.wikidata.org/wiki/Q1321061","display_name":"Matching (statistics)","level":2,"score":0.47670382261276245},{"id":"https://openalex.org/C2780595030","wikidata":"https://www.wikidata.org/wiki/Q3860309","display_name":"Multiplication (music)","level":2,"score":0.4460936188697815},{"id":"https://openalex.org/C39637292","wikidata":"https://www.wikidata.org/wiki/Q908207","display_name":"Complexity class","level":3,"score":0.4285995662212372},{"id":"https://openalex.org/C68859911","wikidata":"https://www.wikidata.org/wiki/Q1503724","display_name":"Pattern matching","level":2,"score":0.41013988852500916},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.33063602447509766},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.23331686854362488},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.19320270419120789},{"id":"https://openalex.org/C114614502","wikidata":"https://www.wikidata.org/wiki/Q76592","display_name":"Combinatorics","level":1,"score":0.16302144527435303},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0},{"id":"https://openalex.org/C111472728","wikidata":"https://www.wikidata.org/wiki/Q9471","display_name":"Epistemology","level":1,"score":0.0},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0},{"id":"https://openalex.org/C105795698","wikidata":"https://www.wikidata.org/wiki/Q12483","display_name":"Statistics","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3485515","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3485515","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3485515","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1145/3485515","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3485515","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3485515","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/16","score":0.6800000071525574,"display_name":"Peace, Justice and strong institutions"}],"awards":[{"id":"https://openalex.org/G2198668877","display_name":null,"funder_award_id":"W911NF-19-1-0054","funder_id":"https://openalex.org/F4320338281","funder_display_name":"Army Research Office"},{"id":"https://openalex.org/G2279853913","display_name":null,"funder_award_id":"W911NF-19-1","funder_id":"https://openalex.org/F4320338281","funder_display_name":"Army Research Office"},{"id":"https://openalex.org/G3299552080","display_name":null,"funder_award_id":"1948536, 2107035","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G3893981977","display_name":"Collaborative Research: SHF: Medium: Ensuring Safety and Liveness of Modern Systems through Dynamic Temporal Analysis","funder_award_id":"2107035","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G608057831","display_name":null,"funder_award_id":"W911NF-19","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G691521780","display_name":"CRII: SHF: Analyzing the Linux's KBuild Makefile","funder_award_id":"1948536","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G7452299184","display_name":null,"funder_award_id":"W911NF","funder_id":"https://openalex.org/F4320338281","funder_display_name":"Army Research Office"},{"id":"https://openalex.org/G8415477955","display_name":null,"funder_award_id":"W911NF-19","funder_id":"https://openalex.org/F4320338281","funder_display_name":"Army Research Office"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"},{"id":"https://openalex.org/F4320338281","display_name":"Army Research Office","ror":"https://ror.org/05epdh915"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W3205892009.pdf","grobid_xml":"https://content.openalex.org/works/W3205892009.grobid-xml"},"referenced_works_count":70,"referenced_works":["https://openalex.org/W360440500","https://openalex.org/W1230660382","https://openalex.org/W1492171827","https://openalex.org/W1514171102","https://openalex.org/W1563352283","https://openalex.org/W1590648473","https://openalex.org/W1599625180","https://openalex.org/W1636902686","https://openalex.org/W1980177715","https://openalex.org/W2068055184","https://openalex.org/W2076833152","https://openalex.org/W2089139117","https://openalex.org/W2098278465","https://openalex.org/W2107588378","https://openalex.org/W2109863363","https://openalex.org/W2110908283","https://openalex.org/W2120647256","https://openalex.org/W2129695855","https://openalex.org/W2137062096","https://openalex.org/W2144433126","https://openalex.org/W2159586681","https://openalex.org/W2159756689","https://openalex.org/W2163661306","https://openalex.org/W2242858339","https://openalex.org/W2293085049","https://openalex.org/W2295903414","https://openalex.org/W2398327122","https://openalex.org/W2461846980","https://openalex.org/W2493946278","https://openalex.org/W2522017073","https://openalex.org/W2565511473","https://openalex.org/W2577171054","https://openalex.org/W2741361950","https://openalex.org/W2752340395","https://openalex.org/W2752885492","https://openalex.org/W2763435855","https://openalex.org/W2767715425","https://openalex.org/W2865298191","https://openalex.org/W2899568449","https://openalex.org/W2900015620","https://openalex.org/W2904117297","https://openalex.org/W2907655115","https://openalex.org/W2949343847","https://openalex.org/W2951912990","https://openalex.org/W2955879452","https://openalex.org/W2980978064","https://openalex.org/W2997024788","https://openalex.org/W2998897849","https://openalex.org/W3009765366","https://openalex.org/W3012896203","https://openalex.org/W3027678148","https://openalex.org/W3033229382","https://openalex.org/W3035965352","https://openalex.org/W3037295748","https://openalex.org/W3037496635","https://openalex.org/W3095876555","https://openalex.org/W3099878876","https://openalex.org/W3101726082","https://openalex.org/W3106010854","https://openalex.org/W3108936444","https://openalex.org/W3140308147","https://openalex.org/W3183881215","https://openalex.org/W3201110005","https://openalex.org/W4237087841","https://openalex.org/W4240835555","https://openalex.org/W4249819097","https://openalex.org/W4252150051","https://openalex.org/W4254838945","https://openalex.org/W4256386389","https://openalex.org/W6893735640"],"related_works":["https://openalex.org/W2080805953","https://openalex.org/W2086025566","https://openalex.org/W1702487489","https://openalex.org/W2132910148","https://openalex.org/W2042051386","https://openalex.org/W270168689","https://openalex.org/W113209803","https://openalex.org/W3003471035","https://openalex.org/W2178588595","https://openalex.org/W1629505938"],"abstract_inverted_index":{"Being":[0],"able":[1],"to":[2,53,68,93],"detect":[3],"program":[4,40],"runtime":[5],"complexity":[6,34,59,82,119],"is":[7],"useful":[8],"in":[9],"many":[10],"tasks":[11],"(e.g.,":[12,121],"checking":[13],"expected":[14],"performance":[15],"and":[16,47,80,106,138],"identifying":[17],"potential":[18],"security":[19],"vulnerabilities).":[20],"In":[21],"this":[22],"work,":[23],"we":[24,43],"introduce":[25],"a":[26,87],"new":[27],"dynamic":[28],"approach":[29,65],"for":[30,128,134,144],"inferring":[31],"the":[32,58,62],"asymptotic":[33],"bounds":[35,60,120],"of":[36,61,136],"recursive":[37,108],"programs.":[38],"From":[39],"execution":[41,99],"traces,":[42],"learn":[44,114],"recurrence":[45,72,96],"relations":[46,73,97,116],"solve":[48],"them":[49],"using":[50],"pattern":[51],"matching":[52],"obtain":[54],"closed-form":[55],"solutions":[56],"representing":[57],"program.":[63],"This":[64],"allows":[66],"us":[67],"efficiently":[69],"infer":[70],"simple":[71],"that":[74,89,111],"represent":[75],"nontrivial,":[76],"potentially":[77],"nonlinear":[78],"polynomial":[79],"non-polynomial,":[81],"bounds.":[83],"We":[84],"present":[85],"Dynaplex,":[86],"tool":[88],"implements":[90],"these":[91],"ideas":[92],"automatically":[94],"generate":[95],"from":[98],"traces.":[100],"Our":[101],"preliminary":[102],"results":[103],"on":[104],"popular":[105],"challenging":[107],"programs":[109],"show":[110],"Dynaplex":[112],"can":[113],"precise":[115],"capturing":[117],"worst-case":[118],"O":[122,130,139],"(":[123,140],"n":[124,126,132,141],"log":[125],")":[127,133,143],"mergesort,":[129],"(2":[131],"Tower":[135],"Hanoi":[137],"1.58":[142],"Karatsuba\u2019s":[145],"multiplication":[146],"algorithm).":[147]},"counts_by_year":[{"year":2026,"cited_by_count":2},{"year":2025,"cited_by_count":5},{"year":2024,"cited_by_count":4},{"year":2023,"cited_by_count":2},{"year":2022,"cited_by_count":2}],"updated_date":"2026-05-05T08:41:31.759640","created_date":"2025-10-10T00:00:00"}
