{"id":"https://openalex.org/W2000616678","doi":"https://doi.org/10.1145/1232420.1232424","title":"Combinators for bidirectional tree transformations","display_name":"Combinators for bidirectional tree transformations","publication_year":2007,"publication_date":"2007-05-01","ids":{"openalex":"https://openalex.org/W2000616678","doi":"https://doi.org/10.1145/1232420.1232424","mag":"2000616678"},"language":"en","primary_location":{"id":"doi:10.1145/1232420.1232424","is_oa":true,"landing_page_url":"https://doi.org/10.1145/1232420.1232424","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/1232420.1232424","source":{"id":"https://openalex.org/S41449414","display_name":"ACM Transactions on Programming Languages and Systems","issn_l":"0164-0925","issn":["0164-0925","1558-4593"],"is_oa":false,"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":"ACM Transactions on Programming Languages and Systems","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"bronze","oa_url":"https://dl.acm.org/doi/pdf/10.1145/1232420.1232424","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5021058685","display_name":"J. Nathan Foster","orcid":null},"institutions":[{"id":"https://openalex.org/I79576946","display_name":"University of Pennsylvania","ror":"https://ror.org/00b30xv10","country_code":"US","type":"education","lineage":["https://openalex.org/I79576946"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"J. Nathan Foster","raw_affiliation_strings":["University of Pennsylvania, Philadelphia, PA"],"affiliations":[{"raw_affiliation_string":"University of Pennsylvania, Philadelphia, PA","institution_ids":["https://openalex.org/I79576946"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5008794446","display_name":"Michael B. Greenwald","orcid":null},"institutions":[{"id":"https://openalex.org/I1322087612","display_name":"Alcatel Lucent (Germany)","ror":"https://ror.org/00c5mwp75","country_code":"DE","type":"company","lineage":["https://openalex.org/I1322087612"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Michael B. Greenwald","raw_affiliation_strings":["Bell Labs, Lucent Technologies","Bell Laboratories - Lucent Technologies"],"affiliations":[{"raw_affiliation_string":"Bell Labs, Lucent Technologies","institution_ids":["https://openalex.org/I1322087612"]},{"raw_affiliation_string":"Bell Laboratories - Lucent Technologies","institution_ids":["https://openalex.org/I1322087612"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5010881187","display_name":"Jonathan T. Moore","orcid":null},"institutions":[{"id":"https://openalex.org/I36788626","display_name":"California University of Pennsylvania","ror":"https://ror.org/01spssf70","country_code":"US","type":"education","lineage":["https://openalex.org/I36788626"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Jonathan T. Moore","raw_affiliation_strings":["University of Pennsylvania","#N# * University of Pennsylvania"],"affiliations":[{"raw_affiliation_string":"University of Pennsylvania","institution_ids":["https://openalex.org/I36788626"]},{"raw_affiliation_string":"#N# * University of Pennsylvania","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5085361253","display_name":"Benjamin C. Pierce","orcid":"https://orcid.org/0000-0001-7839-1636"},"institutions":[{"id":"https://openalex.org/I36788626","display_name":"California University of Pennsylvania","ror":"https://ror.org/01spssf70","country_code":"US","type":"education","lineage":["https://openalex.org/I36788626"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Benjamin C. Pierce","raw_affiliation_strings":["University of Pennsylvania","#N# * University of Pennsylvania"],"affiliations":[{"raw_affiliation_string":"University of Pennsylvania","institution_ids":["https://openalex.org/I36788626"]},{"raw_affiliation_string":"#N# * University of Pennsylvania","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5013605827","display_name":"Alan Schmitt","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Alan Schmitt","raw_affiliation_strings":["INRIA Rh\u00f4ne-Alpes"],"affiliations":[{"raw_affiliation_string":"INRIA Rh\u00f4ne-Alpes","institution_ids":[]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":5,"corresponding_author_ids":["https://openalex.org/A5021058685"],"corresponding_institution_ids":["https://openalex.org/I79576946"],"apc_list":null,"apc_paid":null,"fwci":30.1406,"has_fulltext":true,"cited_by_count":415,"citation_normalized_percentile":{"value":0.99803922,"is_in_top_1_percent":true,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":99,"max":100},"biblio":{"volume":"29","issue":"3","first_page":"17","last_page":"17"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.9987999796867371,"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/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.9987999796867371,"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/T10317","display_name":"Advanced Database Systems and Queries","score":0.9987000226974487,"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"}},{"id":"https://openalex.org/T10215","display_name":"Semantic Web and Ontologies","score":0.9980000257492065,"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/combinatory-logic","display_name":"Combinatory logic","score":0.9428080320358276},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.870100736618042},{"id":"https://openalex.org/keywords/tree","display_name":"Tree (set theory)","score":0.591095507144928},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.5004856586456299},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.5001516342163086},{"id":"https://openalex.org/keywords/generic-programming","display_name":"Generic programming","score":0.49380001425743103},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.49049752950668335},{"id":"https://openalex.org/keywords/recursion","display_name":"Recursion (computer science)","score":0.4859699010848999},{"id":"https://openalex.org/keywords/associative-property","display_name":"Associative property","score":0.4679832458496094},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.11039313673973083}],"concepts":[{"id":"https://openalex.org/C79678938","wikidata":"https://www.wikidata.org/wiki/Q1481571","display_name":"Combinatory logic","level":2,"score":0.9428080320358276},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.870100736618042},{"id":"https://openalex.org/C113174947","wikidata":"https://www.wikidata.org/wiki/Q2859736","display_name":"Tree (set theory)","level":2,"score":0.591095507144928},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.5004856586456299},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.5001516342163086},{"id":"https://openalex.org/C7051814","wikidata":"https://www.wikidata.org/wiki/Q1051282","display_name":"Generic programming","level":2,"score":0.49380001425743103},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.49049752950668335},{"id":"https://openalex.org/C168773036","wikidata":"https://www.wikidata.org/wiki/Q264164","display_name":"Recursion (computer science)","level":2,"score":0.4859699010848999},{"id":"https://openalex.org/C159423971","wikidata":"https://www.wikidata.org/wiki/Q177251","display_name":"Associative property","level":2,"score":0.4679832458496094},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.11039313673973083},{"id":"https://openalex.org/C202444582","wikidata":"https://www.wikidata.org/wiki/Q837863","display_name":"Pure mathematics","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/1232420.1232424","is_oa":true,"landing_page_url":"https://doi.org/10.1145/1232420.1232424","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/1232420.1232424","source":{"id":"https://openalex.org/S41449414","display_name":"ACM Transactions on Programming Languages and Systems","issn_l":"0164-0925","issn":["0164-0925","1558-4593"],"is_oa":false,"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":"ACM Transactions on Programming Languages and Systems","raw_type":"journal-article"},{"id":"pmh:oai:HAL:inria-00484971v1","is_oa":true,"landing_page_url":"https://inria.hal.science/inria-00484971","pdf_url":null,"source":{"id":"https://openalex.org/S4306402512","display_name":"HAL (Le Centre pour la Communication Scientifique Directe)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I1294671590","host_organization_name":"Centre National de la Recherche Scientifique","host_organization_lineage":["https://openalex.org/I1294671590"],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"ACM Transactions on Programming Languages and Systems (TOPLAS), 2007, ACM Transactions on Programming Languages and Systems, 29 (3), pp.17. &#x27E8;10.1145/1232420.1232424&#x27E9;","raw_type":"Journal articles"}],"best_oa_location":{"id":"doi:10.1145/1232420.1232424","is_oa":true,"landing_page_url":"https://doi.org/10.1145/1232420.1232424","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/1232420.1232424","source":{"id":"https://openalex.org/S41449414","display_name":"ACM Transactions on Programming Languages and Systems","issn_l":"0164-0925","issn":["0164-0925","1558-4593"],"is_oa":false,"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":"ACM Transactions on Programming Languages and Systems","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G6507447573","display_name":null,"funder_award_id":"several","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"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/G8666115267","display_name":"ITR/SY+IM: Principles and Practice of Synchronization","funder_award_id":"0113226","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/W2000616678.pdf","grobid_xml":"https://content.openalex.org/works/W2000616678.grobid-xml"},"referenced_works_count":58,"referenced_works":["https://openalex.org/W25937446","https://openalex.org/W154403928","https://openalex.org/W633421911","https://openalex.org/W983225584","https://openalex.org/W1479789170","https://openalex.org/W1480150619","https://openalex.org/W1483655851","https://openalex.org/W1504393915","https://openalex.org/W1506888682","https://openalex.org/W1511668635","https://openalex.org/W1559822207","https://openalex.org/W1560248234","https://openalex.org/W1567793656","https://openalex.org/W1570577173","https://openalex.org/W1573343649","https://openalex.org/W1578174444","https://openalex.org/W1822303551","https://openalex.org/W1849684570","https://openalex.org/W1884126869","https://openalex.org/W1984295127","https://openalex.org/W1985223393","https://openalex.org/W1988391412","https://openalex.org/W1998077539","https://openalex.org/W2008161228","https://openalex.org/W2032339126","https://openalex.org/W2040293060","https://openalex.org/W2068967633","https://openalex.org/W2082506607","https://openalex.org/W2097402427","https://openalex.org/W2105259569","https://openalex.org/W2111112637","https://openalex.org/W2112691528","https://openalex.org/W2113288486","https://openalex.org/W2113582770","https://openalex.org/W2114980032","https://openalex.org/W2115810994","https://openalex.org/W2125399128","https://openalex.org/W2125713144","https://openalex.org/W2129743596","https://openalex.org/W2131650048","https://openalex.org/W2138709157","https://openalex.org/W2146462464","https://openalex.org/W2151592950","https://openalex.org/W2162294668","https://openalex.org/W2168787502","https://openalex.org/W2176656321","https://openalex.org/W2216136975","https://openalex.org/W2294548604","https://openalex.org/W2296293111","https://openalex.org/W2479583503","https://openalex.org/W2913026635","https://openalex.org/W3088085860","https://openalex.org/W3157948251","https://openalex.org/W4233037448","https://openalex.org/W4285042649","https://openalex.org/W6657732435","https://openalex.org/W6721957833","https://openalex.org/W6759142343"],"related_works":["https://openalex.org/W2949151943","https://openalex.org/W2084470481","https://openalex.org/W2150616836","https://openalex.org/W2521829344","https://openalex.org/W1734457603","https://openalex.org/W2155480936","https://openalex.org/W2983814404","https://openalex.org/W2011055092","https://openalex.org/W3023013741","https://openalex.org/W1483040095"],"abstract_inverted_index":{"We":[0,79,100,150],"propose":[1],"a":[2,12,32,36,45,56,83,110,159,180,185,193],"novel":[3,141],"approach":[4],"to":[5,55,119,178],"the":[6,41,51,107,152],"view-update":[7],"problem":[8],"for":[9,76,143],"tree-structured":[10],"data:":[11],"domain-specific":[13],"programming":[14,132],"language":[15],"in":[16,40,97,106],"which":[17],"all":[18],"expressions":[19],"denote":[20],"bidirectional":[21,88,121,162],"transformations":[22,89,122,164],"on":[23,123],"trees.":[24,124],"In":[25],"one":[26],"direction,":[27],"these":[28,155],"transformations---dubbed":[29],"lenses":[30],"---map":[31],"concrete":[33,53,59],"tree":[34],"into":[35],"simplified":[37],"abstract":[38,47,195],"view;":[39],"other,":[42],"they":[43],"map":[44],"modified":[46,58],"view,":[48],"together":[49,138],"with":[50,139],"original":[52],"tree,":[54],"correspondingly":[57],"tree.":[60],"Our":[61],"design":[62],"emphasizes":[63],"both":[64],"robustness":[65],"and":[66,73,95,192],"ease":[67],"of":[68,86,109,112,154,161,189],"use,":[69],"guaranteeing":[70],"strong":[71],"well-behavedness":[72],"totality":[74],"properties":[75],"well-typed":[77],"lenses.":[78],"begin":[80],"by":[81,157],"identifying":[82],"natural":[84],"space":[85],"well-behaved":[87],"over":[90],"arbitrary":[91],"structures,":[92],"studying":[93],"definedness":[94],"continuity":[96],"this":[98,103],"setting.":[99],"then":[101],"instantiate":[102],"semantic":[104],"framework":[105],"form":[108],"collection":[111],"lens":[113,181],"combinators":[114,126,156,174],"that":[115,182],"can":[116,175],"be":[117,176],"assembled":[118],"describe":[120],"These":[125],"include":[127],"familiar":[128],"constructs":[129],"from":[130],"functional":[131],"(composition,":[133],"mapping,":[134],"projection,":[135],"conditionals,":[136],"recursion)":[137],"some":[140],"primitives":[142],"manipulating":[144],"trees":[145],"(splitting,":[146],"pruning,":[147],"merging,":[148],"etc.).":[149],"illustrate":[151],"expressiveness":[153],"developing":[158],"number":[160],"list-processing":[163],"as":[165],"derived":[166],"forms.":[167],"An":[168],"extended":[169],"example":[170],"shows":[171],"how":[172],"our":[173],"used":[177],"define":[179],"translates":[183],"between":[184],"native":[186],"HTML":[187],"representation":[188],"browser":[190],"bookmarks":[191],"generic":[194],"bookmark":[196],"format.":[197]},"counts_by_year":[{"year":2026,"cited_by_count":5},{"year":2025,"cited_by_count":12},{"year":2024,"cited_by_count":23},{"year":2023,"cited_by_count":13},{"year":2022,"cited_by_count":15},{"year":2021,"cited_by_count":19},{"year":2020,"cited_by_count":32},{"year":2019,"cited_by_count":25},{"year":2018,"cited_by_count":29},{"year":2017,"cited_by_count":12},{"year":2016,"cited_by_count":23},{"year":2015,"cited_by_count":27},{"year":2014,"cited_by_count":33},{"year":2013,"cited_by_count":17},{"year":2012,"cited_by_count":28}],"updated_date":"2026-04-11T08:14:18.477133","created_date":"2016-06-24T00:00:00"}
