{"id":"https://openalex.org/W4307884541","doi":"https://doi.org/10.1145/3563310","title":"Specification-guided component-based synthesis from effectful libraries","display_name":"Specification-guided component-based synthesis from effectful libraries","publication_year":2022,"publication_date":"2022-10-31","ids":{"openalex":"https://openalex.org/W4307884541","doi":"https://doi.org/10.1145/3563310"},"language":"en","primary_location":{"id":"doi:10.1145/3563310","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3563310","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3563310","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/3563310","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5100660164","display_name":"Ashish Mishra","orcid":"https://orcid.org/0000-0002-0513-3107"},"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":true,"raw_author_name":"Ashish Mishra","raw_affiliation_strings":["Purdue University, USA"],"raw_orcid":"https://orcid.org/0000-0002-0513-3107","affiliations":[{"raw_affiliation_string":"Purdue University, USA","institution_ids":["https://openalex.org/I219193219"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5034957233","display_name":"Suresh Jagannathan","orcid":"https://orcid.org/0000-0001-6871-2424"},"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":"Suresh Jagannathan","raw_affiliation_strings":["Purdue University, USA"],"raw_orcid":"https://orcid.org/0000-0001-6871-2424","affiliations":[{"raw_affiliation_string":"Purdue University, USA","institution_ids":["https://openalex.org/I219193219"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5100660164"],"corresponding_institution_ids":["https://openalex.org/I219193219"],"apc_list":null,"apc_paid":null,"fwci":1.9142,"has_fulltext":true,"cited_by_count":6,"citation_normalized_percentile":{"value":0.89116069,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":98},"biblio":{"volume":"6","issue":"OOPSLA2","first_page":"616","last_page":"645"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9994999766349792,"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"}},"topics":[{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9994999766349792,"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"}},{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9984999895095825,"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/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9973999857902527,"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/correctness","display_name":"Correctness","score":0.7911031246185303},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7842395305633545},{"id":"https://openalex.org/keywords/component","display_name":"Component (thermodynamics)","score":0.6811702847480774},{"id":"https://openalex.org/keywords/context","display_name":"Context (archaeology)","score":0.6660122275352478},{"id":"https://openalex.org/keywords/program-synthesis","display_name":"Program synthesis","score":0.6564217209815979},{"id":"https://openalex.org/keywords/scalability","display_name":"Scalability","score":0.6471538543701172},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.528401255607605},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.4920613169670105},{"id":"https://openalex.org/keywords/process","display_name":"Process (computing)","score":0.4894005358219147},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3364694118499756},{"id":"https://openalex.org/keywords/database","display_name":"Database","score":0.19080811738967896}],"concepts":[{"id":"https://openalex.org/C55439883","wikidata":"https://www.wikidata.org/wiki/Q360812","display_name":"Correctness","level":2,"score":0.7911031246185303},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7842395305633545},{"id":"https://openalex.org/C168167062","wikidata":"https://www.wikidata.org/wiki/Q1117970","display_name":"Component (thermodynamics)","level":2,"score":0.6811702847480774},{"id":"https://openalex.org/C2779343474","wikidata":"https://www.wikidata.org/wiki/Q3109175","display_name":"Context (archaeology)","level":2,"score":0.6660122275352478},{"id":"https://openalex.org/C2776937632","wikidata":"https://www.wikidata.org/wiki/Q4117718","display_name":"Program synthesis","level":2,"score":0.6564217209815979},{"id":"https://openalex.org/C48044578","wikidata":"https://www.wikidata.org/wiki/Q727490","display_name":"Scalability","level":2,"score":0.6471538543701172},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.528401255607605},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.4920613169670105},{"id":"https://openalex.org/C98045186","wikidata":"https://www.wikidata.org/wiki/Q205663","display_name":"Process (computing)","level":2,"score":0.4894005358219147},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3364694118499756},{"id":"https://openalex.org/C77088390","wikidata":"https://www.wikidata.org/wiki/Q8513","display_name":"Database","level":1,"score":0.19080811738967896},{"id":"https://openalex.org/C151730666","wikidata":"https://www.wikidata.org/wiki/Q7205","display_name":"Paleontology","level":1,"score":0.0},{"id":"https://openalex.org/C121332964","wikidata":"https://www.wikidata.org/wiki/Q413","display_name":"Physics","level":0,"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/C97355855","wikidata":"https://www.wikidata.org/wiki/Q11473","display_name":"Thermodynamics","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3563310","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3563310","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3563310","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/3563310","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3563310","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3563310","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":[],"funders":[{"id":"https://openalex.org/F4320332180","display_name":"Defense Advanced Research Projects Agency","ror":"https://ror.org/02caytj08"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4307884541.pdf","grobid_xml":"https://content.openalex.org/works/W4307884541.grobid-xml"},"referenced_works_count":38,"referenced_works":["https://openalex.org/W1580779595","https://openalex.org/W1858945639","https://openalex.org/W1964494435","https://openalex.org/W1976978933","https://openalex.org/W2008880956","https://openalex.org/W2013596093","https://openalex.org/W2022518532","https://openalex.org/W2091385303","https://openalex.org/W2096307462","https://openalex.org/W2102928769","https://openalex.org/W2109772966","https://openalex.org/W2124141583","https://openalex.org/W2134734244","https://openalex.org/W2137628566","https://openalex.org/W2263738566","https://openalex.org/W2267830770","https://openalex.org/W2530836305","https://openalex.org/W2550471858","https://openalex.org/W2561055248","https://openalex.org/W2567080712","https://openalex.org/W2883187296","https://openalex.org/W2899590559","https://openalex.org/W2904982962","https://openalex.org/W2964240296","https://openalex.org/W2966873892","https://openalex.org/W2995341674","https://openalex.org/W2995746305","https://openalex.org/W3109017117","https://openalex.org/W3123182306","https://openalex.org/W3167068349","https://openalex.org/W3173363254","https://openalex.org/W3183258024","https://openalex.org/W3187876763","https://openalex.org/W3205111252","https://openalex.org/W4245524452","https://openalex.org/W4297675700","https://openalex.org/W4307884541","https://openalex.org/W6912865908"],"related_works":["https://openalex.org/W2072806201","https://openalex.org/W2024218563","https://openalex.org/W1517743118","https://openalex.org/W2364921833","https://openalex.org/W1516169988","https://openalex.org/W2302028273","https://openalex.org/W2965845133","https://openalex.org/W1525643724","https://openalex.org/W2166247150","https://openalex.org/W2067938758"],"abstract_inverted_index":{"Component-based":[0],"synthesis":[1,31,63,80,100,121,193,217,237],"seeks":[2,133,157],"to":[3,24,37,85,108,117,134,209],"build":[4,135],"programs":[5],"using":[6],"the":[7,27,66,88,148,161,170,192,211],"APIs":[8,17],"provided":[9],"by":[10,41],"a":[11,97,119,128,152,187,197,225,233],"set":[12],"of":[13,29,68,75,112,147,169,200,213,235],"libraries.":[14],"Oftentimes,":[15],"these":[16,69,174],"have":[18,220],"effects,":[19],"which":[20,143,165,173],"make":[21],"it":[22],"challenging":[23,236],"reason":[25],"about":[26],"correctness":[28],"potential":[30,113],"candidates.":[32],"This":[33],"is":[34,144,166,207],"because":[35],"changes":[36],"global":[38],"state":[39],"made":[40],"effectful":[42,245],"library":[43,114],"procedures":[44],"affect":[45],"how":[46],"they":[47],"may":[48],"be":[49,83,177],"composed":[50],"together,":[51],"yielding":[52],"an":[53,139],"intractably":[54],"large":[55],"search":[56,89,122,130,154,204],"space":[57,212],"that":[58,102,132,156,195,206],"can":[59,82],"confound":[60],"typical":[61],"enumerative":[62],"techniques.":[64],"If":[65],"nature":[67],"effects":[70,111],"are":[71],"exposed":[72],"as":[73,216],"part":[74],"their":[76],"specification,":[77],"however,":[78],"deductive":[79],"approaches":[81],"used":[84,208],"help":[86],"guide":[87],"for":[90],"components.":[91],"In":[92],"this":[93],"paper,":[94],"we":[95,185],"present":[96],"new":[98],"specification-guided":[99],"procedure":[101,125,190],"uses":[103],"Hoare-style":[104],"pre-":[105],"and":[106,183,228],"post-conditions":[107],"express":[109],"fine-grained":[110],"component":[115],"candidates":[116,215],"drive":[118],"bi-directional":[120],"strategy.":[123],"The":[124],"alternates":[126],"between":[127],"forward":[129],"process":[131],"larger":[136],"terms":[137,158,175],"given":[138],"existing":[140],"context":[141,171],"but":[142,164],"otherwise":[145,167],"unaware":[146,168],"actual":[149],"goal,":[150],"alongside":[151],"backward":[153],"mechanism":[155],"consistent":[159],"with":[160,244],"desired":[162],"goal":[163],"from":[172],"must":[176],"synthesized.":[178],"To":[179],"further":[180],"improve":[181],"efficiency":[182],"scalability,":[184],"integrate":[186],"conflict-driven":[188],"learning":[189],"into":[191],"algorithm":[194],"provides":[196],"semantic":[198],"characterization":[199],"previously":[201],"encountered":[202],"unsuccessful":[203],"paths":[205],"prune":[210],"possible":[214],"proceeds.":[218],"We":[219],"implemented":[221],"our":[222],"ideas":[223],"in":[224],"tool":[226],"called":[227],"demonstrate":[229],"its":[230],"effectiveness":[231],"on":[232],"number":[234],"problems":[238],"defined":[239],"over":[240],"OCaml":[241],"libraries":[242],"equipped":[243],"specifications.":[246]},"counts_by_year":[{"year":2025,"cited_by_count":4},{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":1}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
