{"id":"https://openalex.org/W4315605888","doi":"https://doi.org/10.1145/3571226","title":"FlashFill++: Scaling Programming by Example by Cutting to the Chase","display_name":"FlashFill++: Scaling Programming by Example by Cutting to the Chase","publication_year":2023,"publication_date":"2023-01-09","ids":{"openalex":"https://openalex.org/W4315605888","doi":"https://doi.org/10.1145/3571226"},"language":"en","primary_location":{"id":"doi:10.1145/3571226","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3571226","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3571226","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/3571226","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5046282128","display_name":"Jos\u00e9 Cambronero","orcid":"https://orcid.org/0000-0002-0713-6141"},"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":"Jos\u00e9 Cambronero","raw_affiliation_strings":["Microsoft, USA"],"raw_orcid":"https://orcid.org/0000-0002-0713-6141","affiliations":[{"raw_affiliation_string":"Microsoft, USA","institution_ids":["https://openalex.org/I1290206253"]}]},{"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"],"raw_orcid":"https://orcid.org/0000-0002-9226-9634","affiliations":[{"raw_affiliation_string":"Microsoft, USA","institution_ids":["https://openalex.org/I1290206253"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5051355395","display_name":"Vu Le","orcid":"https://orcid.org/0000-0003-3727-3291"},"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":"Vu Le","raw_affiliation_strings":["Microsoft, USA"],"raw_orcid":"https://orcid.org/0000-0003-3727-3291","affiliations":[{"raw_affiliation_string":"Microsoft, USA","institution_ids":["https://openalex.org/I1290206253"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5043907771","display_name":"Daniel Perelman","orcid":"https://orcid.org/0000-0002-0157-5506"},"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":"Daniel Perelman","raw_affiliation_strings":["Microsoft, USA"],"raw_orcid":"https://orcid.org/0000-0002-0157-5506","affiliations":[{"raw_affiliation_string":"Microsoft, USA","institution_ids":["https://openalex.org/I1290206253"]}]},{"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"],"raw_orcid":"https://orcid.org/0000-0002-5559-5932","affiliations":[{"raw_affiliation_string":"Microsoft, USA","institution_ids":["https://openalex.org/I1290206253"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5066157018","display_name":"Clint Simon","orcid":"https://orcid.org/0000-0002-7453-2777"},"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":"Clint Simon","raw_affiliation_strings":["Microsoft, USA"],"raw_orcid":"https://orcid.org/0000-0002-7453-2777","affiliations":[{"raw_affiliation_string":"Microsoft, USA","institution_ids":["https://openalex.org/I1290206253"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5086308451","display_name":"Ashish Tiwari","orcid":"https://orcid.org/0000-0002-5153-2686"},"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":"Ashish Tiwari","raw_affiliation_strings":["Microsoft, USA"],"raw_orcid":"https://orcid.org/0000-0002-5153-2686","affiliations":[{"raw_affiliation_string":"Microsoft, USA","institution_ids":["https://openalex.org/I1290206253"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":7,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":10.3524,"has_fulltext":true,"cited_by_count":24,"citation_normalized_percentile":{"value":0.98133171,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":98,"max":99},"biblio":{"volume":"7","issue":"POPL","first_page":"952","last_page":"981"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9995999932289124,"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.9995999932289124,"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9983000159263611,"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.995199978351593,"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/digital-subscriber-line","display_name":"Digital subscriber line","score":0.9340113401412964},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7344708442687988},{"id":"https://openalex.org/keywords/key","display_name":"Key (lock)","score":0.6569024920463562},{"id":"https://openalex.org/keywords/domain-specific-language","display_name":"Domain-specific language","score":0.5704264640808105},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5525161027908325},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.5416626334190369},{"id":"https://openalex.org/keywords/combinatory-logic","display_name":"Combinatory logic","score":0.47662389278411865},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.41182124614715576}],"concepts":[{"id":"https://openalex.org/C201374245","wikidata":"https://www.wikidata.org/wiki/Q104534","display_name":"Digital subscriber line","level":2,"score":0.9340113401412964},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7344708442687988},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.6569024920463562},{"id":"https://openalex.org/C135257023","wikidata":"https://www.wikidata.org/wiki/Q691358","display_name":"Domain-specific language","level":2,"score":0.5704264640808105},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5525161027908325},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.5416626334190369},{"id":"https://openalex.org/C79678938","wikidata":"https://www.wikidata.org/wiki/Q1481571","display_name":"Combinatory logic","level":2,"score":0.47662389278411865},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.41182124614715576},{"id":"https://openalex.org/C38652104","wikidata":"https://www.wikidata.org/wiki/Q3510521","display_name":"Computer security","level":1,"score":0.0},{"id":"https://openalex.org/C76155785","wikidata":"https://www.wikidata.org/wiki/Q418","display_name":"Telecommunications","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3571226","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3571226","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3571226","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/3571226","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3571226","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3571226","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/W4315605888.pdf","grobid_xml":"https://content.openalex.org/works/W4315605888.grobid-xml"},"referenced_works_count":46,"referenced_works":["https://openalex.org/W979215280","https://openalex.org/W1543926679","https://openalex.org/W1563008855","https://openalex.org/W1858945639","https://openalex.org/W2011329076","https://openalex.org/W2013399578","https://openalex.org/W2013596093","https://openalex.org/W2018045485","https://openalex.org/W2031276295","https://openalex.org/W2088989316","https://openalex.org/W2094283151","https://openalex.org/W2095810701","https://openalex.org/W2106001218","https://openalex.org/W2119296125","https://openalex.org/W2132525863","https://openalex.org/W2146105230","https://openalex.org/W2161159055","https://openalex.org/W2550471858","https://openalex.org/W2560674852","https://openalex.org/W2603456259","https://openalex.org/W2626990892","https://openalex.org/W2748837517","https://openalex.org/W2765742677","https://openalex.org/W2785559831","https://openalex.org/W2798628553","https://openalex.org/W2888945069","https://openalex.org/W2910204069","https://openalex.org/W2964358651","https://openalex.org/W2995341674","https://openalex.org/W3011590361","https://openalex.org/W3012572620","https://openalex.org/W3014023550","https://openalex.org/W3033316151","https://openalex.org/W3094252362","https://openalex.org/W3098585900","https://openalex.org/W3117975267","https://openalex.org/W3162444510","https://openalex.org/W3173777717","https://openalex.org/W3176592665","https://openalex.org/W3195413879","https://openalex.org/W3206370442","https://openalex.org/W4206647573","https://openalex.org/W4229675450","https://openalex.org/W4256244129","https://openalex.org/W4295592609","https://openalex.org/W4299561725"],"related_works":["https://openalex.org/W2506635712","https://openalex.org/W1579149484","https://openalex.org/W2161550557","https://openalex.org/W2556228643","https://openalex.org/W2159328689","https://openalex.org/W4210759111","https://openalex.org/W3006199460","https://openalex.org/W2744451700","https://openalex.org/W2049455690","https://openalex.org/W2167031223"],"abstract_inverted_index":{"Programming-by-Examples":[0],"(PBE)":[1],"involves":[2],"synthesizing":[3],"an":[4,49,248,286],"\"intended":[5],"program\"":[6],"from":[7,251,348],"a":[8,26,69,104,118,211,260,270],"small":[9,29],"set":[10,144],"of":[11,52,86,107,138,145,152,166,182,206,220,276,360],"user-provided":[12],"input-output":[13],"examples.":[14,254],"A":[15],"key":[16,134,202],"PBE":[17,288,337],"strategy":[18,55,72,121],"has":[19],"been":[20],"to":[21,25,89,102,163,175,262,266,269,305,351],"restrict":[22,267],"the":[23,38,45,63,80,84,100,110,143,153,156,180,224,263],"search":[24,190,228,268],"carefully":[27],"designed":[28,162,304],"domain-specific":[30],"language":[31],"(DSL)":[32],"with":[33,68,92,232,358],"\"effectively-invertible\"":[34],"(EI)":[35],"operators":[36,43,194],"at":[37,44],"top":[39],"and":[40,109,128,195,257,272,280,297,319,329,353],"\"effectively-enumerable\"":[41],"(EE)":[42],"bottom.":[46],"This":[47,96,226],"facilitates":[48],"effective":[50,245],"combination":[51],"top-down":[53],"synthesis":[54,71,88],"(which":[56,73],"backpropagates":[57],"outputs":[58],"over":[59,76,129,179,230],"various":[60,77,221],"paths":[61,78,222],"in":[62,79,223,246,310,343],"DSL":[64,169,214,264],"using":[65,150],"inverse":[66],"functions)":[67],"bottom-up":[70],"propagates":[74],"inputs":[75],"DSL).":[81],"We":[82,116,321],"address":[83],"problem":[85],"scaling":[87],"large":[90,233],"DSLs":[91],"several":[93,344],"non-EI/EE":[94,193],"operators.":[95],"is":[97,136,204,303,324,340],"motivated":[98],"by":[99,149],"need":[101,111],"support":[103],"richer":[105],"class":[106],"transformations":[108],"for":[112,192,197,290],"readable":[113,307],"code":[114,308,333],"generation.":[115],"propose":[117],"novel":[119],"solution":[120],"that":[122,137,141,205,209],"relies":[123],"on":[124,155,213],"propagating":[125],"fewer":[126,130],"values":[127,146],"paths.":[131],"Our":[132,200],"first":[133],"idea":[135,203],"\"cut":[139],"functions\"":[140],"prune":[142],"being":[147,341],"propagated":[148],"knowledge":[151],"sub-DSL":[154],"other":[157],"side.":[158],"Cuts":[159],"can":[160],"be":[161],"preserve":[164],"completeness":[165],"synthesis;":[167],"however,":[168],"designers":[170],"may":[171],"use":[172],"incomplete":[173],"cuts":[174,188,256,279],"have":[176,283],"finer":[177],"control":[178],"kind":[181],"programs":[183],"synthesized.":[184],"In":[185],"either":[186],"case,":[187],"make":[189],"feasible":[191],"efficient":[196,229],"deep":[198],"DSLs.":[199],"second":[201],"\"guarded":[207],"DSLs\"":[208],"allow":[210],"precedence":[212,258],"operators,":[215],"which":[216],"dynamically":[217],"controls":[218],"exploration":[219],"DSL.":[225],"makes":[227,240],"grammars":[231],"fanouts":[234],"without":[235],"losing":[236],"recall.":[237],"It":[238],"also":[239],"ranking":[241],"simpler":[242],"yet":[243],"more":[244,325,327],"learning":[247],"intended":[249],"program":[250],"very":[252],"few":[253],"Both":[255],"provide":[259],"mechanism":[261],"designer":[265],"reasonable,":[271],"possibly":[273],"incomplete,":[274],"space":[275],"programs.":[277],"Using":[278],"gDSLs,":[281],"we":[282],"built":[284],"FlashFill++,":[285],"industrial-strength":[287],"engine":[289],"performing":[291],"rich":[292],"string":[293],"transformations,":[294],"including":[295,314],"datetime":[296],"number":[298],"manipulations.":[299],"The":[300],"FlashFill++":[301,323,339],"gDSL":[302],"enable":[306],"generation":[309],"different":[311],"target":[312],"languages":[313],"Excel's":[315],"formula":[316],"language,":[317],"PowerFx,":[318],"Python.":[320],"show":[322],"expressive,":[326],"performant,":[328],"generates":[330],"better":[331],"quality":[332],"than":[334],"comparable":[335],"existing":[336],"systems.":[338],"deployed":[342],"mass-market":[345],"products":[346],"ranging":[347],"spreadsheet":[349],"software":[350],"notebooks":[352],"business":[354],"intelligence":[355],"applications,":[356],"each":[357],"millions":[359],"users.":[361]},"counts_by_year":[{"year":2026,"cited_by_count":3},{"year":2025,"cited_by_count":7},{"year":2024,"cited_by_count":9},{"year":2023,"cited_by_count":5}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
