{"id":"https://openalex.org/W2890873226","doi":"https://doi.org/10.1145/3276497","title":"Bidirectional evaluation with direct manipulation","display_name":"Bidirectional evaluation with direct manipulation","publication_year":2018,"publication_date":"2018-10-24","ids":{"openalex":"https://openalex.org/W2890873226","doi":"https://doi.org/10.1145/3276497","mag":"2890873226"},"language":"en","primary_location":{"id":"doi:10.1145/3276497","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3276497","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3276497","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":null,"license_id":null,"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":["arxiv","crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3276497","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5020869737","display_name":"Mika\u00ebl Mayer","orcid":"https://orcid.org/0000-0002-6460-8731"},"institutions":[{"id":"https://openalex.org/I40347166","display_name":"University of Chicago","ror":"https://ror.org/024mw5h28","country_code":"US","type":"education","lineage":["https://openalex.org/I40347166"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Mika\u00ebl Mayer","raw_affiliation_strings":["University of Chicago, USA"],"affiliations":[{"raw_affiliation_string":"University of Chicago, USA","institution_ids":["https://openalex.org/I40347166"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5008699657","display_name":"Viktor Kun\u010dak","orcid":"https://orcid.org/0000-0001-7044-9522"},"institutions":[{"id":"https://openalex.org/I5124864","display_name":"\u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne","ror":"https://ror.org/02s376052","country_code":"CH","type":"education","lineage":["https://openalex.org/I2799323385","https://openalex.org/I5124864"]}],"countries":["CH"],"is_corresponding":false,"raw_author_name":"Viktor Kuncak","raw_affiliation_strings":["EPFL, Switzerland"],"affiliations":[{"raw_affiliation_string":"EPFL, Switzerland","institution_ids":["https://openalex.org/I5124864"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5004759757","display_name":"Ravi Chugh","orcid":"https://orcid.org/0000-0002-1339-2889"},"institutions":[{"id":"https://openalex.org/I40347166","display_name":"University of Chicago","ror":"https://ror.org/024mw5h28","country_code":"US","type":"education","lineage":["https://openalex.org/I40347166"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Ravi Chugh","raw_affiliation_strings":["University of Chicago, USA"],"affiliations":[{"raw_affiliation_string":"University of Chicago, USA","institution_ids":["https://openalex.org/I40347166"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5020869737"],"corresponding_institution_ids":["https://openalex.org/I40347166"],"apc_list":null,"apc_paid":null,"fwci":8.2234,"has_fulltext":true,"cited_by_count":37,"citation_normalized_percentile":{"value":0.97659655,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":90,"max":99},"biblio":{"volume":"2","issue":"OOPSLA","first_page":"1","last_page":"28"},"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/T11241","display_name":"Advanced Malware Detection Techniques","score":0.9976000189781189,"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/T12016","display_name":"Web Data Mining and Analysis","score":0.9966999888420105,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/sketch","display_name":"Sketch","score":0.9620969295501709},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.861348032951355},{"id":"https://openalex.org/keywords/rewriting","display_name":"Rewriting","score":0.6694042682647705},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6503455638885498},{"id":"https://openalex.org/keywords/domain","display_name":"Domain (mathematical analysis)","score":0.5477209091186523},{"id":"https://openalex.org/keywords/interface","display_name":"Interface (matter)","score":0.47973576188087463},{"id":"https://openalex.org/keywords/user-interface","display_name":"User interface","score":0.47277238965034485},{"id":"https://openalex.org/keywords/variety","display_name":"Variety (cybernetics)","score":0.457450807094574},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4573712646961212},{"id":"https://openalex.org/keywords/graphical-user-interface","display_name":"Graphical user interface","score":0.4455215334892273},{"id":"https://openalex.org/keywords/sketch-recognition","display_name":"Sketch recognition","score":0.4161398410797119},{"id":"https://openalex.org/keywords/event-driven-programming","display_name":"Event-driven programming","score":0.4132930636405945},{"id":"https://openalex.org/keywords/algorithm","display_name":"Algorithm","score":0.30124402046203613},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.27885860204696655},{"id":"https://openalex.org/keywords/procedural-programming","display_name":"Procedural programming","score":0.26512280106544495},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.22804218530654907},{"id":"https://openalex.org/keywords/inductive-programming","display_name":"Inductive programming","score":0.11491090059280396},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.11459067463874817}],"concepts":[{"id":"https://openalex.org/C2779231336","wikidata":"https://www.wikidata.org/wiki/Q7534724","display_name":"Sketch","level":2,"score":0.9620969295501709},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.861348032951355},{"id":"https://openalex.org/C154690210","wikidata":"https://www.wikidata.org/wiki/Q1668499","display_name":"Rewriting","level":2,"score":0.6694042682647705},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6503455638885498},{"id":"https://openalex.org/C36503486","wikidata":"https://www.wikidata.org/wiki/Q11235244","display_name":"Domain (mathematical analysis)","level":2,"score":0.5477209091186523},{"id":"https://openalex.org/C113843644","wikidata":"https://www.wikidata.org/wiki/Q901882","display_name":"Interface (matter)","level":4,"score":0.47973576188087463},{"id":"https://openalex.org/C89505385","wikidata":"https://www.wikidata.org/wiki/Q47146","display_name":"User interface","level":2,"score":0.47277238965034485},{"id":"https://openalex.org/C136197465","wikidata":"https://www.wikidata.org/wiki/Q1729295","display_name":"Variety (cybernetics)","level":2,"score":0.457450807094574},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4573712646961212},{"id":"https://openalex.org/C37789001","wikidata":"https://www.wikidata.org/wiki/Q782543","display_name":"Graphical user interface","level":2,"score":0.4455215334892273},{"id":"https://openalex.org/C132900626","wikidata":"https://www.wikidata.org/wiki/Q7534733","display_name":"Sketch recognition","level":4,"score":0.4161398410797119},{"id":"https://openalex.org/C77362995","wikidata":"https://www.wikidata.org/wiki/Q1135914","display_name":"Event-driven programming","level":5,"score":0.4132930636405945},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.30124402046203613},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.27885860204696655},{"id":"https://openalex.org/C120558287","wikidata":"https://www.wikidata.org/wiki/Q1418502","display_name":"Procedural programming","level":4,"score":0.26512280106544495},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.22804218530654907},{"id":"https://openalex.org/C50033165","wikidata":"https://www.wikidata.org/wiki/Q15712089","display_name":"Inductive programming","level":3,"score":0.11491090059280396},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.11459067463874817},{"id":"https://openalex.org/C207347870","wikidata":"https://www.wikidata.org/wiki/Q371174","display_name":"Gesture","level":2,"score":0.0},{"id":"https://openalex.org/C129307140","wikidata":"https://www.wikidata.org/wiki/Q6795880","display_name":"Maximum bubble pressure method","level":3,"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/C159437735","wikidata":"https://www.wikidata.org/wiki/Q1519524","display_name":"Gesture recognition","level":3,"score":0.0},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0},{"id":"https://openalex.org/C157915830","wikidata":"https://www.wikidata.org/wiki/Q2928001","display_name":"Bubble","level":2,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3276497","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3276497","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3276497","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":null,"license_id":null,"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:arXiv.org:1809.04209","is_oa":true,"landing_page_url":"http://arxiv.org/abs/1809.04209","pdf_url":"https://arxiv.org/pdf/1809.04209","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"}],"best_oa_location":{"id":"doi:10.1145/3276497","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3276497","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3276497","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":null,"license_id":null,"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/G1022114529","display_name":null,"funder_award_id":"Early Postdoc.Mobility Fellowship","funder_id":"https://openalex.org/F4320320924","funder_display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung"},{"id":"https://openalex.org/G3028374376","display_name":null,"funder_award_id":"Early Postdoc.Mobility","funder_id":"https://openalex.org/F4320320924","funder_display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung"},{"id":"https://openalex.org/G4247904154","display_name":null,"funder_award_id":"European Research Council","funder_id":"https://openalex.org/F4320320924","funder_display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung"},{"id":"https://openalex.org/G4321401820","display_name":null,"funder_award_id":"306484","funder_id":"https://openalex.org/F4320338335","funder_display_name":"H2020 European Research Council"},{"id":"https://openalex.org/G45908958","display_name":null,"funder_award_id":"Mobility","funder_id":"https://openalex.org/F4320320924","funder_display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung"},{"id":"https://openalex.org/G4621158401","display_name":null,"funder_award_id":"Fellowship","funder_id":"https://openalex.org/F4320320924","funder_display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung"},{"id":"https://openalex.org/G4767115181","display_name":"History and Geography of Western Asia Minor in the Hittite Period","funder_award_id":"165179","funder_id":"https://openalex.org/F4320320924","funder_display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung"},{"id":"https://openalex.org/G4808440222","display_name":null,"funder_award_id":"175041","funder_id":"https://openalex.org/F4320320924","funder_display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung"},{"id":"https://openalex.org/G6440928506","display_name":null,"funder_award_id":"Postdoc.Mobility","funder_id":"https://openalex.org/F4320320924","funder_display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung"},{"id":"https://openalex.org/G6894402473","display_name":null,"funder_award_id":"Fellowship","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G848032724","display_name":null,"funder_award_id":"Science","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G8720475309","display_name":"A) High-Energy Interactions: CDF at the Tevatron and ATLAS at theCERN LHC B) Research and development for neutrino factories","funder_award_id":"65179","funder_id":"https://openalex.org/F4320320924","funder_display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung"},{"id":"https://openalex.org/G8746820586","display_name":null,"funder_award_id":"1651794","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"},{"id":"https://openalex.org/F4320320924","display_name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung","ror":"https://ror.org/00yjd3n13"},{"id":"https://openalex.org/F4320338335","display_name":"H2020 European Research Council","ror":"https://ror.org/0472cxd90"}],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2890873226.pdf","grobid_xml":"https://content.openalex.org/works/W2890873226.grobid-xml"},"referenced_works_count":47,"referenced_works":["https://openalex.org/W1506770266","https://openalex.org/W1506888682","https://openalex.org/W1946412544","https://openalex.org/W1968796785","https://openalex.org/W2000616678","https://openalex.org/W2002985857","https://openalex.org/W2010019177","https://openalex.org/W2024951218","https://openalex.org/W2036676170","https://openalex.org/W2037471787","https://openalex.org/W2046832714","https://openalex.org/W2047652936","https://openalex.org/W2075161796","https://openalex.org/W2092546644","https://openalex.org/W2095693131","https://openalex.org/W2099305423","https://openalex.org/W2115647291","https://openalex.org/W2115810994","https://openalex.org/W2121357705","https://openalex.org/W2127229466","https://openalex.org/W2135415614","https://openalex.org/W2145632680","https://openalex.org/W2146462464","https://openalex.org/W2147571062","https://openalex.org/W2151592950","https://openalex.org/W2158289035","https://openalex.org/W2164372721","https://openalex.org/W2219864925","https://openalex.org/W2507500182","https://openalex.org/W2796830478","https://openalex.org/W2885066046","https://openalex.org/W2890873226","https://openalex.org/W2899244789","https://openalex.org/W2963821837","https://openalex.org/W2967897384","https://openalex.org/W3006144473","https://openalex.org/W3043523721","https://openalex.org/W3084042316","https://openalex.org/W3104528096","https://openalex.org/W3122945969","https://openalex.org/W3125193087","https://openalex.org/W3139690144","https://openalex.org/W4245974437","https://openalex.org/W4249045153","https://openalex.org/W4288614128","https://openalex.org/W4299885995","https://openalex.org/W4302370579"],"related_works":["https://openalex.org/W2294900353","https://openalex.org/W2411243951","https://openalex.org/W2151314278","https://openalex.org/W13629514","https://openalex.org/W1971224820","https://openalex.org/W2963977451","https://openalex.org/W2098836165","https://openalex.org/W1976890290","https://openalex.org/W1573697454","https://openalex.org/W2966897482"],"abstract_inverted_index":{"We":[0,125],"present":[1],"an":[2,99],"evaluation":[3,76,128],"update":[4,25,62,120],"(or":[5],"simply,":[6],"update)":[7],"algorithm":[8,26,63,81,121],"for":[9,90],"a":[10,84,115,147],"full-featured":[11],"functional":[12,101],"programming":[13,88,169],"language,":[14],"which":[15],"synthesizes":[16],"program":[17,36,69,102],"changes":[18],"based":[19],"on":[20],"output":[21,47,113],"changes.":[22,124],"Intuitively,":[23],"the":[24,28,31,35,43,61,73,80,96,108,112,119,123,163],"retraces":[27],"steps":[29],"of":[30,75,139,149],"original":[32,44],"evaluation,":[33],"rewriting":[34],"as":[37],"needed":[38],"to":[39,55,103],"reconcile":[40],"differences":[41],"between":[42],"and":[45,152,157],"updated":[46],"values.":[48],"Our":[49],"approach,":[50],"furthermore,":[51],"allows":[52],"expert":[53],"users":[54],"define":[56],"custom":[57],"lenses":[58],"that":[59],"augment":[60],"with":[64],"more":[65],"advanced":[66],"or":[67],"domain-specific":[68],"updates.":[70],"To":[71],"demonstrate":[72,145],"utility":[74],"update,":[77],"we":[78],"implement":[79],"in":[82,129,141,160,167],"Sketch-n-Sketch,":[83,95,161],"novel":[85],"direct":[86],"manipulation":[87],"system":[89],"generating":[91],"HTML":[92,105,150],"documents.":[93],"In":[94],"user":[97,109,117],"writes":[98],"ML-style":[100],"generate":[104],"output.":[106],"When":[107],"directly":[110],"manipulates":[111],"using":[114],"graphical":[116],"interface,":[118],"reconciles":[122],"evaluate":[126],"bidirectional":[127],"Sketch-n-Sketch":[130],"by":[131],"authoring":[132],"ten":[133],"examples":[134,144],"comprising":[135],"approximately":[136],"1400":[137],"lines":[138],"code":[140],"total.":[142],"These":[143],"how":[146],"variety":[148],"documents":[151],"applications":[153],"can":[154],"be":[155],"developed":[156],"edited":[158],"interactively":[159],"mitigating":[162],"tedious":[164],"edit-run-view":[165],"cycle":[166],"traditional":[168],"environments.":[170]},"counts_by_year":[{"year":2026,"cited_by_count":2},{"year":2025,"cited_by_count":5},{"year":2024,"cited_by_count":1},{"year":2023,"cited_by_count":2},{"year":2022,"cited_by_count":7},{"year":2021,"cited_by_count":3},{"year":2020,"cited_by_count":8},{"year":2019,"cited_by_count":8},{"year":2018,"cited_by_count":1}],"updated_date":"2026-04-15T08:11:43.952461","created_date":"2025-10-10T00:00:00"}
