{"id":"https://openalex.org/W2980266434","doi":"https://doi.org/10.1145/3360558","title":"Program synthesis with algebraic library specifications","display_name":"Program synthesis with algebraic library specifications","publication_year":2019,"publication_date":"2019-10-10","ids":{"openalex":"https://openalex.org/W2980266434","doi":"https://doi.org/10.1145/3360558","mag":"2980266434"},"language":"en","primary_location":{"id":"doi:10.1145/3360558","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3360558","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3360558","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/3360558","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5080981819","display_name":"Benjamin Mariano","orcid":"https://orcid.org/0000-0003-2987-6260"},"institutions":[{"id":"https://openalex.org/I66946132","display_name":"University of Maryland, College Park","ror":"https://ror.org/047s2c258","country_code":"US","type":"education","lineage":["https://openalex.org/I66946132"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Benjamin Mariano","raw_affiliation_strings":["University of Maryland at College Park, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Maryland at College Park, USA","institution_ids":["https://openalex.org/I66946132"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5037991978","display_name":"Josh Reese","orcid":null},"institutions":[{"id":"https://openalex.org/I66946132","display_name":"University of Maryland, College Park","ror":"https://ror.org/047s2c258","country_code":"US","type":"education","lineage":["https://openalex.org/I66946132"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Josh Reese","raw_affiliation_strings":["University of Maryland at College Park, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Maryland at College Park, USA","institution_ids":["https://openalex.org/I66946132"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5101828020","display_name":"Siyuan Xu","orcid":"https://orcid.org/0000-0002-7999-9712"},"institutions":[{"id":"https://openalex.org/I219193219","display_name":"Purdue University West Lafayette","ror":"https://ror.org/02dqehb95","country_code":"US","type":"education","lineage":["https://openalex.org/I219193219"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Siyuan Xu","raw_affiliation_strings":["Purdue University, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Purdue University, USA","institution_ids":["https://openalex.org/I219193219"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5069411288","display_name":"ThanhVu Nguyen","orcid":"https://orcid.org/0000-0002-4255-4592"},"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":"ThanhVu Nguyen","raw_affiliation_strings":["University of Nebraska-Lincoln, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University of Nebraska-Lincoln, USA","institution_ids":["https://openalex.org/I114395901"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5041566154","display_name":"Xiaokang Qiu","orcid":"https://orcid.org/0000-0001-9476-7349"},"institutions":[{"id":"https://openalex.org/I219193219","display_name":"Purdue University West Lafayette","ror":"https://ror.org/02dqehb95","country_code":"US","type":"education","lineage":["https://openalex.org/I219193219"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Xiaokang Qiu","raw_affiliation_strings":["Purdue University, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Purdue University, USA","institution_ids":["https://openalex.org/I219193219"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5038702707","display_name":"Jeffrey S. Foster","orcid":"https://orcid.org/0000-0001-8043-1166"},"institutions":[{"id":"https://openalex.org/I121934306","display_name":"Tufts University","ror":"https://ror.org/05wvpxv85","country_code":"US","type":"education","lineage":["https://openalex.org/I121934306"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Jeffrey S. Foster","raw_affiliation_strings":["Tufts University, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Tufts University, USA","institution_ids":["https://openalex.org/I121934306"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5010786661","display_name":"Armando Solar-Lezama","orcid":"https://orcid.org/0000-0001-7604-8252"},"institutions":[{"id":"https://openalex.org/I63966007","display_name":"Massachusetts Institute of Technology","ror":"https://ror.org/042nb2s44","country_code":"US","type":"education","lineage":["https://openalex.org/I63966007"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Armando Solar-Lezama","raw_affiliation_strings":["Massachusetts Institute of Technology, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Massachusetts Institute of Technology, USA","institution_ids":["https://openalex.org/I63966007"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":5,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":1.3805,"has_fulltext":true,"cited_by_count":8,"citation_normalized_percentile":{"value":0.84205298,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":97},"biblio":{"volume":"3","issue":"OOPSLA","first_page":"1","last_page":"25"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9991999864578247,"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.9991999864578247,"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/T11241","display_name":"Advanced Malware Detection Techniques","score":0.9987999796867371,"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/T10126","display_name":"Logic, programming, and type systems","score":0.9983000159263611,"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.7817630767822266},{"id":"https://openalex.org/keywords/sketch","display_name":"Sketch","score":0.7564705610275269},{"id":"https://openalex.org/keywords/program-synthesis","display_name":"Program synthesis","score":0.6616235971450806},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5883224010467529},{"id":"https://openalex.org/keywords/key","display_name":"Key (lock)","score":0.5736655592918396},{"id":"https://openalex.org/keywords/implementation","display_name":"Implementation","score":0.5235447883605957},{"id":"https://openalex.org/keywords/algebraic-number","display_name":"Algebraic number","score":0.5226978063583374},{"id":"https://openalex.org/keywords/cryptography","display_name":"Cryptography","score":0.48368769884109497},{"id":"https://openalex.org/keywords/function","display_name":"Function (biology)","score":0.4738262891769409},{"id":"https://openalex.org/keywords/identity","display_name":"Identity (music)","score":0.47024741768836975},{"id":"https://openalex.org/keywords/encryption","display_name":"Encryption","score":0.43806061148643494},{"id":"https://openalex.org/keywords/abstract-data-type","display_name":"Abstract data type","score":0.4335387945175171},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.40603533387184143},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.19517996907234192},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.14558792114257812},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.09399819374084473}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7817630767822266},{"id":"https://openalex.org/C2779231336","wikidata":"https://www.wikidata.org/wiki/Q7534724","display_name":"Sketch","level":2,"score":0.7564705610275269},{"id":"https://openalex.org/C2776937632","wikidata":"https://www.wikidata.org/wiki/Q4117718","display_name":"Program synthesis","level":2,"score":0.6616235971450806},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5883224010467529},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.5736655592918396},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.5235447883605957},{"id":"https://openalex.org/C9376300","wikidata":"https://www.wikidata.org/wiki/Q168817","display_name":"Algebraic number","level":2,"score":0.5226978063583374},{"id":"https://openalex.org/C178489894","wikidata":"https://www.wikidata.org/wiki/Q8789","display_name":"Cryptography","level":2,"score":0.48368769884109497},{"id":"https://openalex.org/C14036430","wikidata":"https://www.wikidata.org/wiki/Q3736076","display_name":"Function (biology)","level":2,"score":0.4738262891769409},{"id":"https://openalex.org/C2778355321","wikidata":"https://www.wikidata.org/wiki/Q17079427","display_name":"Identity (music)","level":2,"score":0.47024741768836975},{"id":"https://openalex.org/C148730421","wikidata":"https://www.wikidata.org/wiki/Q141090","display_name":"Encryption","level":2,"score":0.43806061148643494},{"id":"https://openalex.org/C175971053","wikidata":"https://www.wikidata.org/wiki/Q827335","display_name":"Abstract data type","level":2,"score":0.4335387945175171},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.40603533387184143},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.19517996907234192},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.14558792114257812},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.09399819374084473},{"id":"https://openalex.org/C121332964","wikidata":"https://www.wikidata.org/wiki/Q413","display_name":"Physics","level":0,"score":0.0},{"id":"https://openalex.org/C24890656","wikidata":"https://www.wikidata.org/wiki/Q82811","display_name":"Acoustics","level":1,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C78458016","wikidata":"https://www.wikidata.org/wiki/Q840400","display_name":"Evolutionary biology","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}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3360558","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3360558","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3360558","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"},{"id":"pmh:oai:dspace.mit.edu:1721.1/133726","is_oa":true,"landing_page_url":"https://hdl.handle.net/1721.1/133726","pdf_url":null,"source":{"id":"https://openalex.org/S4306400425","display_name":"DSpace@MIT (Massachusetts Institute of Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I63966007","host_organization_name":"Massachusetts Institute of Technology","host_organization_lineage":["https://openalex.org/I63966007"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"ACM","raw_type":"http://purl.org/eprint/type/ConferencePaper"}],"best_oa_location":{"id":"doi:10.1145/3360558","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3360558","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3360558","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":[],"awards":[{"id":"https://openalex.org/G8046106562","display_name":null,"funder_award_id":"CCF-1139021","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2980266434.pdf","grobid_xml":"https://content.openalex.org/works/W2980266434.grobid-xml"},"referenced_works_count":48,"referenced_works":["https://openalex.org/W100631053","https://openalex.org/W197730338","https://openalex.org/W1545506277","https://openalex.org/W1552077729","https://openalex.org/W1964328999","https://openalex.org/W1964748769","https://openalex.org/W1968386045","https://openalex.org/W1972978214","https://openalex.org/W1974514467","https://openalex.org/W1979101142","https://openalex.org/W1993509980","https://openalex.org/W2012312630","https://openalex.org/W2048904015","https://openalex.org/W2057156093","https://openalex.org/W2059215200","https://openalex.org/W2059312600","https://openalex.org/W2129304537","https://openalex.org/W2139291574","https://openalex.org/W2162960800","https://openalex.org/W2167187192","https://openalex.org/W2170199760","https://openalex.org/W2171339035","https://openalex.org/W2294286398","https://openalex.org/W2323378191","https://openalex.org/W2385332115","https://openalex.org/W2468404022","https://openalex.org/W2486590439","https://openalex.org/W2507006525","https://openalex.org/W2561055248","https://openalex.org/W2625764229","https://openalex.org/W2731197199","https://openalex.org/W2735699069","https://openalex.org/W2736139474","https://openalex.org/W2748837517","https://openalex.org/W2777169505","https://openalex.org/W2899590559","https://openalex.org/W2904982962","https://openalex.org/W2910204069","https://openalex.org/W2912818154","https://openalex.org/W3003163926","https://openalex.org/W3123182306","https://openalex.org/W3192343331","https://openalex.org/W4213359168","https://openalex.org/W4232188856","https://openalex.org/W4242364663","https://openalex.org/W4245618235","https://openalex.org/W4246873936","https://openalex.org/W4251125603"],"related_works":["https://openalex.org/W2378994405","https://openalex.org/W2385974820","https://openalex.org/W2373478030","https://openalex.org/W2378679551","https://openalex.org/W3149739944","https://openalex.org/W2392363776","https://openalex.org/W2063051341","https://openalex.org/W1494563618","https://openalex.org/W2357022711","https://openalex.org/W1546471680"],"abstract_inverted_index":{"A":[0],"key":[1],"challenge":[2],"in":[3,36],"program":[4,70,117],"synthesis":[5,59,71,118,230],"is":[6,23,101],"synthesizing":[7],"programs":[8,165,232],"that":[9,31,73,166,180,195,223,233],"use":[10,167,234],"libraries,":[11],"which":[12,56,83],"most":[13],"real-world":[14],"software":[15],"does.":[16],"The":[17],"current":[18],"state":[19],"of":[20,55,89,190,204,231],"the":[21,33,98,102,115,149,188,205,216],"art":[22],"to":[24,77,162],"model":[25],"libraries":[26,168],"with":[27,80],"mock":[28],"library":[29,75,124],"implementations":[30],"perform":[32,198,212],"same":[34,99],"function":[35],"a":[37,68],"simpler":[38],"way.":[39],"However,":[40],"mocks":[41,201],"may":[42],"still":[43],"be":[44,78],"large":[45],"and":[46,48,133,142,146,154,175,211],"complex,":[47],"must":[49],"include":[50],"many":[51],"implementation":[52],"details,":[53],"both":[54],"could":[57],"limit":[58],"performance.":[60],"To":[61],"address":[62],"this":[63],"problem,":[64],"we":[65,221],"introduce":[66],"JLibSketch,":[67],"Java":[69],"tool":[72],"allows":[74],"behavior":[76],"described":[79],"algebraic":[81,181,196],"specifications,":[82],"are":[84,126,152],"rewrite":[85,106,134,150],"rules":[86,107,135,151],"for":[87,114],"sequences":[88],"method":[90],"calls,":[91],"e.g.,":[92],"encryption":[93],"followed":[94],"by":[95,108,128,159],"decryption":[96],"(with":[97],"key)":[100],"identity.":[103],"JLibSketch":[104,110,158,224],"implements":[105],"compiling":[109],"problems":[111,113],"into":[112],"Sketch":[116],"tool.":[119],"More":[120],"specifically,":[121],"after":[122],"compilation,":[123],"calls":[125],"represented":[127],"abstract":[129],"data":[130,172],"types":[131],"(ADTs),":[132],"manipulate":[136],"those":[137],"ADTs.":[138],"We":[139,156,178,192],"formalize":[140],"compilation":[141],"prove":[143],"it":[144,161],"sound":[145],"complete":[147],"if":[148],"ordered":[153],"non-unifiable.":[155],"evaluated":[157],"using":[160],"synthesize":[163],"nine":[164,206],"from":[169],"three":[170],"domains:":[171],"structures,":[173],"cryptography,":[174],"file":[176],"systems.":[177],"found":[179,194],"specifications":[182,197],"are,":[183],"on":[184,202,215],"average,":[185],"about":[186],"half":[187],"size":[189],"mocks.":[191],"also":[193],"better":[199],"than":[200],"seven":[203],"programs,":[207],"sometimes":[208],"significantly":[209],"so,":[210],"equally":[213],"well":[214],"last":[217],"two":[218],"programs.":[219],"Thus,":[220],"believe":[222],"takes":[225],"an":[226],"important":[227],"step":[228],"toward":[229],"libraries.":[235]},"counts_by_year":[{"year":2025,"cited_by_count":3},{"year":2024,"cited_by_count":1},{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":2},{"year":2021,"cited_by_count":1}],"updated_date":"2026-08-01T09:00:35.917206","created_date":"2025-10-10T00:00:00"}
