{"id":"https://openalex.org/W3201574516","doi":"https://doi.org/10.1145/3485538","title":"APIfix: output-oriented program synthesis for combating breaking changes in libraries","display_name":"APIfix: output-oriented program synthesis for combating breaking changes in libraries","publication_year":2021,"publication_date":"2021-10-15","ids":{"openalex":"https://openalex.org/W3201574516","doi":"https://doi.org/10.1145/3485538","mag":"3201574516"},"language":"en","primary_location":{"id":"doi:10.1145/3485538","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3485538","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3485538","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/3485538","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5101516065","display_name":"Xiang Gao","orcid":"https://orcid.org/0009-0009-5639-8066"},"institutions":[{"id":"https://openalex.org/I165932596","display_name":"National University of Singapore","ror":"https://ror.org/01tgyzw49","country_code":"SG","type":"education","lineage":["https://openalex.org/I165932596"]}],"countries":["SG"],"is_corresponding":true,"raw_author_name":"Xiang Gao","raw_affiliation_strings":["National University of Singapore, Singapore","National University of Singapore, Singapore, Singapore"],"affiliations":[{"raw_affiliation_string":"National University of Singapore, Singapore","institution_ids":["https://openalex.org/I165932596"]},{"raw_affiliation_string":"National University of Singapore, Singapore, Singapore","institution_ids":["https://openalex.org/I165932596"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5000188805","display_name":"Arjun Radhakrishna","orcid":"https://orcid.org/0000-0002-5559-5932"},"institutions":[{"id":"https://openalex.org/I1290206253","display_name":"Microsoft (United States)","ror":"https://ror.org/00d0nc645","country_code":"US","type":"company","lineage":["https://openalex.org/I1290206253"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Arjun Radhakrishna","raw_affiliation_strings":["Microsoft, USA","Microsoft (United States), Redmond, United States"],"affiliations":[{"raw_affiliation_string":"Microsoft, USA","institution_ids":["https://openalex.org/I1290206253"]},{"raw_affiliation_string":"Microsoft (United States), Redmond, United States","institution_ids":["https://openalex.org/I1290206253"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5025062647","display_name":"Gustavo Soares","orcid":"https://orcid.org/0000-0002-8061-9000"},"institutions":[{"id":"https://openalex.org/I1290206253","display_name":"Microsoft (United States)","ror":"https://ror.org/00d0nc645","country_code":"US","type":"company","lineage":["https://openalex.org/I1290206253"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Gustavo Soares","raw_affiliation_strings":["Microsoft, USA","Microsoft (United States), Redmond, United States"],"affiliations":[{"raw_affiliation_string":"Microsoft, USA","institution_ids":["https://openalex.org/I1290206253"]},{"raw_affiliation_string":"Microsoft (United States), Redmond, United States","institution_ids":["https://openalex.org/I1290206253"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5052793365","display_name":"Ridwan Shariffdeen","orcid":"https://orcid.org/0000-0001-5409-4864"},"institutions":[{"id":"https://openalex.org/I165932596","display_name":"National University of Singapore","ror":"https://ror.org/01tgyzw49","country_code":"SG","type":"education","lineage":["https://openalex.org/I165932596"]}],"countries":["SG"],"is_corresponding":false,"raw_author_name":"Ridwan Shariffdeen","raw_affiliation_strings":["National University of Singapore, Singapore","National University of Singapore, Singapore, Singapore"],"affiliations":[{"raw_affiliation_string":"National University of Singapore, Singapore","institution_ids":["https://openalex.org/I165932596"]},{"raw_affiliation_string":"National University of Singapore, Singapore, Singapore","institution_ids":["https://openalex.org/I165932596"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5011543162","display_name":"Sumit Gulwani","orcid":"https://orcid.org/0000-0002-9226-9634"},"institutions":[{"id":"https://openalex.org/I1290206253","display_name":"Microsoft (United States)","ror":"https://ror.org/00d0nc645","country_code":"US","type":"company","lineage":["https://openalex.org/I1290206253"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Sumit Gulwani","raw_affiliation_strings":["Microsoft, USA","Microsoft (United States), Redmond, United States"],"affiliations":[{"raw_affiliation_string":"Microsoft, USA","institution_ids":["https://openalex.org/I1290206253"]},{"raw_affiliation_string":"Microsoft (United States), Redmond, United States","institution_ids":["https://openalex.org/I1290206253"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5060115298","display_name":"Abhik Roychoudhury","orcid":"https://orcid.org/0000-0002-7127-1137"},"institutions":[{"id":"https://openalex.org/I165932596","display_name":"National University of Singapore","ror":"https://ror.org/01tgyzw49","country_code":"SG","type":"education","lineage":["https://openalex.org/I165932596"]}],"countries":["SG"],"is_corresponding":false,"raw_author_name":"Abhik Roychoudhury","raw_affiliation_strings":["National University of Singapore, Singapore","National University of Singapore, Singapore, Singapore"],"affiliations":[{"raw_affiliation_string":"National University of Singapore, Singapore","institution_ids":["https://openalex.org/I165932596"]},{"raw_affiliation_string":"National University of Singapore, Singapore, Singapore","institution_ids":["https://openalex.org/I165932596"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":6,"corresponding_author_ids":["https://openalex.org/A5101516065"],"corresponding_institution_ids":["https://openalex.org/I165932596"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":true,"cited_by_count":0,"citation_normalized_percentile":{"value":0.124476,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":"5","issue":"OOPSLA","first_page":"1","last_page":"27"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11241","display_name":"Advanced Malware Detection Techniques","score":0.9988999962806702,"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.9988999962806702,"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/T10260","display_name":"Software Engineering Research","score":0.9987999796867371,"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/T12127","display_name":"Software System Performance and Reliability","score":0.9976000189781189,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"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.8451616764068604},{"id":"https://openalex.org/keywords/program-synthesis","display_name":"Program synthesis","score":0.760737419128418},{"id":"https://openalex.org/keywords/application-programming-interface","display_name":"Application programming interface","score":0.6327751278877258},{"id":"https://openalex.org/keywords/program-transformation","display_name":"Program transformation","score":0.6282713413238525},{"id":"https://openalex.org/keywords/transformation","display_name":"Transformation (genetics)","score":0.6101919412612915},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.5267360210418701},{"id":"https://openalex.org/keywords/context","display_name":"Context (archaeology)","score":0.5245190858840942},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.512650191783905},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4830494523048401},{"id":"https://openalex.org/keywords/adaptation","display_name":"Adaptation (eye)","score":0.47799578309059143},{"id":"https://openalex.org/keywords/model-transformation","display_name":"Model transformation","score":0.42846015095710754},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.3955513834953308},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.20234665274620056},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.09398448467254639}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8451616764068604},{"id":"https://openalex.org/C2776937632","wikidata":"https://www.wikidata.org/wiki/Q4117718","display_name":"Program synthesis","level":2,"score":0.760737419128418},{"id":"https://openalex.org/C99613125","wikidata":"https://www.wikidata.org/wiki/Q165194","display_name":"Application programming interface","level":2,"score":0.6327751278877258},{"id":"https://openalex.org/C2778361913","wikidata":"https://www.wikidata.org/wiki/Q7248437","display_name":"Program transformation","level":2,"score":0.6282713413238525},{"id":"https://openalex.org/C204241405","wikidata":"https://www.wikidata.org/wiki/Q461499","display_name":"Transformation (genetics)","level":3,"score":0.6101919412612915},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.5267360210418701},{"id":"https://openalex.org/C2779343474","wikidata":"https://www.wikidata.org/wiki/Q3109175","display_name":"Context (archaeology)","level":2,"score":0.5245190858840942},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.512650191783905},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4830494523048401},{"id":"https://openalex.org/C139807058","wikidata":"https://www.wikidata.org/wiki/Q352374","display_name":"Adaptation (eye)","level":2,"score":0.47799578309059143},{"id":"https://openalex.org/C2779791154","wikidata":"https://www.wikidata.org/wiki/Q258040","display_name":"Model transformation","level":3,"score":0.42846015095710754},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.3955513834953308},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.20234665274620056},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.09398448467254639},{"id":"https://openalex.org/C120665830","wikidata":"https://www.wikidata.org/wiki/Q14620","display_name":"Optics","level":1,"score":0.0},{"id":"https://openalex.org/C55493867","wikidata":"https://www.wikidata.org/wiki/Q7094","display_name":"Biochemistry","level":1,"score":0.0},{"id":"https://openalex.org/C104317684","wikidata":"https://www.wikidata.org/wiki/Q7187","display_name":"Gene","level":2,"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/C185592680","wikidata":"https://www.wikidata.org/wiki/Q2329","display_name":"Chemistry","level":0,"score":0.0},{"id":"https://openalex.org/C151730666","wikidata":"https://www.wikidata.org/wiki/Q7205","display_name":"Paleontology","level":1,"score":0.0},{"id":"https://openalex.org/C2776436953","wikidata":"https://www.wikidata.org/wiki/Q5163215","display_name":"Consistency (knowledge bases)","level":2,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3485538","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3485538","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3485538","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":"mag:3201574516","is_oa":false,"landing_page_url":"https://www.microsoft.com/en-us/research/publication/apifix-output-oriented-program-synthesis-for-combating-breaking-changes-in-libraries/","pdf_url":null,"source":{"id":"https://openalex.org/S4306418083","display_name":"Conference on Object-Oriented Programming Systems, Languages, and Applications","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":"conference"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":null,"raw_source_name":"Conference on Object-Oriented Programming Systems, Languages, and Applications","raw_type":null}],"best_oa_location":{"id":"doi:10.1145/3485538","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3485538","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3485538","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":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W3201574516.pdf","grobid_xml":"https://content.openalex.org/works/W3201574516.grobid-xml"},"referenced_works_count":22,"referenced_works":["https://openalex.org/W1839854015","https://openalex.org/W1974514467","https://openalex.org/W2065489029","https://openalex.org/W2110617721","https://openalex.org/W2132525863","https://openalex.org/W2133363731","https://openalex.org/W2160985005","https://openalex.org/W2496170334","https://openalex.org/W2600915151","https://openalex.org/W2740130372","https://openalex.org/W2953054522","https://openalex.org/W2954401434","https://openalex.org/W2957919018","https://openalex.org/W2962809971","https://openalex.org/W2968109196","https://openalex.org/W2979679630","https://openalex.org/W3046537322","https://openalex.org/W3082991350","https://openalex.org/W3121596715","https://openalex.org/W4243227753","https://openalex.org/W4243740681","https://openalex.org/W4245234767"],"related_works":["https://openalex.org/W3206376305","https://openalex.org/W2965234662","https://openalex.org/W3088022100","https://openalex.org/W2921761930","https://openalex.org/W1650556305","https://openalex.org/W3112584285","https://openalex.org/W16631048","https://openalex.org/W3207800553","https://openalex.org/W3095362081","https://openalex.org/W2026572831","https://openalex.org/W2394799167","https://openalex.org/W3152923764","https://openalex.org/W3189788444","https://openalex.org/W3195029717","https://openalex.org/W2914732746","https://openalex.org/W3133793380","https://openalex.org/W197463512","https://openalex.org/W2182273135","https://openalex.org/W2762757098","https://openalex.org/W3095317586"],"abstract_inverted_index":{"Use":[0],"of":[1,84,112,164],"third-party":[2],"libraries":[3,11,36],"is":[4,73],"extremely":[5],"common":[6],"in":[7,34,117],"application":[8,50,139],"software.":[9,30],"The":[10],"evolve":[12],"to":[13,63,76,92,101,137,146,160,187],"accommodate":[14],"new":[15,44,94,114,150],"features":[16],"or":[17],"mitigate":[18],"security":[19],"vulnerabilities,":[20],"thereby":[21,47,154],"breaking":[22,32,165],"the":[23,29,35,43,49,79,85,88,93,113,127,142,149,162,171],"Application":[24],"Programming":[25],"Interface(API)":[26],"used":[27],"by":[28,175],"Such":[31],"changes":[33],"may":[37],"discourage":[38],"client":[39],"code":[40,140,147],"from":[41,87],"using":[42,141,148],"library":[45,90,95,116,144,151],"versions":[46,145,152],"keeping":[48],"vulnerable":[51],"and":[52,125,180],"not":[53,74],"up-to-date.":[54],"We":[55],"propose":[56],"a":[57],"novel":[58],"output-oriented":[59],"program":[60,69,189],"synthesis":[61,190],"algorithm":[62],"automate":[64],"API":[65,157,205],"usage":[66,158,206],"adaptations":[67,83],"via":[68],"transformation.":[70],"Our":[71,130,167],"aim":[72],"only":[75],"rely":[77,108],"on":[78,109],"few":[80],"example":[81,110],"human":[82],"clients":[86],"old":[89,143],"version":[91],"version,":[96],"since":[97],"this":[98],"can":[99],"lead":[100],"over-fitting":[102,199],"transformation":[103,128,172,202],"rules.":[104,129],"Instead,":[105],"we":[106,192],"also":[107],"usages":[111],"updated":[115],"clients,":[118],"which":[119],"provide":[120],"valuable":[121],"context":[122],"for":[123,204],"synthesizing":[124,201],"applying":[126],"tool":[131],"APIFix":[132,176],"provides":[133],"an":[134],"automated":[135,156],"mechanism":[136],"transform":[138],"-":[153],"achieving":[155],"adaptation":[159],"fix":[161],"effect":[163],"changes.":[166],"evaluation":[168],"shows":[169],"that":[170,194],"rules":[173,203],"inferred":[174],"achieve":[177],"98.7%":[178],"precision":[179],"91.5%":[181],"recall.":[182],"By":[183],"comparing":[184],"our":[185,195],"approach":[186,196],"state-of-the-art":[188],"approaches,":[191],"show":[193],"significantly":[197],"reduces":[198],"while":[200],"adaptations.":[207]},"counts_by_year":[],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
