{"id":"https://openalex.org/W2954990002","doi":"https://doi.org/10.1145/3314221.3314589","title":"Lightweight multi-language syntax transformation with parser parser combinators","display_name":"Lightweight multi-language syntax transformation with parser parser combinators","publication_year":2019,"publication_date":"2019-06-07","ids":{"openalex":"https://openalex.org/W2954990002","doi":"https://doi.org/10.1145/3314221.3314589","mag":"2954990002"},"language":"en","primary_location":{"id":"doi:10.1145/3314221.3314589","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3314221.3314589","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3314221.3314589","source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation","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/3314221.3314589","any_repository_has_fulltext":null},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5056334354","display_name":"Rijnard van Tonder","orcid":"https://orcid.org/0000-0002-2912-191X"},"institutions":[{"id":"https://openalex.org/I74973139","display_name":"Carnegie Mellon University","ror":"https://ror.org/05x2bcf33","country_code":"US","type":"education","lineage":["https://openalex.org/I74973139"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Rijnard van Tonder","raw_affiliation_strings":["Carnegie Mellon University, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Carnegie Mellon University, USA","institution_ids":["https://openalex.org/I74973139"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5032356672","display_name":"Claire Le Goues","orcid":"https://orcid.org/0000-0002-3931-060X"},"institutions":[{"id":"https://openalex.org/I74973139","display_name":"Carnegie Mellon University","ror":"https://ror.org/05x2bcf33","country_code":"US","type":"education","lineage":["https://openalex.org/I74973139"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Claire Le Goues","raw_affiliation_strings":["Carnegie Mellon University, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Carnegie Mellon University, USA","institution_ids":["https://openalex.org/I74973139"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5056334354"],"corresponding_institution_ids":["https://openalex.org/I74973139"],"apc_list":null,"apc_paid":null,"fwci":4.5807,"has_fulltext":true,"cited_by_count":30,"citation_normalized_percentile":{"value":0.9516943,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":90,"max":99},"biblio":{"volume":null,"issue":null,"first_page":"363","last_page":"378"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9997000098228455,"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.9997000098228455,"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.9987000226974487,"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/T11241","display_name":"Advanced Malware Detection Techniques","score":0.9955000281333923,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8862564563751221},{"id":"https://openalex.org/keywords/abstract-syntax-tree","display_name":"Abstract syntax tree","score":0.857187807559967},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.8004031181335449},{"id":"https://openalex.org/keywords/parsing","display_name":"Parsing","score":0.778078556060791},{"id":"https://openalex.org/keywords/parser-combinator","display_name":"Parser combinator","score":0.721625566482544},{"id":"https://openalex.org/keywords/abstract-syntax","display_name":"Abstract syntax","score":0.6407390236854553},{"id":"https://openalex.org/keywords/syntax","display_name":"Syntax","score":0.5800305604934692},{"id":"https://openalex.org/keywords/natural-language-processing","display_name":"Natural language processing","score":0.5267483592033386},{"id":"https://openalex.org/keywords/syntax-error","display_name":"Syntax error","score":0.46630704402923584},{"id":"https://openalex.org/keywords/rewriting","display_name":"Rewriting","score":0.46291428804397583},{"id":"https://openalex.org/keywords/artificial-intelligence","display_name":"Artificial intelligence","score":0.46103858947753906},{"id":"https://openalex.org/keywords/grammar","display_name":"Grammar","score":0.41337448358535767},{"id":"https://openalex.org/keywords/combinatory-logic","display_name":"Combinatory logic","score":0.4126993417739868},{"id":"https://openalex.org/keywords/top-down-parsing","display_name":"Top-down parsing","score":0.41178569197654724},{"id":"https://openalex.org/keywords/linguistics","display_name":"Linguistics","score":0.14854514598846436}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8862564563751221},{"id":"https://openalex.org/C58646249","wikidata":"https://www.wikidata.org/wiki/Q127380","display_name":"Abstract syntax tree","level":3,"score":0.857187807559967},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8004031181335449},{"id":"https://openalex.org/C186644900","wikidata":"https://www.wikidata.org/wiki/Q194152","display_name":"Parsing","level":2,"score":0.778078556060791},{"id":"https://openalex.org/C118364021","wikidata":"https://www.wikidata.org/wiki/Q7139956","display_name":"Parser combinator","level":3,"score":0.721625566482544},{"id":"https://openalex.org/C114408938","wikidata":"https://www.wikidata.org/wiki/Q333373","display_name":"Abstract syntax","level":3,"score":0.6407390236854553},{"id":"https://openalex.org/C60048249","wikidata":"https://www.wikidata.org/wiki/Q37437","display_name":"Syntax","level":2,"score":0.5800305604934692},{"id":"https://openalex.org/C204321447","wikidata":"https://www.wikidata.org/wiki/Q30642","display_name":"Natural language processing","level":1,"score":0.5267483592033386},{"id":"https://openalex.org/C11742125","wikidata":"https://www.wikidata.org/wiki/Q1195374","display_name":"Syntax error","level":4,"score":0.46630704402923584},{"id":"https://openalex.org/C154690210","wikidata":"https://www.wikidata.org/wiki/Q1668499","display_name":"Rewriting","level":2,"score":0.46291428804397583},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.46103858947753906},{"id":"https://openalex.org/C26022165","wikidata":"https://www.wikidata.org/wiki/Q8091","display_name":"Grammar","level":2,"score":0.41337448358535767},{"id":"https://openalex.org/C79678938","wikidata":"https://www.wikidata.org/wiki/Q1481571","display_name":"Combinatory logic","level":2,"score":0.4126993417739868},{"id":"https://openalex.org/C42560504","wikidata":"https://www.wikidata.org/wiki/Q15419395","display_name":"Top-down parsing","level":3,"score":0.41178569197654724},{"id":"https://openalex.org/C41895202","wikidata":"https://www.wikidata.org/wiki/Q8162","display_name":"Linguistics","level":1,"score":0.14854514598846436},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3314221.3314589","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3314221.3314589","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3314221.3314589","source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation","raw_type":"proceedings-article"}],"best_oa_location":{"id":"doi:10.1145/3314221.3314589","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3314221.3314589","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3314221.3314589","source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation","raw_type":"proceedings-article"},"sustainable_development_goals":[],"awards":[{"id":"https://openalex.org/G479325200","display_name":"CAREER: Quality Matters: Dynamic, Static and Proactive Analyses for Automated Program Repair","funder_award_id":"1750116","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G5633259857","display_name":"SHF: Medium: Collaborative Research: Semi and Fully Automated Program Repair and Synthesis via Semantic Code Search","funder_award_id":"1563797","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G5896333659","display_name":null,"funder_award_id":"CCF-1750116,CCF-1563797","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":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2954990002.pdf","grobid_xml":"https://content.openalex.org/works/W2954990002.grobid-xml"},"referenced_works_count":49,"referenced_works":["https://openalex.org/W12570917","https://openalex.org/W121159850","https://openalex.org/W1490215723","https://openalex.org/W1492318810","https://openalex.org/W1541556120","https://openalex.org/W1590044367","https://openalex.org/W1625533892","https://openalex.org/W1872365633","https://openalex.org/W1982227016","https://openalex.org/W1987353911","https://openalex.org/W2018045485","https://openalex.org/W2020024606","https://openalex.org/W2029087760","https://openalex.org/W2036134187","https://openalex.org/W2041042116","https://openalex.org/W2049801349","https://openalex.org/W2054111305","https://openalex.org/W2055117747","https://openalex.org/W2065428406","https://openalex.org/W2076719273","https://openalex.org/W2098396599","https://openalex.org/W2104789737","https://openalex.org/W2123835026","https://openalex.org/W2125872407","https://openalex.org/W2128466029","https://openalex.org/W2128469707","https://openalex.org/W2151033407","https://openalex.org/W2166030873","https://openalex.org/W2274071363","https://openalex.org/W2282254285","https://openalex.org/W2320211919","https://openalex.org/W2342091124","https://openalex.org/W2403799053","https://openalex.org/W2404969801","https://openalex.org/W2421250929","https://openalex.org/W2469513535","https://openalex.org/W2471871865","https://openalex.org/W2579253943","https://openalex.org/W2597891906","https://openalex.org/W2735887905","https://openalex.org/W2754883653","https://openalex.org/W2795338679","https://openalex.org/W2885899032","https://openalex.org/W2895718634","https://openalex.org/W3023580939","https://openalex.org/W3125073197","https://openalex.org/W4235855608","https://openalex.org/W4237774781","https://openalex.org/W4240869246"],"related_works":["https://openalex.org/W3149405943","https://openalex.org/W2070147537","https://openalex.org/W2393678839","https://openalex.org/W2027654275","https://openalex.org/W2142778118","https://openalex.org/W2483803551","https://openalex.org/W4235735989","https://openalex.org/W2595748328","https://openalex.org/W2954990002","https://openalex.org/W2032260294"],"abstract_inverted_index":{"Automatically":[0],"transforming":[1],"programs":[2,125],"is":[3,17,35,145],"hard,":[4],"yet":[5],"critical":[6],"for":[7,72,85,104],"automated":[8],"program":[9],"refactoring,":[10],"rewriting,":[11],"and":[12,28,60,75,133,151,163,176,183,192],"repair.":[13],"Multi-language":[14],"syntax":[15,30,70,83,130,135,167],"transformation":[16],"especially":[18],"hard":[19],"due":[20],"to":[21,80,120,126,137,225],"heterogeneous":[22],"representations":[23],"in":[24,65,77,108,228],"syntax,":[25],"parse":[26],"trees,":[27],"abstract":[29,129,166],"trees":[31],"(ASTs).":[32],"Our":[33,87,213],"insight":[34],"that":[36,43,101,146,171],"the":[37,49,66,149],"problem":[38],"can":[39],"be":[40],"decomposed":[41],"such":[42],"(1)":[44],"a":[45,94,99,138],"common":[46],"grammar":[47,67],"expresses":[48],"central":[50],"context-free":[51],"language":[52],"(CFL)":[53],"properties":[54],"shared":[55],"by":[56,111,189,205],"many":[57],"contemporary":[58],"languages":[59],"(2)":[61],"open":[62],"extension":[63],"points":[64],"allow":[68],"customizing":[69],"(e.g.,":[71,84],"balanced":[73],"delimiters)":[74],"hooks":[76],"smaller":[78],"parsers":[79,103],"handle":[81],"language-specific":[82,230],"comments).":[86],"key":[88],"contribution":[89],"operationalizes":[90],"this":[91],"decomposition":[92],"using":[93],"Parser":[95,96],"combinator":[97],"(PPC),":[98],"mechanism":[100],"generates":[102],"matching":[105],"syntactic":[106,202],"fragments":[107],"source":[109],"code":[110,223],"parsing":[112,140],"declarative":[113,177,214],"user-supplied":[114],"templates.":[115],"This":[116],"allows":[117],"our":[118,187,206],"approach":[119,188,207],"detach":[121],"from":[122],"translating":[123],"input":[124,161],"any":[127],"particular":[128],"tree":[131],"representation,":[132],"lifts":[134],"rewriting":[136],"modularly-defined":[139],"problem.":[141],"A":[142],"notable":[143],"effect":[144],"we":[147],"skirt":[148],"complexity":[150],"burden":[152],"of":[153,186,220],"defining":[154],"additional":[155],"translation":[156],"layers":[157],"between":[158],"concrete":[159],"user":[160],"templates":[162,179],"an":[164,218],"underlying":[165],"representation.":[168],"We":[169],"demonstrate":[170],"these":[172],"ideas":[173],"admit":[174],"efficient":[175],"rewrite":[178,215],"across":[180],"12":[181],"languages,":[182],"validate":[184],"effectiveness":[185],"producing":[190],"correct":[191],"desirable":[193],"lightweight":[194],"transformations":[195],"on":[196],"popular":[197],"real-world":[198],"projects":[199],"(over":[200],"50":[201],"changes":[203],"produced":[204],"have":[208],"been":[209],"merged":[210],"into":[211],"40+).":[212],"patterns":[216],"require":[217],"order":[219],"magnitude":[221],"less":[222],"compared":[224],"analog":[226],"implementations":[227],"existing,":[229],"tools.":[231]},"counts_by_year":[{"year":2025,"cited_by_count":1},{"year":2024,"cited_by_count":11},{"year":2023,"cited_by_count":5},{"year":2022,"cited_by_count":6},{"year":2021,"cited_by_count":3},{"year":2020,"cited_by_count":3},{"year":2019,"cited_by_count":1}],"updated_date":"2026-04-28T14:05:53.105641","created_date":"2025-10-10T00:00:00"}
