{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,20]],"date-time":"2026-06-20T16:14:00Z","timestamp":1781972040044,"version":"3.54.5"},"reference-count":70,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA2","license":[{"start":{"date-parts":[[2023,10,16]],"date-time":"2023-10-16T00:00:00Z","timestamp":1697414400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2023,10,16]]},"abstract":"<jats:p>Rhombus is a new language that is built on Racket. It offers the same kind of language extensibility as Racket itself, but using traditional (infix) notation. Although Rhombus is far from the first language to support Lisp-style macros without Lisp-style parentheses, Rhombus offers a novel synthesis of macro technology that is practical and expressive. A key element is the use of multiple binding spaces for context-specific sublanguages. For example, expressions and pattern-matching forms can use the same operators with different meanings and without creating conflicts. Context-sensitive bindings, in turn, facilitate a language design that reduces the notational distance between the core language and macro facilities. For example, repetitions can be defined and used in binding and expression contexts generally, which enables a smoother transition from programming to metaprogramming. Finally, since handling static information (such as types) is also a necessary part of growing macros beyond Lisp, Rhombus includes support in its expansion protocol for communicating static information among bindings and expressions. The Rhombus implementation demonstrates that all of these pieces can work together in a coherent and user-friendly language.<\/jats:p>","DOI":"10.1145\/3622818","type":"journal-article","created":{"date-parts":[[2023,10,16]],"date-time":"2023-10-16T15:41:29Z","timestamp":1697470889000},"page":"574-603","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":5,"title":["Rhombus: A New Spin on Macros without All the Parentheses"],"prefix":"10.1145","volume":"7","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-8994-2552","authenticated-orcid":false,"given":"Matthew","family":"Flatt","sequence":"first","affiliation":[{"name":"University of Utah, Salt Lake City, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0000-7238-1816","authenticated-orcid":false,"given":"Taylor","family":"Allred","sequence":"additional","affiliation":[{"name":"University of Utah, Salt Lake City, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0000-0646-0401","authenticated-orcid":false,"given":"Nia","family":"Angle","sequence":"additional","affiliation":[{"name":"n.n., Concord, United States"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0000-1706-5212","authenticated-orcid":false,"given":"Stephen","family":"De Gabrielle","sequence":"additional","affiliation":[{"name":"n.n., London, United Kingdom"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-4245-2000","authenticated-orcid":false,"given":"Robert Bruce","family":"Findler","sequence":"additional","affiliation":[{"name":"Northwestern University, Evanston, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0000-7795-4986","authenticated-orcid":false,"given":"Jack","family":"Firth","sequence":"additional","affiliation":[{"name":"n.n., Sunnyvale, United States"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1877-9871","authenticated-orcid":false,"given":"Kiran","family":"Gopinathan","sequence":"additional","affiliation":[{"name":"National University of Singapore, Singapore, Singapore"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7078-9287","authenticated-orcid":false,"given":"Ben","family":"Greenman","sequence":"additional","affiliation":[{"name":"Brown University, Providence, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0007-5036-2877","authenticated-orcid":false,"given":"Siddhartha","family":"Kasivajhula","sequence":"additional","affiliation":[{"name":"n.n., Oakland, United States"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0006-7286-0044","authenticated-orcid":false,"given":"Alex","family":"Knauth","sequence":"additional","affiliation":[{"name":"n.n., Williamsport, United States"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2061-7396","authenticated-orcid":false,"given":"Jay","family":"McCarthy","sequence":"additional","affiliation":[{"name":"Reach, Provo, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0009-1224-3468","authenticated-orcid":false,"given":"Sam","family":"Phillips","sequence":"additional","affiliation":[{"name":"n.n., Oakland, United States"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3900-5602","authenticated-orcid":false,"given":"Sorawee","family":"Porncharoenwase","sequence":"additional","affiliation":[{"name":"University of Washington, Seattle, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0002-3868-0593","authenticated-orcid":false,"given":"Jens Axel","family":"S\u00f8gaard","sequence":"additional","affiliation":[{"name":"n.n., Skjern, Denmark"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1302-6499","authenticated-orcid":false,"given":"Sam","family":"Tobin-Hochstadt","sequence":"additional","affiliation":[{"name":"Indiana University, Bloomington, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2023,10,16]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"Dan Synek. Concrete Syntax for Data Objects in Functional Languages. In Proc. Lisp and Functional Programming","author":"Aasa Annika","year":"1988","unstructured":"Annika Aasa , Kent Petersson , and Dan Synek. Concrete Syntax for Data Objects in Functional Languages. In Proc. Lisp and Functional Programming , 1988 . doi: 10.1145\/62678.62688 10.1145\/62678.62688 Annika Aasa, Kent Petersson, and Dan Synek. Concrete Syntax for Data Objects in Functional Languages. In Proc. Lisp and Functional Programming, 1988. doi: 10.1145\/62678.62688"},{"key":"e_1_2_1_2_1","volume-title":"Adams. Towards the Essence of Hygiene. In Proc. Principles of Programming Languages","author":"Michael","year":"2015","unstructured":"Michael D. Adams. Towards the Essence of Hygiene. In Proc. Principles of Programming Languages , 2015 . doi: 10.1145\/2775051.2677013 10.1145\/2775051.2677013 Michael D. Adams. Towards the Essence of Hygiene. In Proc. Principles of Programming Languages, 2015. doi: 10.1145\/2775051.2677013"},{"key":"e_1_2_1_3_1","volume-title":"Proc. Foundations of Object-Oriented Languages","author":"Allen Eric","year":"2009","unstructured":"Eric Allen , Ryan Culpepper , Janus Dam Nielsen , Jon Rafkind , and Sukyoung Ryu . Growing a Syntax . In Proc. Foundations of Object-Oriented Languages , 2009 . Eric Allen, Ryan Culpepper, Janus Dam Nielsen, Jon Rafkind, and Sukyoung Ryu. Growing a Syntax. In Proc. Foundations of Object-Oriented Languages, 2009."},{"key":"e_1_2_1_4_1","unstructured":"Nia Angle. Parendown. 2017. https:\/\/github.com\/lathe\/parendown-for-racket Nia Angle. Parendown. 2017. https:\/\/github.com\/lathe\/parendown-for-racket"},{"key":"e_1_2_1_5_1","volume-title":"Wisp: Simpler Indentation-Sensitive Scheme","author":"Babenhauserheide Arne","year":"2015","unstructured":"Arne Babenhauserheide . SRFI-119 : Wisp: Simpler Indentation-Sensitive Scheme . 2015 . https:\/\/srfi.schemers.org\/srfi-119\/srfi119.html Arne Babenhauserheide. SRFI-119 : Wisp: Simpler Indentation-Sensitive Scheme. 2015. https:\/\/srfi.schemers.org\/srfi-119\/srfi119.html"},{"key":"e_1_2_1_6_1","volume-title":"Dylan Style.","author":"Bachrach Jonathan","year":"1999","unstructured":"Jonathan Bachrach and Keith Playford . D-Expressions: Lisp Power , Dylan Style. 1999 . https:\/\/people.csail.mit.edu\/jrb\/ Projects\/ dexprs.pdf Jonathan Bachrach and Keith Playford. D-Expressions: Lisp Power, Dylan Style. 1999. https:\/\/people.csail.mit.edu\/jrb\/ Projects\/dexprs.pdf"},{"key":"e_1_2_1_7_1","volume-title":"Proc. Object-Oriented Programming, Systems, Languages and Applications","author":"Bachrach Jonathan","year":"2001","unstructured":"Jonathan Bachrach and Keith Playford . The Java Syntactic Extender (JSE) . In Proc. Object-Oriented Programming, Systems, Languages and Applications , 2001 . doi: 10.1145\/504311.504285 10.1145\/504311.504285 Jonathan Bachrach and Keith Playford. The Java Syntactic Extender (JSE). In Proc. Object-Oriented Programming, Systems, Languages and Applications, 2001. doi: 10.1145\/504311.504285"},{"key":"e_1_2_1_8_1","volume-title":"Baker and Wilson C. Hsieh. Maya: Multiple-Dispatch Syntax Extension in Java. In Proc. Object-Oriented Programming, Systems, Languages and Applications","author":"Jason","year":"2002","unstructured":"Jason Baker and Wilson C. Hsieh. Maya: Multiple-Dispatch Syntax Extension in Java. In Proc. Object-Oriented Programming, Systems, Languages and Applications , 2002 . doi: 10.1145\/512529.512562 10.1145\/512529.512562 Jason Baker and Wilson C. Hsieh. Maya: Multiple-Dispatch Syntax Extension in Java. In Proc. Object-Oriented Programming, Systems, Languages and Applications, 2002. doi: 10.1145\/512529.512562"},{"key":"e_1_2_1_9_1","volume-title":"Matthias Felleisen. Macros for Domain-Specific Languages. In Proc. Object-Oriented Programming, Systems, Languages and Applications","author":"Ballantyne Michael","year":"2020","unstructured":"Michael Ballantyne , Alexis King , and Matthias Felleisen. Macros for Domain-Specific Languages. In Proc. Object-Oriented Programming, Systems, Languages and Applications , 2020 . doi: 10.1145\/3428297 10.1145\/3428297 Michael Ballantyne, Alexis King, and Matthias Felleisen. Macros for Domain-Specific Languages. In Proc. Object-Oriented Programming, Systems, Languages and Applications, 2020. doi: 10.1145\/3428297"},{"key":"e_1_2_1_10_1","volume-title":"Proc. Workshop on Type-Driven Development","author":"Barrett Langston","year":"2020","unstructured":"Langston Barrett , David Thrane Christiansen , and Samuel G\u00e9lineau . Predictable Macros for Hindley-Milner (Extended Abstract) . In Proc. Workshop on Type-Driven Development , 2020 . Langston Barrett, David Thrane Christiansen, and Samuel G\u00e9lineau. Predictable Macros for Hindley-Milner (Extended Abstract). In Proc. Workshop on Type-Driven Development, 2020."},{"key":"e_1_2_1_11_1","volume-title":"Proc. Scheme Workshop","author":"Barzilay Eli","year":"2009","unstructured":"Eli Barzilay . The Scribble Reader: An Alternative to S-expressions for Textual Content . In Proc. Scheme Workshop , 2009 . Eli Barzilay. The Scribble Reader: An Alternative to S-expressions for Textual Content. In Proc. Scheme Workshop, 2009."},{"key":"e_1_2_1_12_1","volume-title":"Semantics, Implementation. Science of Computer Programming 19 ( 2 )","author":"Berry G\u00e9rard","year":"1992","unstructured":"G\u00e9rard Berry and Georges Gonthier . The Esterel Synchronous Programming Language: Design , Semantics, Implementation. Science of Computer Programming 19 ( 2 ) , 1992 . doi: 10.1016\/ 0167-6423 ( 92 ) 90005-V G\u00e9rard Berry and Georges Gonthier. The Esterel Synchronous Programming Language: Design, Semantics, Implementation. Science of Computer Programming 19 ( 2 ), 1992. doi: 10.1016\/ 0167-6423 ( 92 ) 90005-V"},{"key":"e_1_2_1_13_1","volume-title":"Profile-Guided Meta-Programming. In Proc. Programming Language Design and Implementation","author":"Bowman William J.","year":"2015","unstructured":"William J. Bowman , Swaha Miller , Vincent St {-} Amour , and R. Kent Dybvig . Profile-Guided Meta-Programming. In Proc. Programming Language Design and Implementation , 2015 . doi: 10.1145\/2737924.2737990 10.1145\/2737924.2737990 William J. Bowman, Swaha Miller, Vincent St {-} Amour, and R. Kent Dybvig. Profile-Guided Meta-Programming. In Proc. Programming Language Design and Implementation, 2015. doi: 10.1145\/2737924.2737990"},{"key":"e_1_2_1_15_1","volume-title":"Mart\u00edn Abadi. Extensible Grammars for Language Specialization. In Proc. Workshop on Database Programming Languages-Object Models and Languages","author":"Cardelli Luca","year":"1993","unstructured":"Luca Cardelli , Florian Matthes , and Mart\u00edn Abadi. Extensible Grammars for Language Specialization. In Proc. Workshop on Database Programming Languages-Object Models and Languages , 1993 . doi: 10.1007\/978-1-4471-3564-7_2 10.1007\/978-1-4471-3564-7_2 Luca Cardelli, Florian Matthes, and Mart\u00edn Abadi. Extensible Grammars for Language Specialization. In Proc. Workshop on Database Programming Languages-Object Models and Languages, 1993. doi: 10.1007\/978-1-4471-3564-7_2"},{"key":"e_1_2_1_16_1","volume-title":"Proc. Principles of Programming Languages","author":"Chang Stephen","year":"2017","unstructured":"Stephen Chang , Alex Knauth , and Ben Greenman . Type Systems as Macros . In Proc. Principles of Programming Languages , 2017 . doi: 10.1145\/3093333.3009886 10.1145\/3093333.3009886 Stephen Chang, Alex Knauth, and Ben Greenman. Type Systems as Macros. In Proc. Principles of Programming Languages, 2017. doi: 10.1145\/3093333.3009886"},{"key":"e_1_2_1_17_1","volume-title":"Proc. Principles of Programming Languages","author":"Clinger William","year":"1991","unstructured":"William Clinger and Jonathan Rees . Macros that Work . In Proc. Principles of Programming Languages , 1991 . doi: 10.1145\/99583.99607 10.1145\/99583.99607 William Clinger and Jonathan Rees. Macros that Work. In Proc. Principles of Programming Languages, 1991. doi: 10.1145\/99583.99607"},{"key":"e_1_2_1_18_1","first-page":"4","volume":"22","author":"Culpepper Ryan","unstructured":"Ryan Culpepper and Matthias Felleisen . Fortifying Macros . Journal of Functional Programming 22 ( 4 - 5 ), 2012. doi: 10.1017\/S0956796812000275 10.1017\/S0956796812000275 Ryan Culpepper and Matthias Felleisen. Fortifying Macros. Journal of Functional Programming 22 ( 4-5 ), 2012. doi: 10.1017\/S0956796812000275","journal-title":"Functional Programming"},{"key":"e_1_2_1_19_1","volume-title":"Diekmann and Laurence Tratt. Eco: A Language Composition Editor. In Proc. Software Language Engineering","author":"Lukas","year":"2014","unstructured":"Lukas Diekmann and Laurence Tratt. Eco: A Language Composition Editor. In Proc. Software Language Engineering , 2014 . doi: 10.1007\/978-3-319-11245-9_5 10.1007\/978-3-319-11245-9_5 Lukas Diekmann and Laurence Tratt. Eco: A Language Composition Editor. In Proc. Software Language Engineering, 2014. doi: 10.1007\/978-3-319-11245-9_5"},{"key":"e_1_2_1_20_1","volume-title":"Proc. Dynamic Languages Symposium","author":"Disney Tim","year":"2014","unstructured":"Tim Disney , Nathan Faubion , David Herman , and Cormac Flanagan . Sweeten Your JavaScript: Hygienic Macros for ES5 . In Proc. Dynamic Languages Symposium , 2014 . doi: 10.1145\/2775052.2661097 10.1145\/2775052.2661097 Tim Disney, Nathan Faubion, David Herman, and Cormac Flanagan. Sweeten Your JavaScript: Hygienic Macros for ES5. In Proc. Dynamic Languages Symposium, 2014. doi: 10.1145\/2775052.2661097"},{"key":"e_1_2_1_21_1","volume-title":"Proc. Lisp and Functional Programming","author":"Dybvig R. Kent","year":"1986","unstructured":"R. Kent Dybvig , Daniel P. Friedman , and Christopher T. Haynes . Expansion-Passing Style: Beyond Conventional Macros . In Proc. Lisp and Functional Programming , 1986 . doi: 10.1145\/319838.319858 10.1145\/319838.319858 R. Kent Dybvig, Daniel P. Friedman, and Christopher T. Haynes. Expansion-Passing Style: Beyond Conventional Macros. In Proc. Lisp and Functional Programming, 1986. doi: 10.1145\/319838.319858"},{"key":"e_1_2_1_22_1","volume-title":"Syntactic Abstraction in Scheme. Lisp and Symbolic Computation 5 ( 4 )","author":"Dybvig R. Kent","year":"1993","unstructured":"R. Kent Dybvig , Robert Hieb , and Carl Bruggeman . Syntactic Abstraction in Scheme. Lisp and Symbolic Computation 5 ( 4 ) , 1993 . doi: 10.1007\/BF01806308 10.1007\/BF01806308 R. Kent Dybvig, Robert Hieb, and Carl Bruggeman. Syntactic Abstraction in Scheme. Lisp and Symbolic Computation 5 ( 4 ), 1993. doi: 10.1007\/BF01806308"},{"key":"e_1_2_1_23_1","volume-title":"Klaus Ostermann. SugarJ: Library-Based Syntactic Language Extensibility. In Proc. Object-Oriented Programming, Systems, Languages and Applications","author":"Erdweg Sebastian","year":"2011","unstructured":"Sebastian Erdweg , Tillmann Rendel , Christian K\u00e4stner , and Klaus Ostermann. SugarJ: Library-Based Syntactic Language Extensibility. In Proc. Object-Oriented Programming, Systems, Languages and Applications , 2011 . doi: 10.1145\/2076021.2048099 10.1145\/2076021.2048099 Sebastian Erdweg, Tillmann Rendel, Christian K\u00e4stner, and Klaus Ostermann. SugarJ: Library-Based Syntactic Language Extensibility. In Proc. Object-Oriented Programming, Systems, Languages and Applications, 2011. doi: 10.1145\/2076021.2048099"},{"key":"e_1_2_1_24_1","volume-title":"Proc. 2010","author":"Eysholdt Moritz","year":"2010","unstructured":"Moritz Eysholdt and Heiko Behrens . Xtext : Implement Your Language Faster than the Quick and Dirty Way . In Proc. 2010 , 2010 . doi: 10.1145\/1869542.1869625 10.1145\/1869542.1869625 Moritz Eysholdt and Heiko Behrens. Xtext: Implement Your Language Faster than the Quick and Dirty Way. In Proc. 2010, 2010. doi: 10.1145\/1869542.1869625"},{"key":"e_1_2_1_25_1","volume-title":"Falcon and William R. Cook. Gel: A Generic Extensible Language. In Proc. IFIP TC 2 Working Conference Domain-Specific Languages","author":"Jose","year":"2009","unstructured":"Jose Falcon and William R. Cook. Gel: A Generic Extensible Language. In Proc. IFIP TC 2 Working Conference Domain-Specific Languages , 2009 . doi: 10.1007\/978-3-642-03034-5 10.1007\/978-3-642-03034-5 Jose Falcon and William R. Cook. Gel: A Generic Extensible Language. In Proc. IFIP TC 2 Working Conference Domain-Specific Languages, 2009. doi: 10.1007\/978-3-642-03034-5"},{"key":"e_1_2_1_26_1","volume-title":"Gambit: Scheme Infix Syntax Extension","author":"Feeley Marc","year":"2019","unstructured":"Marc Feeley . Gambit: Scheme Infix Syntax Extension . 2019 . http:\/\/www.iro.umontreal.ca\/~gambit\/doc\/gambit.html# Schemeinfix-syntax-extension Marc Feeley. Gambit: Scheme Infix Syntax Extension. 2019. http:\/\/www.iro.umontreal.ca\/~gambit\/doc\/gambit.html# Schemeinfix-syntax-extension"},{"key":"e_1_2_1_27_1","volume-title":"Matthew Flatt, Shriram Krishnamurthi, Eli Barzilay, Jay McCarthy, and Sam TobinHochstadt. A Programmable Programming Language. Communications of the ACM 61 ( 3 )","author":"Felleisen Matthias","year":"2018","unstructured":"Matthias Felleisen , Robert Bruce Findler , Matthew Flatt, Shriram Krishnamurthi, Eli Barzilay, Jay McCarthy, and Sam TobinHochstadt. A Programmable Programming Language. Communications of the ACM 61 ( 3 ) , 2018 . doi: 10.1145\/3127323 10.1145\/3127323 Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, Eli Barzilay, Jay McCarthy, and Sam TobinHochstadt. A Programmable Programming Language. Communications of the ACM 61 ( 3 ), 2018. doi: 10.1145\/3127323"},{"key":"e_1_2_1_28_1","volume-title":"DrScheme: a Programming Environment for Scheme. Journal of Functional Programming 12 ( 2 )","author":"Findler Robert Bruce","year":"2002","unstructured":"Robert Bruce Findler , John Clements , Cormac Flanagan , Matthew Flatt , Shriram Krishnamurthi , Paul Steckler , and Matthias Felleisen . DrScheme: a Programming Environment for Scheme. Journal of Functional Programming 12 ( 2 ) , 2002 . doi: 10.1017\/S0956796801004208 10.1017\/S0956796801004208 Robert Bruce Findler, John Clements, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Paul Steckler, and Matthias Felleisen. DrScheme: a Programming Environment for Scheme. Journal of Functional Programming 12 ( 2 ), 2002. doi: 10.1017\/S0956796801004208"},{"key":"e_1_2_1_29_1","volume-title":"Proc. International Conference on Functional Programming","author":"Flatt Matthew","year":"2002","unstructured":"Matthew Flatt . Compilable and Composable Macros: You Want it When ? In Proc. International Conference on Functional Programming , 2002 . doi: 10.1145\/583852.581486 10.1145\/583852.581486 Matthew Flatt. Compilable and Composable Macros: You Want it When? In Proc. International Conference on Functional Programming, 2002. doi: 10.1145\/583852.581486"},{"key":"e_1_2_1_30_1","volume-title":"Proc. Principles of Programming Languages","author":"Flatt Matthew","year":"2016","unstructured":"Matthew Flatt . Binding as Sets of Scopes . In Proc. Principles of Programming Languages , 2016 . doi: 10.1145\/2914770.2837620 10.1145\/2914770.2837620 Matthew Flatt. Binding as Sets of Scopes. In Proc. Principles of Programming Languages, 2016. doi: 10.1145\/2914770.2837620"},{"key":"#cr-split#-e_1_2_1_31_1.1","doi-asserted-by":"crossref","unstructured":"Matthew Flatt Taylor Allred Nia Angle Stephen De Gabrielle Robert Bruce Findler Jack Firth Kiran Gopinathan Ben Greenman Alex Knauth Siddhartha Kasivajhula Jay McCarthy Sam Phillips Sorawee Porncharoenwase Jens Axel S\u00f8gaard and Sam Tobin-Hochstadt. Artifact for Rhombus: A New Spin on Macros without All the Parentheses. 2023. doi: 10.1145\/3580417 10.1145\/3580417","DOI":"10.1145\/3580417"},{"key":"#cr-split#-e_1_2_1_31_1.2","doi-asserted-by":"crossref","unstructured":"Matthew Flatt Taylor Allred Nia Angle Stephen De Gabrielle Robert Bruce Findler Jack Firth Kiran Gopinathan Ben Greenman Alex Knauth Siddhartha Kasivajhula Jay McCarthy Sam Phillips Sorawee Porncharoenwase Jens Axel S\u00f8gaard and Sam Tobin-Hochstadt. Artifact for Rhombus: A New Spin on Macros without All the Parentheses. 2023. doi: 10.1145\/3580417","DOI":"10.1145\/3580417"},{"key":"e_1_2_1_32_1","volume-title":"Robert Bruce Findler. Scribble: Closing the Book on Ad Hoc Documentation Tools. In Proc. International Conference on Functional Programming","author":"Flatt Matthew","year":"2009","unstructured":"Matthew Flatt , Eli Barzilay , and Robert Bruce Findler. Scribble: Closing the Book on Ad Hoc Documentation Tools. In Proc. International Conference on Functional Programming , 2009 . doi: 10.1145\/1631687.1596569 10.1145\/1631687.1596569 Matthew Flatt, Eli Barzilay, and Robert Bruce Findler. Scribble: Closing the Book on Ad Hoc Documentation Tools. In Proc. International Conference on Functional Programming, 2009. doi: 10.1145\/1631687.1596569"},{"key":"e_1_2_1_33_1","doi-asserted-by":"crossref","first-page":"181","DOI":"10.1017\/S0956796812000093","volume":"22","author":"Flatt Matthew","unstructured":"Matthew Flatt , Ryan Culpepper , Robert Bruce Findler , and David Darais . Macros that Work Together: Compile-Time Bindings , Partial Expansion , and Definition Contexts . Journal of Functional Programming 22 ( 2 ), pp. 181 - 216 , 2012. doi: 10.1017\/S0956796812000093 10.1017\/S0956796812000093 Matthew Flatt, Ryan Culpepper, Robert Bruce Findler, and David Darais. Macros that Work Together: Compile-Time Bindings, Partial Expansion, and Definition Contexts. Journal of Functional Programming 22 ( 2 ), pp. 181-216, 2012. doi: 10.1017\/S0956796812000093","journal-title":"Functional Programming"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/3341642"},{"key":"e_1_2_1_35_1","volume-title":"Binding Macros in MacroML. In Proc. International Conference on Functional Programming","author":"Ganz Steven E.","year":"2001","unstructured":"Steven E. Ganz , Amr Sabry , and Walid Taha . Macros as Multi-Stage Computations: Type-Safe, Generative , Binding Macros in MacroML. In Proc. International Conference on Functional Programming , 2001 . doi: 10.1145\/507635.507646 10.1145\/507635.507646 Steven E. Ganz, Amr Sabry, and Walid Taha. Macros as Multi-Stage Computations: Type-Safe, Generative, Binding Macros in MacroML. In Proc. International Conference on Functional Programming, 2001. doi: 10.1145\/507635.507646"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.5555\/888856"},{"key":"e_1_2_1_37_1","unstructured":"Inkle. Ink. 2023. https:\/\/www.inklestudios.com\/ink\/ Inkle. Ink. 2023. https:\/\/www.inklestudios.com\/ink\/"},{"key":"e_1_2_1_38_1","unstructured":"JetBrains. MPS. 2003. https:\/\/www.jetbrains.com\/mps\/ JetBrains. MPS. 2003. https:\/\/www.jetbrains.com\/mps\/"},{"key":"e_1_2_1_39_1","volume-title":"Peyton Jones and Tim Sheard. Template Meta-Programming for Haskell. In Proc. Haskell Workshop","author":"Simon","year":"2002","unstructured":"Simon Peyton Jones and Tim Sheard. Template Meta-Programming for Haskell. In Proc. Haskell Workshop , 2002 . doi: 10.1145\/581690.581691 10.1145\/581690.581691 Simon Peyton Jones and Tim Sheard. Template Meta-Programming for Haskell. In Proc. Haskell Workshop, 2002. doi: 10.1145\/581690.581691"},{"key":"e_1_2_1_40_1","volume-title":"Proc. Object-Oriented Programming, Systems, Languages and Applications","author":"Lennart C.","year":"2010","unstructured":"Lennart C. L. Kats and Eelco Visser. The Spoofax Language Workbench: Rules for Declarative Specification of Languages and IDEs . In Proc. Object-Oriented Programming, Systems, Languages and Applications , 2010 . doi: 10.1145\/1932682.1869497 10.1145\/1932682.1869497 Lennart C. L. Kats and Eelco Visser. The Spoofax Language Workbench: Rules for Declarative Specification of Languages and IDEs. In Proc. Object-Oriented Programming, Systems, Languages and Applications, 2010. doi: 10.1145\/1932682.1869497"},{"key":"e_1_2_1_41_1","volume-title":"The Hackett Programming Language","author":"King Alexis","year":"2018","unstructured":"Alexis King . The Hackett Programming Language . 2018 . https:\/\/lexi-lambda.github.io\/hackett\/ Alexis King. The Hackett Programming Language. 2018. https:\/\/lexi-lambda.github.io\/hackett\/"},{"key":"e_1_2_1_42_1","volume-title":"RASCAL: A Domain Specific Language for Source Code Analysis and Manipulation. In Proc. Working Conference on Source Code Analysis and Manipulation, 2009","author":"Klint P.","year":"2009","unstructured":"P. Klint , Tijs van der Storm, and Jurgen Vinju . RASCAL: A Domain Specific Language for Source Code Analysis and Manipulation. In Proc. Working Conference on Source Code Analysis and Manipulation, 2009 . doi: 10.1109\/SCAM. 2009 .28 10.1109\/SCAM P. Klint, Tijs van der Storm, and Jurgen Vinju. RASCAL: A Domain Specific Language for Source Code Analysis and Manipulation. In Proc. Working Conference on Source Code Analysis and Manipulation, 2009. doi: 10.1109\/SCAM. 2009.28"},{"key":"e_1_2_1_43_1","volume-title":"Bruce Duba. Hygienic Macro Expansion. In Proc. Lisp and Functional Programming","author":"Kohlbecker Eugene","year":"1986","unstructured":"Eugene Kohlbecker , Daniel P. Friedman , Matthias Felleisen , and Bruce Duba. Hygienic Macro Expansion. In Proc. Lisp and Functional Programming , 1986 . doi: 10.1145\/319838.319859 10.1145\/319838.319859 Eugene Kohlbecker, Daniel P. Friedman, Matthias Felleisen, and Bruce Duba. Hygienic Macro Expansion. In Proc. Lisp and Functional Programming, 1986. doi: 10.1145\/319838.319859"},{"key":"e_1_2_1_44_1","volume-title":"Proc. Principles of Programming Languages","author":"Kohlbecker Eugene","year":"1987","unstructured":"Eugene Kohlbecker and Mitch Wand . Macro-by-Example : Deriving Syntactic Transformations from Their Specifications . In Proc. Principles of Programming Languages , 1987 . doi: 10.1145\/41625.41632 10.1145\/41625.41632 Eugene Kohlbecker and Mitch Wand. Macro-by-Example : Deriving Syntactic Transformations from Their Specifications. In Proc. Principles of Programming Languages, 1987. doi: 10.1145\/41625.41632"},{"key":"e_1_2_1_45_1","volume-title":"Programming Languages: Application and Interpretation","author":"Krishnamurthi Shriram","year":"2006","unstructured":"Shriram Krishnamurthi . Programming Languages: Application and Interpretation . 2006 . Shriram Krishnamurthi. Programming Languages: Application and Interpretation. 2006."},{"key":"e_1_2_1_46_1","volume-title":"Proc. Generative Programming: Concepts and Experiences","author":"Krishnamurthi Shriram","year":"1999","unstructured":"Shriram Krishnamurthi , Matthias Felleisen , and Bruce F. Duba . From Macros to Reusable Generative Programming . In Proc. Generative Programming: Concepts and Experiences , 1999 . doi: 10.1007\/3-540-40048-6_9 10.1007\/3-540-40048-6_9 Shriram Krishnamurthi, Matthias Felleisen, and Bruce F. Duba. From Macros to Reusable Generative Programming. In Proc. Generative Programming: Concepts and Experiences, 1999. doi: 10.1007\/3-540-40048-6_9"},{"key":"e_1_2_1_47_1","first-page":"790","volume-title":"Syntax Macros and Extended Translation. Communications of the ACM 9 ( 11 )","author":"Leavenworth B. M.","year":"1966","unstructured":"B. M. Leavenworth . Syntax Macros and Extended Translation. Communications of the ACM 9 ( 11 ) , pp. 790 - 793 , 1966 . doi: 10.1145\/365876.365879 10.1145\/365876.365879 B. M. Leavenworth. Syntax Macros and Extended Translation. Communications of the ACM 9 ( 11 ), pp. 790-793, 1966. doi: 10.1145\/365876.365879"},{"key":"e_1_2_1_48_1","volume-title":"LAMP-REPORT-2006-001","author":"Altherr Philippe","year":"2006","unstructured":"Odersky, Martin, Philippe Altherr , Vincent Cremet , Burak Emir , Sebastian Maneth , St\u00e9phane Micheloud , Nikolay Mihaylov , Michel Schinz , Erik Stenman , and Matthias Zenger . An Overview of the Scala Programming Language. \u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne , LAMP-REPORT-2006-001 , 2006 . Odersky, Martin, Philippe Altherr, Vincent Cremet, Burak Emir, Sebastian Maneth, St\u00e9phane Micheloud, Nikolay Mihaylov, Michel Schinz, Erik Stenman, and Matthias Zenger. An Overview of the Scala Programming Language. \u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne, LAMP-REPORT-2006-001, 2006."},{"key":"e_1_2_1_49_1","volume-title":"History of LISP. SIGPLAN Notices 31 ( 8 )","author":"McCarthy John","year":"1978","unstructured":"John McCarthy . History of LISP. SIGPLAN Notices 31 ( 8 ) , 1978 . doi: 10.1145\/960118.808387 10.1145\/960118.808387 John McCarthy. History of LISP. SIGPLAN Notices 31 ( 8 ), 1978. doi: 10.1145\/960118.808387"},{"key":"e_1_2_1_50_1","volume-title":"Get More Done (and Have Fun!). O'Reilly","author":"McCord Chris","year":"2015","unstructured":"Chris McCord . Metaprogramming Elixir: Write Less Code , Get More Done (and Have Fun!). O'Reilly , 2015 . Chris McCord. Metaprogramming Elixir: Write Less Code, Get More Done (and Have Fun!). O'Reilly, 2015."},{"key":"e_1_2_1_51_1","volume-title":"Indentation-Sensitive Syntax","author":"M\u00f6ller Egil","year":"2003","unstructured":"Egil M\u00f6ller . SRFI-49 : Indentation-Sensitive Syntax . 2003 . https:\/\/srfi.schemers.org\/srfi-49\/srfi-49.html Egil M\u00f6ller. SRFI-49 : Indentation-Sensitive Syntax. 2003. https:\/\/srfi.schemers.org\/srfi-49\/srfi-49.html"},{"key":"e_1_2_1_52_1","volume-title":"a Proof Assistant for Higher-Order Logic","author":"Nipkow Tobias","year":"2002","unstructured":"Tobias Nipkow , Lawrence C. Paulson , and Markus Wenzel . Isabelle\/HOL : a Proof Assistant for Higher-Order Logic . Springer Science & Business Media , 2002 . doi: 10.1007\/3-540-45949-9 10.1007\/3-540-45949-9 Tobias Nipkow, Lawrence C. Paulson, and Markus Wenzel. Isabelle\/HOL: a Proof Assistant for Higher-Order Logic. Springer Science & Business Media, 2002. doi: 10.1007\/3-540-45949-9"},{"key":"e_1_2_1_53_1","unstructured":"OCaml. Preprocessors. 2023. https:\/\/ocaml.org\/docs\/metaprogramming OCaml. Preprocessors. 2023. https:\/\/ocaml.org\/docs\/metaprogramming"},{"key":"e_1_2_1_54_1","volume-title":"Omar and Jonathan Aldrich. Reasonably Programmable Literal Notation. In Proc. International Conference on Functional Programming","author":"Cyrus","year":"2018","unstructured":"Cyrus Omar and Jonathan Aldrich. Reasonably Programmable Literal Notation. In Proc. International Conference on Functional Programming , 2018 . doi: 10.1145\/3236801 10.1145\/3236801 Cyrus Omar and Jonathan Aldrich. Reasonably Programmable Literal Notation. In Proc. International Conference on Functional Programming, 2018. doi: 10.1145\/3236801"},{"key":"e_1_2_1_55_1","volume-title":"Jonathan Aldrich. Safely Composable TypeSpecific Languages. In Proc. European Conference on Object-Oriented Programming","author":"Omar Cyrus","year":"2014","unstructured":"Cyrus Omar , Darya Kurilova , Ligia Nistor , Benjamin Chung , Alex Potanin , and Jonathan Aldrich. Safely Composable TypeSpecific Languages. In Proc. European Conference on Object-Oriented Programming , 2014 . doi: 10.1007\/978-3-662-44202-9_5 10.1007\/978-3-662-44202-9_5 Cyrus Omar, Darya Kurilova, Ligia Nistor, Benjamin Chung, Alex Potanin, and Jonathan Aldrich. Safely Composable TypeSpecific Languages. In Proc. European Conference on Object-Oriented Programming, 2014. doi: 10.1007\/978-3-662-44202-9_5"},{"key":"e_1_2_1_56_1","unstructured":"Phoenix. Phoenix Framework. 2023. https:\/\/www.inklestudios.com\/ink\/ Phoenix. Phoenix Framework. 2023. https:\/\/www.inklestudios.com\/ink\/"},{"key":"e_1_2_1_57_1","volume-title":"Pratt. Top Down Operator Precedence. In Proc. Principles of Programming Languages","author":"Vaughan","year":"1973","unstructured":"Vaughan R. Pratt. Top Down Operator Precedence. In Proc. Principles of Programming Languages , 1973 . doi: 10.1145\/512927.512931 10.1145\/512927.512931 Vaughan R. Pratt. Top Down Operator Precedence. In Proc. Principles of Programming Languages, 1973. doi: 10.1145\/512927.512931"},{"key":"e_1_2_1_58_1","volume-title":"Proc. Generative Programming: Concepts and Experiences","author":"Rafkind Jon","year":"2012","unstructured":"Jon Rafkind and Matthew Flatt . Honu : Syntactic Extension for Algebraic Notation through Enforestation . In Proc. Generative Programming: Concepts and Experiences , 2012 . doi: 10.1145\/2371401.2371420 10.1145\/2371401.2371420 Jon Rafkind and Matthew Flatt. Honu: Syntactic Extension for Algebraic Notation through Enforestation. In Proc. Generative Programming: Concepts and Experiences, 2012. doi: 10.1145\/2371401.2371420"},{"key":"e_1_2_1_59_1","unstructured":"Rust. Macros. 2023. https:\/\/doc.rust-lang.org\/reference\/macros.html Rust. Macros. 2023. https:\/\/doc.rust-lang.org\/reference\/macros.html"},{"key":"e_1_2_1_60_1","volume-title":"Ryu. Parsing Fortress Syntax. In Proc. Principles and Practice of Programming in Java","author":"Sukyoung","year":"2009","unstructured":"Sukyoung Ryu. Parsing Fortress Syntax. In Proc. Principles and Practice of Programming in Java , 2009 . doi: 10.1145\/1596655.1596667 10.1145\/1596655.1596667 Sukyoung Ryu. Parsing Fortress Syntax. In Proc. Principles and Practice of Programming in Java, 2009. doi: 10.1145\/1596655.1596667"},{"key":"e_1_2_1_61_1","volume-title":"Macros in Scala 3","year":"2023","unstructured":"Scala. Macros in Scala 3 . 2023 . https:\/\/docs.scala-lang.org\/scala3\/guides\/macros\/index.html Scala. Macros in Scala 3. 2023. https:\/\/docs.scala-lang.org\/scala3\/guides\/macros\/index.html"},{"key":"e_1_2_1_62_1","volume-title":"Encyclopedia of Parallel Computing","author":"Steele Guy L.","year":"2011","unstructured":"Guy L. Steele , Eric Allen , David Chase , Christine Flood , Victor Luchangco , Jan-Willem Maessen , and Sukyoung Ryu . Fortress (Sun HPCS Language). Encyclopedia of Parallel Computing , 2011 . doi: 10.1007\/978-0-387-09766-4_190 10.1007\/978-0-387-09766-4_190 Guy L. Steele, Eric Allen, David Chase, Christine Flood, Victor Luchangco, Jan-Willem Maessen, and Sukyoung Ryu. Fortress (Sun HPCS Language). Encyclopedia of Parallel Computing, 2011. doi: 10.1007\/978-0-387-09766-4_190"},{"key":"e_1_2_1_63_1","volume-title":"Proc. International Conference on Functional Programming","author":"Syme Don","year":"2007","unstructured":"Don Syme , Gregory Neverov , and James Margetson . Extensible Pattern Matching Via a Lightweight Language Extension . In Proc. International Conference on Functional Programming , 2007 . doi: 10.1145\/1291220.1291159 10.1145\/1291220.1291159 Don Syme, Gregory Neverov, and James Margetson. Extensible Pattern Matching Via a Lightweight Language Extension. In Proc. International Conference on Functional Programming, 2007. doi: 10.1145\/1291220.1291159"},{"key":"e_1_2_1_64_1","first-page":"1","volume":"248","author":"Taha Walid","unstructured":"Walid Taha and Tim Sheard . Meta ML and Multi-Stage Programming with Explicit Annotations. Theoretical Computer Science 248 ( 1 - 2 ), pp. 211-242, 2000. doi: 10.1145\/258993.259019 10.1145\/258993.259019 Walid Taha and Tim Sheard. MetaML and Multi-Stage Programming with Explicit Annotations. Theoretical Computer Science 248 ( 1-2 ), pp. 211-242, 2000. doi: 10.1145\/258993.259019","journal-title":"Explicit Annotations. Theoretical Computer Science"},{"key":"e_1_2_1_65_1","volume-title":"Extensible Pattern Matching in an Extensible Language","author":"Tobin-Hochstadt Sam","year":"2011","unstructured":"Sam Tobin-Hochstadt . Extensible Pattern Matching in an Extensible Language . 2011 . doi: 10.48550\/arXiv.1106.2578 10.48550\/arXiv.1106.2578 Sam Tobin-Hochstadt. Extensible Pattern Matching in an Extensible Language. 2011. doi: 10.48550\/arXiv.1106.2578"},{"key":"e_1_2_1_66_1","volume-title":"Proc. Programming Language Design and Implementation","author":"Tobin-Hochstadt Sam","year":"2011","unstructured":"Sam Tobin-Hochstadt , Vincent St-Amour , Ryan Culpepper , Matthew Flatt , and Matthias Felleisen . Languages as Libraries . In Proc. Programming Language Design and Implementation , 2011 . doi: 10.1145\/1993316.1993514 10.1145\/1993316.1993514 Sam Tobin-Hochstadt, Vincent St-Amour, Ryan Culpepper, Matthew Flatt, and Matthias Felleisen. Languages as Libraries. In Proc. Programming Language Design and Implementation, 2011. doi: 10.1145\/1993316.1993514"},{"key":"e_1_2_1_67_1","volume-title":"Tomita. An Eficient Context-Free Parsing Algorithm for Natural Languages. In Proc. International Joint Conference on Artificial Intelligence","author":"Masaru","year":"1985","unstructured":"Masaru Tomita. An Eficient Context-Free Parsing Algorithm for Natural Languages. In Proc. International Joint Conference on Artificial Intelligence , 1985 . doi: 10.1145\/362007.362035 10.1145\/362007.362035 Masaru Tomita. An Eficient Context-Free Parsing Algorithm for Natural Languages. In Proc. International Joint Conference on Artificial Intelligence, 1985. doi: 10.1145\/362007.362035"},{"key":"e_1_2_1_68_1","volume-title":"Ullrich and Leonardo de Moura. Beyond Notations: Hygienic Macro Expansion for Theorem Proving Languages. In Proc. International Joint Conference on Automated Reasoning","author":"Sebastian","year":"2020","unstructured":"Sebastian Ullrich and Leonardo de Moura. Beyond Notations: Hygienic Macro Expansion for Theorem Proving Languages. In Proc. International Joint Conference on Automated Reasoning , 2020 . doi: 10.1007\/978-3-030-51054-1_10 10.1007\/978-3-030-51054-1_10 Sebastian Ullrich and Leonardo de Moura. Beyond Notations: Hygienic Macro Expansion for Theorem Proving Languages. In Proc. International Joint Conference on Automated Reasoning, 2020. doi: 10.1007\/978-3-030-51054-1_10"},{"key":"e_1_2_1_69_1","volume-title":"Proc. Principles of Programming Languages","author":"Wadler Philip","year":"1987","unstructured":"Philip Wadler . Views : A Way for Pattern Matching to Cohabit with Data Abstraction . In Proc. Principles of Programming Languages , 1987 . doi: 10.1145\/41625.41653 10.1145\/41625.41653 Philip Wadler. Views: A Way for Pattern Matching to Cohabit with Data Abstraction. In Proc. Principles of Programming Languages, 1987. doi: 10.1145\/41625.41653"},{"key":"e_1_2_1_70_1","volume-title":"Readable Lisp S-expressions Project","author":"Wheeler David A.","year":"2013","unstructured":"David A. Wheeler . Readable Lisp S-expressions Project . 2013 . https:\/\/readable.sourceforge.io\/ David A. Wheeler. Readable Lisp S-expressions Project. 2013. https:\/\/readable.sourceforge.io\/"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3622818","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3622818","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T16:37:04Z","timestamp":1750178224000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3622818"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,10,16]]},"references-count":70,"journal-issue":{"issue":"OOPSLA2","published-print":{"date-parts":[[2023,10,16]]}},"alternative-id":["10.1145\/3622818"],"URL":"https:\/\/doi.org\/10.1145\/3622818","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,10,16]]},"assertion":[{"value":"2023-10-16","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}