{"id":"https://openalex.org/W4399850854","doi":"https://doi.org/10.1145/3656429","title":"A Lightweight Polyglot Code Transformation Language","display_name":"A Lightweight Polyglot Code Transformation Language","publication_year":2024,"publication_date":"2024-06-20","ids":{"openalex":"https://openalex.org/W4399850854","doi":"https://doi.org/10.1145/3656429"},"language":"en","primary_location":{"id":"doi:10.1145/3656429","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3656429","pdf_url":null,"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://doi.org/10.1145/3656429","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5050565191","display_name":"Ameya Ketkar","orcid":"https://orcid.org/0000-0003-0402-0239"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Ameya Ketkar","raw_affiliation_strings":["Gitar Inc., San Mateo, United States"],"raw_orcid":"https://orcid.org/0000-0003-0402-0239","affiliations":[{"raw_affiliation_string":"Gitar Inc., San Mateo, United States","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5104471768","display_name":"Daniel Ramos","orcid":"https://orcid.org/0000-0002-2147-2176"},"institutions":[{"id":"https://openalex.org/I121345201","display_name":"Instituto de Engenharia de Sistemas e Computadores Investiga\u00e7\u00e3o e Desenvolvimento","ror":"https://ror.org/04mqy3p58","country_code":"PT","type":"nonprofit","lineage":["https://openalex.org/I121345201","https://openalex.org/I4210125590"]},{"id":"https://openalex.org/I141596103","display_name":"University of Lisbon","ror":"https://ror.org/01c27hj86","country_code":"PT","type":"education","lineage":["https://openalex.org/I141596103"]},{"id":"https://openalex.org/I203847022","display_name":"Instituto Polit\u00e9cnico de Lisboa","ror":"https://ror.org/04ea70f07","country_code":"PT","type":"education","lineage":["https://openalex.org/I203847022"]},{"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":["PT","US"],"is_corresponding":false,"raw_author_name":"Daniel Ramos","raw_affiliation_strings":["Carnegie Mellon University, Pittsburgh, USA","INESC-ID, Lisbon, Portugal","Instituto Superior T\u00e9cnico, Universidade de Lisboa, Lisbon, Portugal","Carnegie Mellon University, Pittsburgh, USA / INESC-ID, Lisbon, Portugal / Instituto Superior T\u00e9cnico, Universidade de Lisboa, Lisbon, Portugal"],"raw_orcid":"https://orcid.org/0000-0002-2147-2176","affiliations":[{"raw_affiliation_string":"Carnegie Mellon University, Pittsburgh, USA","institution_ids":["https://openalex.org/I74973139"]},{"raw_affiliation_string":"INESC-ID, Lisbon, Portugal","institution_ids":["https://openalex.org/I121345201"]},{"raw_affiliation_string":"Instituto Superior T\u00e9cnico, Universidade de Lisboa, Lisbon, Portugal","institution_ids":["https://openalex.org/I141596103","https://openalex.org/I203847022"]},{"raw_affiliation_string":"Carnegie Mellon University, Pittsburgh, USA / INESC-ID, Lisbon, Portugal / Instituto Superior T\u00e9cnico, Universidade de Lisboa, Lisbon, Portugal","institution_ids":["https://openalex.org/I121345201","https://openalex.org/I141596103","https://openalex.org/I74973139"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5048111556","display_name":"Lazaro Clapp","orcid":"https://orcid.org/0009-0001-9773-7273"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Lazaro Clapp","raw_affiliation_strings":["Gitar Inc., New York, USA"],"raw_orcid":"https://orcid.org/0009-0001-9773-7273","affiliations":[{"raw_affiliation_string":"Gitar Inc., New York, USA","institution_ids":[]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5102819808","display_name":"Rajkishore Barik","orcid":"https://orcid.org/0000-0003-4779-1391"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Raj Barik","raw_affiliation_strings":["Gitar Inc., San Mateo, United States"],"raw_orcid":"https://orcid.org/0000-0003-4779-1391","affiliations":[{"raw_affiliation_string":"Gitar Inc., San Mateo, United States","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5107242862","display_name":"Murali Krishna Ramanathan","orcid":"https://orcid.org/0000-0002-6568-017X"},"institutions":[{"id":"https://openalex.org/I1311688040","display_name":"Amazon (United States)","ror":"https://ror.org/04mv4n011","country_code":"US","type":"company","lineage":["https://openalex.org/I1311688040"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Murali Krishna Ramanathan","raw_affiliation_strings":["Amazon Web Services, Santa Clara, USA"],"raw_orcid":"https://orcid.org/0000-0002-6568-017X","affiliations":[{"raw_affiliation_string":"Amazon Web Services, Santa Clara, USA","institution_ids":["https://openalex.org/I1311688040"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":5,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.4387,"has_fulltext":false,"cited_by_count":1,"citation_normalized_percentile":{"value":0.68863802,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":91,"max":95},"biblio":{"volume":"8","issue":"PLDI","first_page":"1288","last_page":"1312"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9973000288009644,"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9973000288009644,"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/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.996999979019165,"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/T10260","display_name":"Software Engineering Research","score":0.9872999787330627,"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/polyglot","display_name":"Polyglot","score":0.9760308861732483},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6681238412857056},{"id":"https://openalex.org/keywords/transformation","display_name":"Transformation (genetics)","score":0.640602707862854},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.6196717619895935},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.5825821757316589},{"id":"https://openalex.org/keywords/linguistics","display_name":"Linguistics","score":0.37026143074035645},{"id":"https://openalex.org/keywords/philosophy","display_name":"Philosophy","score":0.08052393794059753}],"concepts":[{"id":"https://openalex.org/C2780239667","wikidata":"https://www.wikidata.org/wiki/Q2102850","display_name":"Polyglot","level":2,"score":0.9760308861732483},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6681238412857056},{"id":"https://openalex.org/C204241405","wikidata":"https://www.wikidata.org/wiki/Q461499","display_name":"Transformation (genetics)","level":3,"score":0.640602707862854},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6196717619895935},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.5825821757316589},{"id":"https://openalex.org/C41895202","wikidata":"https://www.wikidata.org/wiki/Q8162","display_name":"Linguistics","level":1,"score":0.37026143074035645},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.08052393794059753},{"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/C55493867","wikidata":"https://www.wikidata.org/wiki/Q7094","display_name":"Biochemistry","level":1,"score":0.0},{"id":"https://openalex.org/C104317684","wikidata":"https://www.wikidata.org/wiki/Q7187","display_name":"Gene","level":2,"score":0.0},{"id":"https://openalex.org/C185592680","wikidata":"https://www.wikidata.org/wiki/Q2329","display_name":"Chemistry","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3656429","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3656429","pdf_url":null,"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/3656429","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3656429","pdf_url":null,"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":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":36,"referenced_works":["https://openalex.org/W1510687364","https://openalex.org/W1964973627","https://openalex.org/W1982227016","https://openalex.org/W2022744394","https://openalex.org/W2026794345","https://openalex.org/W2086464170","https://openalex.org/W2104789737","https://openalex.org/W2106839115","https://openalex.org/W2125872407","https://openalex.org/W2137659640","https://openalex.org/W2139092060","https://openalex.org/W2166446430","https://openalex.org/W2404120807","https://openalex.org/W2469513535","https://openalex.org/W2619306859","https://openalex.org/W2797684109","https://openalex.org/W2883421393","https://openalex.org/W2895718634","https://openalex.org/W2923744774","https://openalex.org/W2954990002","https://openalex.org/W2955478879","https://openalex.org/W2966152734","https://openalex.org/W2968585938","https://openalex.org/W2972934903","https://openalex.org/W2979679630","https://openalex.org/W3090533092","https://openalex.org/W3125073197","https://openalex.org/W3161891692","https://openalex.org/W3206419348","https://openalex.org/W4229037935","https://openalex.org/W4234852849","https://openalex.org/W4242737528","https://openalex.org/W4256028358","https://openalex.org/W4284670745","https://openalex.org/W4307731832","https://openalex.org/W4386273359"],"related_works":["https://openalex.org/W4243497717","https://openalex.org/W4393571790","https://openalex.org/W3021456553","https://openalex.org/W4393815655","https://openalex.org/W4287790127","https://openalex.org/W4250712637","https://openalex.org/W2808156294","https://openalex.org/W3034786336","https://openalex.org/W2147431164","https://openalex.org/W4235078688"],"abstract_inverted_index":{"In":[0],"today\u2019s":[1],"software":[2],"industry,":[3],"large-scale,":[4],"multi-language":[5,99],"codebases":[6],"are":[7,187],"the":[8,71,110,183],"norm.":[9],"This":[10],"brings":[11],"substantial":[12],"challenges":[13],"in":[14,145],"developing":[15],"automated":[16],"tools":[17,45,52,117,184],"for":[18,67,96,123,133],"code":[19,28,43,100,164],"maintenance":[20],"tasks":[21],"such":[22],"as":[23],"API":[24],"migration":[25],"or":[26,46],"dead":[27,163],"cleanup.":[29],"Tool":[30],"builders":[31],"often":[32],"find":[33],"themselves":[34],"caught":[35],"between":[36],"two":[37],"less-than-ideal":[38],"tooling":[39],"options:":[40],"(1)":[41],"languagespecific":[42],"rewriting":[44],"(2)":[47],"generic,":[48],"lightweight":[49,115],"match-replace":[50,116],"transformation":[51],"with":[53],"limited":[54],"expressiveness.":[55],"The":[56],"former":[57],"leads":[58],"to":[59,75,80,121,193],"tool":[60,132],"fragmentation":[61],"and":[62,112,126,142,165,180,191],"a":[63,90],"steep":[64],"learning":[65],"curve":[66],"each":[68],"language,":[69,135],"while":[70],"latter":[72],"forces":[73],"developers":[74],"create":[76],"ad-hoc,":[77],"throwaway":[78],"scripts":[79],"handle":[81],"realistic":[82],"tasks.":[83],"To":[84],"fill":[85],"this":[86],"gap,":[87],"we":[88,107,185],"introduce":[89],"new":[91],"declarative":[92],"domain-specific":[93],"language":[94],"(DSL)":[95],"expressing":[97],"interdependent":[98],"transformations.":[101],"Our":[102],"key":[103],"insight":[104],"is":[105],"that":[106,182],"can":[108],"increase":[109],"expressiveness":[111],"applicability":[113],"of":[114,162],"by":[118],"extending":[119],"them":[120],"support":[122],"composition,":[124],"ordering,":[125],"flow.":[127],"We":[128,149,173],"implemented":[129],"an":[130,146],"open-source":[131],"our":[134,175],"called":[136],"P":[137,139],"olyglot":[138],"iranha":[140],",":[141],"deployed":[143],"it":[144,158],"industrial":[147],"setting.":[148],"demonstrate":[150],"its":[151],"effectiveness":[152],"through":[153],"three":[154],"case":[155],"studies,":[156],"where":[157],"deleted":[159],"210K":[160],"lines":[161],"migrated":[166],"20K":[167],"lines,":[168],"across":[169],"1611":[170],"pull":[171],"requests.":[172],"compare":[174],"DSL":[176],"against":[177],"state-of-the-art":[178],"alternatives,":[179],"show":[181],"developed":[186],"faster,":[188],"more":[189],"concise,":[190],"easier":[192],"maintain.":[194]},"counts_by_year":[{"year":2025,"cited_by_count":1}],"updated_date":"2026-08-18T07:49:30.821534","created_date":"2025-10-10T00:00:00"}
