{"id":"https://openalex.org/W4403490712","doi":"https://doi.org/10.1145/3687997.3695647","title":"Trieste: A C++ DSL for Flexible Tree Rewriting","display_name":"Trieste: A C++ DSL for Flexible Tree Rewriting","publication_year":2024,"publication_date":"2024-10-17","ids":{"openalex":"https://openalex.org/W4403490712","doi":"https://doi.org/10.1145/3687997.3695647"},"language":"en","primary_location":{"id":"doi:10.1145/3687997.3695647","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3687997.3695647","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3687997.3695647","source":null,"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 17th ACM SIGPLAN International Conference on Software Language Engineering","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"gold","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3687997.3695647","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5059345262","display_name":"Sylvan Clebsch","orcid":"https://orcid.org/0009-0004-4049-134X"},"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":true,"raw_author_name":"Sylvan Clebsch","raw_affiliation_strings":["Microsoft Azure Research, Austin, USA"],"raw_orcid":"https://orcid.org/0009-0004-4049-134X","affiliations":[{"raw_affiliation_string":"Microsoft Azure Research, Austin, USA","institution_ids":["https://openalex.org/I1290206253"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5114303062","display_name":"Matilda Blomqvist","orcid":null},"institutions":[{"id":"https://openalex.org/I123387679","display_name":"Uppsala University","ror":"https://ror.org/048a87296","country_code":"SE","type":"education","lineage":["https://openalex.org/I123387679"]}],"countries":["SE"],"is_corresponding":false,"raw_author_name":"Matilda Blomqvist","raw_affiliation_strings":["Uppsala University, Uppsala, Sweden"],"raw_orcid":"https://orcid.org/0009-0005-3795-2990","affiliations":[{"raw_affiliation_string":"Uppsala University, Uppsala, Sweden","institution_ids":["https://openalex.org/I123387679"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5066526895","display_name":"Elias Castegren","orcid":"https://orcid.org/0000-0003-4918-6582"},"institutions":[{"id":"https://openalex.org/I123387679","display_name":"Uppsala University","ror":"https://ror.org/048a87296","country_code":"SE","type":"education","lineage":["https://openalex.org/I123387679"]}],"countries":["SE"],"is_corresponding":false,"raw_author_name":"Elias Castegren","raw_affiliation_strings":["Uppsala University, Uppsala, Sweden"],"raw_orcid":"https://orcid.org/0000-0003-4918-6582","affiliations":[{"raw_affiliation_string":"Uppsala University, Uppsala, Sweden","institution_ids":["https://openalex.org/I123387679"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5045688578","display_name":"Matthew Johnson","orcid":"https://orcid.org/0000-0002-1019-8036"},"institutions":[{"id":"https://openalex.org/I4210164937","display_name":"Microsoft Research (United Kingdom)","ror":"https://ror.org/05k87vq12","country_code":"GB","type":"company","lineage":["https://openalex.org/I1290206253","https://openalex.org/I4210164937"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Matthew A. Johnson","raw_affiliation_strings":["Microsoft Azure Research, Cambridge, United Kingdom"],"raw_orcid":"https://orcid.org/0000-0002-1019-8036","affiliations":[{"raw_affiliation_string":"Microsoft Azure Research, Cambridge, United Kingdom","institution_ids":["https://openalex.org/I4210164937"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5001725251","display_name":"Matthew Parkinson","orcid":"https://orcid.org/0009-0004-3937-1260"},"institutions":[{"id":"https://openalex.org/I4210164937","display_name":"Microsoft Research (United Kingdom)","ror":"https://ror.org/05k87vq12","country_code":"GB","type":"company","lineage":["https://openalex.org/I1290206253","https://openalex.org/I4210164937"]}],"countries":["GB"],"is_corresponding":false,"raw_author_name":"Matthew J. Parkinson","raw_affiliation_strings":["Microsoft Azure Research, Cambridge, United Kingdom"],"raw_orcid":"https://orcid.org/0009-0004-3937-1260","affiliations":[{"raw_affiliation_string":"Microsoft Azure Research, Cambridge, United Kingdom","institution_ids":["https://openalex.org/I4210164937"]}]}],"institutions":[],"countries_distinct_count":3,"institutions_distinct_count":5,"corresponding_author_ids":["https://openalex.org/A5059345262"],"corresponding_institution_ids":["https://openalex.org/I1290206253"],"apc_list":null,"apc_paid":null,"fwci":0.3311,"has_fulltext":false,"cited_by_count":1,"citation_normalized_percentile":{"value":0.66838092,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":91,"max":95},"biblio":{"volume":null,"issue":null,"first_page":"184","last_page":"189"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9995999932289124,"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"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9995999932289124,"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/T10142","display_name":"Formal Methods in Verification","score":0.9973999857902527,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9973000288009644,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"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.9397106766700745},{"id":"https://openalex.org/keywords/rewriting","display_name":"Rewriting","score":0.8542302846908569},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.6558856964111328},{"id":"https://openalex.org/keywords/tree","display_name":"Tree (set theory)","score":0.6288362145423889},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.42775291204452515},{"id":"https://openalex.org/keywords/telecommunications","display_name":"Telecommunications","score":0.13001948595046997},{"id":"https://openalex.org/keywords/mathematics","display_name":"Mathematics","score":0.12462255358695984},{"id":"https://openalex.org/keywords/combinatorics","display_name":"Combinatorics","score":0.04420080780982971}],"concepts":[{"id":"https://openalex.org/C201374245","wikidata":"https://www.wikidata.org/wiki/Q104534","display_name":"Digital subscriber line","level":2,"score":0.9397106766700745},{"id":"https://openalex.org/C154690210","wikidata":"https://www.wikidata.org/wiki/Q1668499","display_name":"Rewriting","level":2,"score":0.8542302846908569},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6558856964111328},{"id":"https://openalex.org/C113174947","wikidata":"https://www.wikidata.org/wiki/Q2859736","display_name":"Tree (set theory)","level":2,"score":0.6288362145423889},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.42775291204452515},{"id":"https://openalex.org/C76155785","wikidata":"https://www.wikidata.org/wiki/Q418","display_name":"Telecommunications","level":1,"score":0.13001948595046997},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.12462255358695984},{"id":"https://openalex.org/C114614502","wikidata":"https://www.wikidata.org/wiki/Q76592","display_name":"Combinatorics","level":1,"score":0.04420080780982971}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3687997.3695647","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3687997.3695647","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3687997.3695647","source":null,"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 17th ACM SIGPLAN International Conference on Software Language Engineering","raw_type":"proceedings-article"},{"id":"pmh:oai:DiVA.org:uu-541892","is_oa":true,"landing_page_url":"http://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-541892","pdf_url":null,"source":{"id":"https://openalex.org/S4306401559","display_name":"KTH Publication Database DiVA (KTH Royal Institute of Technology)","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":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"}],"best_oa_location":{"id":"doi:10.1145/3687997.3695647","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3687997.3695647","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3687997.3695647","source":null,"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 17th ACM SIGPLAN International Conference on Software Language Engineering","raw_type":"proceedings-article"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4403490712.pdf"},"referenced_works_count":7,"referenced_works":["https://openalex.org/W1517760837","https://openalex.org/W2109507516","https://openalex.org/W2121410918","https://openalex.org/W2147892488","https://openalex.org/W2295274562","https://openalex.org/W4300782170","https://openalex.org/W4387667115"],"related_works":["https://openalex.org/W4391375266","https://openalex.org/W2899084033","https://openalex.org/W2748952813","https://openalex.org/W1622568043","https://openalex.org/W2056183469","https://openalex.org/W2055565857","https://openalex.org/W4230802329","https://openalex.org/W2151852566","https://openalex.org/W2087366038","https://openalex.org/W4299645117"],"abstract_inverted_index":{"Compilation":[0],"is":[1,12,16,40,125],"all":[2,10],"about":[3],"tree":[4,14,97,140],"rewriting.":[5],"In":[6,30,57,79],"functional":[7],"languages":[8,32],"where":[9,122],"data":[11,22,147],"tree-shaped,":[13],"rewriting":[15],"facilitated":[17],"by":[18],"pattern":[19,77,120],"matching,":[20,121],"but":[21,49],"immutability":[23],"leads":[24],"to":[25,41,88,92,103,109,144,174,184,197],"copying":[26],"for":[27,128,149,160,169,189,204],"each":[28,150],"update.":[29],"object-oriented":[31],"like":[33],"Java":[34],"or":[35,105],"C++,":[36],"a":[37,64,90,193,200],"standard":[38],"approach":[39],"use":[42],"the":[43,69,74,123,131,139,176,205],"visitor":[44],"pattern,":[45],"which":[46],"increases":[47],"modularization":[48],"also":[50,157],"adds":[51],"indirection":[52],"and":[53,164,191,199,202],"introduces":[54],"boilerplate":[55],"code.":[56],"this":[58],"paper,":[59],"we":[60],"introduce":[61],"Trieste":[62,180],"--":[63],"novel":[65],"tree-rewriting":[66],"DSL,":[67],"combining":[68],"power":[70],"of":[71,76,82,133,178],"C++":[72],"with":[73],"expressivity":[75],"matching.":[78],"Trieste,":[80],"sequences":[81],"rewrite":[83],"passes":[84],"can":[85,156],"be":[86,158],"used":[87,159,183],"read":[89],"file":[91],"produce":[93],"an":[94,107,114],"abstract":[95],"syntax":[96],"(AST),":[98],"convert":[99],"from":[100,195],"one":[101],"AST":[102,108,115],"another,":[104],"write":[106],"disk.":[110],"Each":[111],"pass":[112],"rewrites":[113],"in":[116,172],"place":[117],"using":[118],"subtree":[119],"result":[124],"dynamically":[126,135],"checked":[127],"well-formedness.":[129],"Checking":[130],"well-formedness":[132,154],"trees":[134,168],"enables":[136],"flexibly":[137],"changing":[138],"structure":[141],"without":[142],"having":[143],"define":[145],"new":[146],"types":[148],"intermediate":[151],"representation.":[152],"The":[153],"specification":[155],"scoped":[161],"name":[162],"binding":[163],"generating":[165],"random":[166],"well-formed":[167],"fuzz":[170],"testing":[171],"addition":[173],"checking":[175],"shape":[177],"trees.":[179],"has":[181],"been":[182],"build":[185],"fully":[186],"compliant":[187],"parsers":[188],"YAML":[190,196],"JSON,":[192,198],"transpiler":[194],"compiler":[201],"interpreter":[203],"policy":[206],"language":[207],"Rego.":[208]},"counts_by_year":[{"year":2025,"cited_by_count":1}],"updated_date":"2026-03-27T05:58:40.876381","created_date":"2025-10-10T00:00:00"}
