{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,24]],"date-time":"2026-06-24T08:22:13Z","timestamp":1782289333982,"version":"3.54.5"},"publisher-location":"New York, NY, USA","reference-count":42,"publisher":"ACM","license":[{"start":{"date-parts":[[2018,11,5]],"date-time":"2018-11-05T00:00:00Z","timestamp":1541376000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100001711","name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung","doi-asserted-by":"publisher","award":["200021_166154"],"award-info":[{"award-number":["200021_166154"]}],"id":[{"id":"10.13039\/501100001711","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2018,11,5]]},"DOI":"10.1145\/3278122.3278139","type":"proceedings-article","created":{"date-parts":[[2018,10,24]],"date-time":"2018-10-24T11:28:39Z","timestamp":1540380519000},"page":"14-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":23,"title":["A practical unification of multi-stage programming and macros"],"prefix":"10.1145","author":[{"given":"Nicolas","family":"Stucki","sequence":"first","affiliation":[{"name":"EPFL, Switzerland"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Aggelos","family":"Biboudis","sequence":"additional","affiliation":[{"name":"EPFL, Switzerland"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Martin","family":"Odersky","sequence":"additional","affiliation":[{"name":"EPFL, Switzerland"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2018,11,5]]},"reference":[{"key":"e_1_3_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/2426890.2426917"},{"key":"e_1_3_2_1_2_1","volume-title":"Proc. 9th International Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS '14)","author":"Biboudis Aggelos","year":"2014","unstructured":"Aggelos Biboudis , Nick Palladinos , and Yannis Smaragdakis . 2014 . Clash of the Lambdas . In Proc. 9th International Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS '14) . arXiv:cs.PL\/1406.6631. Aggelos Biboudis, Nick Palladinos, and Yannis Smaragdakis. 2014. Clash of the Lambdas. In Proc. 9th International Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS '14). arXiv:cs.PL\/1406.6631."},{"key":"e_1_3_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1147\/rd.191.0012"},{"key":"e_1_3_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/2489837.2489840"},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.5555\/954186.954190"},{"key":"e_1_3_2_1_7_1","first-page":"1","article-title":"In Search of a Program Generator to Implement Generic Transformations for High-performance","volume":"62","author":"Cohen Albert","year":"2006","unstructured":"Albert Cohen , S\u00e9bastien Donadio , Maria-Jesus Garzaran , Christoph Herrmann , Oleg Kiselyov , and David Padua . 2006 . In Search of a Program Generator to Implement Generic Transformations for High-performance Computing. Sci. Comput. Program. 62 , 1 (Sept. 2006), 25-46. Albert Cohen, S\u00e9bastien Donadio, Maria-Jesus Garzaran, Christoph Herrmann, Oleg Kiselyov, and David Padua. 2006. In Search of a Program Generator to Implement Generic Transformations for High-performance Computing. Sci. Comput. Program. 62, 1 (Sept. 2006), 25-46.","journal-title":"Computing. Sci. Comput. Program."},{"key":"e_1_3_2_1_8_1","volume-title":"Template Haskell, and C++","author":"Czarnecki Krzysztof","unstructured":"Krzysztof Czarnecki , John T. O'Donnell , J\u00f6rg Striegnitz , and Walid Taha . 2004. DSL Implementation in MetaOCaml , Template Haskell, and C++ . Springer Berlin Heidelberg , Berlin, Heidelberg , 51-72. Krzysztof Czarnecki, John T. O'Donnell, J\u00f6rg Striegnitz, and Walid Taha. 2004. DSL Implementation in MetaOCaml, Template Haskell, and C++. Springer Berlin Heidelberg, Berlin, Heidelberg, 51-72."},{"key":"e_1_3_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.5555\/646782.705954"},{"key":"e_1_3_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/382780.382785"},{"key":"e_1_3_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/581478.581486"},{"key":"e_1_3_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/507635.507646"},{"key":"e_1_3_2_1_13_1","first-page":"223","volume-title":"Proc. of the Conference on Functional Programming Languages and Computer Architecture (FPCA '93)","author":"Gill Andrew","unstructured":"Andrew Gill , John Launchbury , and Simon L . Peyton Jones. 1993. A Short Cut to Deforestation . In Proc. of the Conference on Functional Programming Languages and Computer Architecture (FPCA '93) . ACM, 223 - 232 . Andrew Gill, John Launchbury, and Simon L. Peyton Jones. 1993. A Short Cut to Deforestation. In Proc. of the Conference on Functional Programming Languages and Computer Architecture (FPCA '93). ACM, 223-232."},{"key":"e_1_3_2_1_14_1","first-page":"2","article-title":"Why Functional Programming","volume":"32","author":"Hughes J.","year":"1989","unstructured":"J. Hughes . 1989 . Why Functional Programming Matters. Comput. J. 32 , 2 (April 1989), 98-107. J. Hughes. 1989. Why Functional Programming Matters. Comput. J. 32, 2 (April 1989), 98-107.","journal-title":"Matters. Comput. J."},{"key":"e_1_3_2_1_15_1","unstructured":"Simon Peyton Jones. 2016. Template Haskell 14 years on. https:\/\/www.cl.cam.ac.uk\/events\/metaprog2016\/Template-Haskell-Aug16.pptx.  Simon Peyton Jones. 2016. Template Haskell 14 years on. https:\/\/www.cl.cam.ac.uk\/events\/metaprog2016\/Template-Haskell-Aug16.pptx."},{"key":"e_1_3_2_1_16_1","first-page":"86","volume-title":"Proc. of the 13th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL '86)","author":"J\u00f8rring Ulrik","unstructured":"Ulrik J\u00f8rring and William L. Scherlis . 1986. Compilers and Staging Transformations . In Proc. of the 13th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL '86) . ACM, New York, NY, USA , 86 - 96 . Ulrik J\u00f8rring and William L. Scherlis. 1986. Compilers and Staging Transformations. In Proc. of the 13th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL '86). ACM, New York, NY, USA, 86-96."},{"key":"e_1_3_2_1_17_1","doi-asserted-by":"crossref","first-page":"111","DOI":"10.1145\/1480945.1480962","volume-title":"Proc. of the 2009 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM '09)","author":"Kameyama Yukiyoshi","year":"2009","unstructured":"Yukiyoshi Kameyama , Oleg Kiselyov , and Chung-chieh Shan. 2009 . Shifting the Stage: Staging with Delimited Control . In Proc. of the 2009 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM '09) . ACM, 111 - 120 . Yukiyoshi Kameyama, Oleg Kiselyov, and Chung-chieh Shan. 2009. Shifting the Stage: Staging with Delimited Control. In Proc. of the 2009 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM '09). ACM, 111-120."},{"key":"e_1_3_2_1_18_1","first-page":"P2","article-title":"Combinators for Impure Yet Hygienic Code","volume":"112","author":"Kameyama Yukiyoshi","year":"2015","unstructured":"Yukiyoshi Kameyama , Oleg Kiselyov , and Chung-chieh Shan. 2015 . Combinators for Impure Yet Hygienic Code Generation. Sci. Comput. Program. 112 , P2 (Nov. 2015), 120-144. Yukiyoshi Kameyama, Oleg Kiselyov, and Chung-chieh Shan. 2015. Combinators for Impure Yet Hygienic Code Generation. Sci. Comput. Program. 112, P2 (Nov. 2015), 120-144.","journal-title":"Generation. Sci. Comput. Program."},{"key":"e_1_3_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796804005209"},{"key":"e_1_3_2_1_20_1","volume-title":"The Design and Implementation of BER MetaOCaml","author":"Kiselyov Oleg","unstructured":"Oleg Kiselyov . 2014. The Design and Implementation of BER MetaOCaml . In Functional and Logic Programming, Michael Codish and Eijiro Sumii (Eds.). Springer International Publishing , Cham , 86-102. Oleg Kiselyov. 2014. The Design and Implementation of BER MetaOCaml. In Functional and Logic Programming, Michael Codish and Eijiro Sumii (Eds.). Springer International Publishing, Cham, 86-102."},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"crossref","DOI":"10.1561\/9781680834376","volume-title":"Reconciling Abstraction with High Performance: A MetaOCaml approach. Foundations and Trends\u00aein Programming Languages 5, 1","author":"Kiselyov Oleg","year":"2018","unstructured":"Oleg Kiselyov . 2018. Reconciling Abstraction with High Performance: A MetaOCaml approach. Foundations and Trends\u00aein Programming Languages 5, 1 ( 2018 ), 1-101. Oleg Kiselyov. 2018. Reconciling Abstraction with High Performance: A MetaOCaml approach. Foundations and Trends\u00aein Programming Languages 5, 1 (2018), 1-101."},{"key":"e_1_3_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009880"},{"key":"e_1_3_2_1_23_1","volume-title":"ACM SIGPLAN Workshop on ML.","author":"Kiselyov Oleg","year":"2010","unstructured":"Oleg Kiselyov and Chung-chieh Shan. 2010 . The MetaOCaml files - Status report and research proposal . In ACM SIGPLAN Workshop on ML. Oleg Kiselyov and Chung-chieh Shan. 2010. The MetaOCaml files - Status report and research proposal. In ACM SIGPLAN Workshop on ML."},{"key":"e_1_3_2_1_24_1","unstructured":"Fengyun Liu and Eugene Burmako. 2017. Two approaches to portable macros. (2017).  Fengyun Liu and Eugene Burmako. 2017. Two approaches to portable macros. (2017)."},{"key":"e_1_3_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796802004616"},{"key":"e_1_3_2_1_26_1","volume-title":"Two-level Functional Languages","author":"Nielson Flemming","unstructured":"Flemming Nielson and Hanne Riis Nielson . 1992. Two-level Functional Languages . Cambridge University Press , New York, NY, USA . Flemming Nielson and Hanne Riis Nielson. 1992. Two-level Functional Languages. Cambridge University Press, New York, NY, USA."},{"key":"e_1_3_2_1_27_1","unstructured":"Martin Odersky Eugene Burmako and Dmytro Petrashko. 2016. A TASTY Alternative. (2016).  Martin Odersky Eugene Burmako and Dmytro Petrashko. 2016. A TASTY Alternative. (2016)."},{"key":"e_1_3_2_1_28_1","doi-asserted-by":"crossref","first-page":"131","DOI":"10.1145\/3136040.3136043","volume-title":"Proc. of the 16th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences (GPCE","author":"Parreaux Lionel","year":"2017","unstructured":"Lionel Parreaux , Amir Shaikhha , and Christoph E. Koch . 2017. Quoted Staged Rewriting: A Practical Approach to Library-defined Optimizations . In Proc. of the 16th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences (GPCE 2017 ). ACM, NewYork, NY, USA , 131 - 145 . Lionel Parreaux, Amir Shaikhha, and Christoph E. Koch. 2017. Quoted Staged Rewriting: A Practical Approach to Library-defined Optimizations. In Proc. of the 16th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences (GPCE 2017). ACM, NewYork, NY, USA, 131-145."},{"key":"e_1_3_2_1_29_1","volume-title":"Proc. ACM Program. Lang. 2, POPL, Article 13 (Dec.","author":"Parreaux Lionel","year":"2017","unstructured":"Lionel Parreaux , Antoine Voizard , Amir Shaikhha , and Christoph E. Koch . 2017. Unifying Analytic and Statically-typed Quasiquotes . Proc. ACM Program. Lang. 2, POPL, Article 13 (Dec. 2017 ), 33 pages. Lionel Parreaux, Antoine Voizard, Amir Shaikhha, and Christoph E. Koch. 2017. Unifying Analytic and Statically-typed Quasiquotes. Proc. ACM Program. Lang. 2, POPL, Article 13 (Dec. 2017), 33 pages."},{"key":"e_1_3_2_1_30_1","first-page":"203","volume-title":"Haskell workshop","volume":"1","author":"Jones Simon Peyton","year":"2001","unstructured":"Simon Peyton Jones , Andrew Tolmach , and Tony Hoare . 2001 . Playing by the Rules: Rewriting as a Practical Optimisation Technique in GHC . In Haskell workshop , Vol. 1 . 203 - 233 . Simon Peyton Jones, Andrew Tolmach, and Tony Hoare. 2001. Playing by the Rules: Rewriting as a Practical Optimisation Technique in GHC. In Haskell workshop, Vol. 1. 203-233."},{"key":"e_1_3_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/2998392.2998399"},{"key":"e_1_3_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1868294.1868314"},{"key":"e_1_3_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/581690.581691"},{"key":"e_1_3_2_1_35_1","unstructured":"Aleksey Shipilev Sergey Kuksenko Anders Astrand Staan Friberg and Henrik Loef. 2007. OpenJDK Code Tools: JMH. http:\/\/openjdk.java.net\/projects\/code-tools\/jmh\/.  Aleksey Shipilev Sergey Kuksenko Anders Astrand Staan Friberg and Henrik Loef. 2007. OpenJDK Code Tools: JMH. http:\/\/openjdk.java.net\/projects\/code-tools\/jmh\/."},{"key":"e_1_3_2_1_36_1","volume-title":"Grand Timely Topics in Software Engineering, J\u00e1come Cunha, Jo\u00e3o P","author":"Smaragdakis Yannis","unstructured":"Yannis Smaragdakis , Aggelos Biboudis , and George Fourtounis . 2017. Structured Program Generation Techniques . In Grand Timely Topics in Software Engineering, J\u00e1come Cunha, Jo\u00e3o P . Fernandes, Ralf L\u00e4mmel, Jo\u00e3o Saraiva, and Vadim Zaytsev (Eds.). Springer International Publishing , Cham , 154-178. Yannis Smaragdakis, Aggelos Biboudis, and George Fourtounis. 2017. Structured Program Generation Techniques. In Grand Timely Topics in Software Engineering, J\u00e1come Cunha, Jo\u00e3o P. Fernandes, Ralf L\u00e4mmel, Jo\u00e3o Saraiva, and Vadim Zaytsev (Eds.). Springer International Publishing, Cham, 154-178."},{"key":"e_1_3_2_1_38_1","volume-title":"Domain-Specific Program Generation: International Seminar","author":"Taha Walid","year":"2003","unstructured":"Walid Taha . 2004. A Gentle Introduction to Multi-stage Programming . In Domain-Specific Program Generation: International Seminar , Dagstuhl Castle, Germany, March 23-28, 2003 . Revised Papers, Christian Lengauer, Don Batory, Charles Consel, and Martin Odersky (Eds.). Number 3016. Springer Berlin Heidelberg , 30-50. Walid Taha. 2004. A Gentle Introduction to Multi-stage Programming. In Domain-Specific Program Generation: International Seminar, Dagstuhl Castle, Germany, March 23-28, 2003. Revised Papers, Christian Lengauer, Don Batory, Charles Consel, and Martin Odersky (Eds.). Number 3016. Springer Berlin Heidelberg, 30-50."},{"key":"e_1_3_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/258993.259019"},{"key":"e_1_3_2_1_40_1","volume-title":"Dotty Compiler: A Next Generation Compiler for Scala. https:\/\/web.archive.org\/web\/20180630221002\/http:\/\/dotty.epfl.ch\/.","author":"Team The Dotty","year":"2018","unstructured":"The Dotty Team . 2018 . Dotty Compiler: A Next Generation Compiler for Scala. https:\/\/web.archive.org\/web\/20180630221002\/http:\/\/dotty.epfl.ch\/. The Dotty Team. 2018. Dotty Compiler: A Next Generation Compiler for Scala. https:\/\/web.archive.org\/web\/20180630221002\/http:\/\/dotty.epfl.ch\/."},{"key":"e_1_3_2_1_41_1","unstructured":"The Dotty Team. 2018. Dotty Inline. https:\/\/web.archive.org\/web\/20171230163822\/http:\/\/dotty.epfl.ch:80\/docs\/reference\/inline.html. [Accessed: 2018-07-09].  The Dotty Team. 2018. Dotty Inline. https:\/\/web.archive.org\/web\/20171230163822\/http:\/\/dotty.epfl.ch:80\/docs\/reference\/inline.html. [Accessed: 2018-07-09]."},{"key":"e_1_3_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993514"},{"key":"e_1_3_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/1391956.1391958"},{"key":"e_1_3_2_1_44_1","volume-title":"Proc. of the 1998 SIAM Workshop: Object Oriented Methods for Interoperable Scientific and Engineering Computing. 286-295","author":"Veldhuizen T","year":"1998","unstructured":"T Veldhuizen and E Gannon . 1998 . Active libraries: Rethinking the roles of compilers and libraries . In Proc. of the 1998 SIAM Workshop: Object Oriented Methods for Interoperable Scientific and Engineering Computing. 286-295 . T Veldhuizen and E Gannon. 1998. Active libraries: Rethinking the roles of compilers and libraries. In Proc. of the 1998 SIAM Workshop: Object Oriented Methods for Interoperable Scientific and Engineering Computing. 286-295."},{"key":"e_1_3_2_1_45_1","unstructured":"Jeremy Yallop and Leo White. 2015. Modular macros.  Jeremy Yallop and Leo White. 2015. Modular macros."}],"event":{"name":"GPCE '18: 17th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences","location":"Boston MA USA","acronym":"GPCE '18","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages"]},"container-title":["Proceedings of the 17th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3278122.3278139","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3278122.3278139","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T19:54:09Z","timestamp":1750190049000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3278122.3278139"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,11,5]]},"references-count":42,"alternative-id":["10.1145\/3278122.3278139","10.1145\/3278122"],"URL":"https:\/\/doi.org\/10.1145\/3278122.3278139","relation":{"is-identical-to":[{"id-type":"doi","id":"10.1145\/3393934.3278139","asserted-by":"object"}]},"subject":[],"published":{"date-parts":[[2018,11,5]]},"assertion":[{"value":"2018-11-05","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}