{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,7,4]],"date-time":"2025-07-04T20:22:09Z","timestamp":1751660529470,"version":"3.41.0"},"publisher-location":"New York, NY, USA","reference-count":44,"publisher":"ACM","license":[{"start":{"date-parts":[[2021,10,17]],"date-time":"2021-10-17T00:00:00Z","timestamp":1634428800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"name":"NSF","award":["1553471, 1564207, 1918483, 1910216"],"award-info":[{"award-number":["1553471, 1564207, 1918483, 1910216"]}]},{"name":"DOE","award":["DE-SC0018050"],"award-info":[{"award-number":["DE-SC0018050"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2021,10,17]]},"DOI":"10.1145\/3486609.3487207","type":"proceedings-article","created":{"date-parts":[[2021,11,22]],"date-time":"2021-11-22T22:14:41Z","timestamp":1637619281000},"page":"156-169","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["On-stack replacement for program generators and source-to-source compilers"],"prefix":"10.1145","author":[{"given":"Gr\u00e9gory M.","family":"Essertel","sequence":"first","affiliation":[{"name":"Purdue University, USA"}]},{"given":"Ruby Y.","family":"Tahboub","sequence":"additional","affiliation":[{"name":"Purdue University, USA"}]},{"given":"Tiark","family":"Rompf","sequence":"additional","affiliation":[{"name":"Purdue University, USA"}]}],"member":"320","published-online":{"date-parts":[[2021,11,22]]},"reference":[{"key":"e_1_3_2_2_1_1","doi-asserted-by":"crossref","unstructured":"2017. Launching Ignition and TurboFan. https:\/\/v8.dev\/blog\/launching-ignition-and-turbofan  2017. Launching Ignition and TurboFan. https:\/\/v8.dev\/blog\/launching-ignition-and-turbofan","DOI":"10.7901\/2169-3358-2017.1.000052"},{"key":"e_1_3_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1147\/sj.442.0399"},{"key":"e_1_3_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/2723372.2742797"},{"key":"e_1_3_2_2_4_1","volume-title":"Sweeney","author":"Arnold Matthew","year":"2000","unstructured":"Matthew Arnold , Stephen J. Fink , David Grove , Michael Hind , and Peter F . Sweeney . 2000 . Adaptive optimization in the Jalape\u00f1o JVM. In OOPSLA, Mary Beth Rosson and Doug Lea (Eds.). ACM , 47\u201365. isbn:1-58113-200-X Matthew Arnold, Stephen J. Fink, David Grove, Michael Hind, and Peter F. Sweeney. 2000. Adaptive optimization in the Jalape\u00f1o JVM. In OOPSLA, Mary Beth Rosson and Doug Lea (Eds.). ACM, 47\u201365. isbn:1-58113-200-X"},{"key":"e_1_3_2_2_5_1","doi-asserted-by":"crossref","unstructured":"Michael Bebenita Florian Brandner Manuel F\u00e4hndrich Francesco Logozzo Wolfram Schulte Nikolai Tillmann and Herman Venter. 2010. SPUR: a trace-based JIT compiler for CIL. In OOPSLA. ACM 708\u2013725.  Michael Bebenita Florian Brandner Manuel F\u00e4hndrich Francesco Logozzo Wolfram Schulte Nikolai Tillmann and Herman Venter. 2010. SPUR: a trace-based JIT compiler for CIL. In OOPSLA. ACM 708\u2013725.","DOI":"10.1145\/1932682.1869517"},{"volume-title":"ECOOP (LIPIcs","author":"Bhandari Abhilash","key":"e_1_3_2_2_6_1","unstructured":"Abhilash Bhandari and V. Krishna Nandivada . 2015. Loop Tiling in the Presence of Exceptions . In ECOOP (LIPIcs , Vol. 37). Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 124\u2013 148 . Abhilash Bhandari and V. Krishna Nandivada. 2015. Loop Tiling in the Presence of Exceptions. In ECOOP (LIPIcs, Vol. 37). Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 124\u2013148."},{"key":"e_1_3_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/1565824.1565827"},{"key":"e_1_3_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/165854.165893"},{"key":"e_1_3_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/2854038.2854042"},{"key":"e_1_3_2_2_10_1","doi-asserted-by":"crossref","unstructured":"Daniele Cono D\u2019Elia and Camil Demetrescu. 2016. Flexible on-stack replacement in LLVM. In CGO. ACM 250\u2013260.  Daniele Cono D\u2019Elia and Camil Demetrescu. 2016. Flexible on-stack replacement in LLVM. In CGO. ACM 250\u2013260.","DOI":"10.1145\/2854038.2854061"},{"key":"e_1_3_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3192366.3192396"},{"key":"e_1_3_2_2_12_1","volume-title":"Schiffman","author":"Peter Deutsch L.","year":"1984","unstructured":"L. Peter Deutsch and Allan M . Schiffman . 1984 . Efficient Implementation of the Smalltalk-80 System. In POPL. ACM Press , 297\u2013302. L. Peter Deutsch and Allan M. Schiffman. 1984. Efficient Implementation of the Smalltalk-80 System. In POPL. ACM Press, 297\u2013302."},{"key":"e_1_3_2_2_13_1","volume-title":"Flare: Optimizing Apache Spark with Native Compilation for Scale-Up Architectures and Medium-Size Data","author":"Essertel Gr\u00e9gory M.","year":"2018","unstructured":"Gr\u00e9gory M. Essertel , Ruby Y. Tahboub , James M. Decker , Kevin J. Brown , Kunle Olukotun , and Tiark Rompf . 2018 . Flare: Optimizing Apache Spark with Native Compilation for Scale-Up Architectures and Medium-Size Data . In OSDI. USENIX Association , 799\u2013815. Gr\u00e9gory M. Essertel, Ruby Y. Tahboub, James M. Decker, Kevin J. Brown, Kunle Olukotun, and Tiark Rompf. 2018. Flare: Optimizing Apache Spark with Native Compilation for Scale-Up Architectures and Medium-Size Data. In OSDI. USENIX Association, 799\u2013815."},{"key":"e_1_3_2_2_14_1","unstructured":"Torbj\u00f6rn Granlund et al.. 2002. GNU Multiple Precision Arithmetic Library 4.1.2. http:\/\/swox.com\/gmp\/  Torbj\u00f6rn Granlund et al.. 2002. GNU Multiple Precision Arithmetic Library 4.1.2. http:\/\/swox.com\/gmp\/"},{"key":"e_1_3_2_2_15_1","volume-title":"Fink and Feng Qian","author":"Stephen","year":"2003","unstructured":"Stephen J. Fink and Feng Qian . 2003 . Design, Implementation and Evaluation of Adaptive Recompilation with On-Stack Replacement. In CGO. IEEE Computer Society , 241\u2013252. Stephen J. Fink and Feng Qian. 2003. Design, Implementation and Evaluation of Adaptive Recompilation with On-Stack Replacement. In CGO. IEEE Computer Society, 241\u2013252."},{"key":"e_1_3_2_2_16_1","volume-title":"POPL","author":"Fl\u00fcckiger Olivier","year":"2018","unstructured":"Olivier Fl\u00fcckiger , Gabriel Scherer , Ming-Ho Yee , Aviral Goel , Amal Ahmed , and Jan Vitek . 2018. Correctness of speculative optimizations with dynamic deoptimization. PACMPL, 2 , POPL ( 2018 ), 49:1\u201349:28. Olivier Fl\u00fcckiger, Gabriel Scherer, Ming-Ho Yee, Aviral Goel, Amal Ahmed, and Jan Vitek. 2018. Correctness of speculative optimizations with dynamic deoptimization. PACMPL, 2, POPL (2018), 49:1\u201349:28."},{"key":"e_1_3_2_2_17_1","unstructured":"Google. 2009. The V8 JavaScript VM. https:\/\/developers.google.com\/v8\/intro  Google. 2009. The V8 JavaScript VM. https:\/\/developers.google.com\/v8\/intro"},{"key":"e_1_3_2_2_18_1","unstructured":"Google. 2010. A New Crankshaft for V8. http:\/\/blog.chromium.org\/2010\/12\/new-crankshaft-for-v8.html  Google. 2010. A New Crankshaft for V8. http:\/\/blog.chromium.org\/2010\/12\/new-crankshaft-for-v8.html"},{"key":"e_1_3_2_2_19_1","first-page":"54262","volume-title":"Pierre America (Ed.) (Lecture Notes in Computer Science","volume":"38","author":"H\u00f6lzle Urs","year":"1991","unstructured":"Urs H\u00f6lzle , Craig Chambers , and David Ungar . 1991 . Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches. In ECOOP , Pierre America (Ed.) (Lecture Notes in Computer Science , Vol. 512). Springer, 21\u2013 38 . isbn:3-540- 54262 - 54260 Urs H\u00f6lzle, Craig Chambers, and David Ungar. 1991. Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches. In ECOOP, Pierre America (Ed.) (Lecture Notes in Computer Science, Vol. 512). Springer, 21\u201338. isbn:3-540-54262-0"},{"volume-title":"Debugging Optimized Code with Dynamic Deoptimization","author":"H\u00f6lzle Urs","key":"e_1_3_2_2_20_1","unstructured":"Urs H\u00f6lzle , Craig Chambers , and David Ungar . 1992. Debugging Optimized Code with Dynamic Deoptimization . In PLDI, Stuart I. Feldman and Richard L. Wexelblat (Eds.). ACM , 32\u201343. isbn:0-89791-475-9 Urs H\u00f6lzle, Craig Chambers, and David Ungar. 1992. Debugging Optimized Code with Dynamic Deoptimization. In PLDI, Stuart I. Feldman and Richard L. Wexelblat (Eds.). ACM, 32\u201343. isbn:0-89791-475-9"},{"key":"e_1_3_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/233561.233562"},{"key":"e_1_3_2_2_22_1","volume-title":"Ungar","author":"H\u00f6lzle Urs","year":"1994","unstructured":"Urs H\u00f6lzle and David M . Ungar . 1994 . A Third-Generation SELF Implementation: Reconsiling Responsiveness with Performance. In OOPSLA. ACM , 229\u2013243. Urs H\u00f6lzle and David M. Ungar. 1994. A Third-Generation SELF Implementation: Reconsiling Responsiveness with Performance. In OOPSLA. ACM, 229\u2013243."},{"key":"e_1_3_2_2_23_1","doi-asserted-by":"crossref","unstructured":"Andr\u00e9 Kohn Viktor Leis and Thomas Neumann. 2018. Adaptive Execution of Compiled Queries. In ICDE.  Andr\u00e9 Kohn Viktor Leis and Thomas Neumann. 2018. Adaptive Execution of Compiled Queries. In ICDE.","DOI":"10.1109\/ICDE.2018.00027"},{"key":"e_1_3_2_2_24_1","doi-asserted-by":"crossref","unstructured":"Grzegorz Kossakowski Nada Amin Tiark Rompf and Martin Odersky. 2012. JavaScript as an Embedded DSL. In ECOOP. 409\u2013434.  Grzegorz Kossakowski Nada Amin Tiark Rompf and Martin Odersky. 2012. JavaScript as an Embedded DSL. In ECOOP. 409\u2013434.","DOI":"10.1007\/978-3-642-31057-7_19"},{"key":"e_1_3_2_2_25_1","volume-title":"Hendren","author":"Lameed Nurudeen","year":"2013","unstructured":"Nurudeen Lameed and Laurie J . Hendren . 2013 . A modular approach to on-stack replacement in LLVM. In VEE. ACM , 143\u2013154. Nurudeen Lameed and Laurie J. Hendren. 2013. A modular approach to on-stack replacement in LLVM. In VEE. ACM, 143\u2013154."},{"key":"e_1_3_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.14778\/2002938.2002940"},{"key":"e_1_3_2_2_27_1","doi-asserted-by":"crossref","unstructured":"Georg Ofenbeck Tiark Rompf Alen Stojanov Martin Odersky and Markus P\u00fcschel. 2013. Spiral in scala: towards the systematic construction of generators for performance libraries. In GPCE. ACM 125\u2013134.  Georg Ofenbeck Tiark Rompf Alen Stojanov Martin Odersky and Markus P\u00fcschel. 2013. Spiral in scala: towards the systematic construction of generators for performance libraries. In GPCE. ACM 125\u2013134.","DOI":"10.1145\/2637365.2517228"},{"key":"e_1_3_2_2_28_1","unstructured":"Oracle. 2012. OpenJDK: Graal project. http:\/\/openjdk. java.net\/projects\/graal\/  Oracle. 2012. OpenJDK: Graal project. http:\/\/openjdk. java.net\/projects\/graal\/"},{"key":"e_1_3_2_2_29_1","volume-title":"The Java HotSpot Server Compiler. In Java Virtual Machine Research and Technology Symposium. USENIX. isbn:1-880446-11-1","author":"Paleczny Michael","year":"2001","unstructured":"Michael Paleczny , Christopher A. Vick , and Cliff Click . 2001 . The Java HotSpot Server Compiler. In Java Virtual Machine Research and Technology Symposium. USENIX. isbn:1-880446-11-1 Michael Paleczny, Christopher A. Vick, and Cliff Click. 2001. The Java HotSpot Server Compiler. In Java Virtual Machine Research and Technology Symposium. USENIX. isbn:1-880446-11-1"},{"key":"e_1_3_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/316686.316697"},{"key":"e_1_3_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/JPROC.2004.840306"},{"key":"e_1_3_2_2_32_1","volume-title":"Amarasinghe","author":"Ragan-Kelley Jonathan","year":"2013","unstructured":"Jonathan Ragan-Kelley , Connelly Barnes , Andrew Adams , Sylvain Paris , Fr\u00e9do Durand , and Saman P . Amarasinghe . 2013 . Halide: a language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines. In PLDI. ACM , 519\u2013530. Jonathan Ragan-Kelley, Connelly Barnes, Andrew Adams, Sylvain Paris, Fr\u00e9do Durand, and Saman P. Amarasinghe. 2013. Halide: a language and compiler for optimizing parallelism, locality, and recomputation in image processing pipelines. In PLDI. ACM, 519\u2013530."},{"volume-title":"PyPy\u2019s approach to virtual machine construction","author":"Rigo Armin","key":"e_1_3_2_2_33_1","unstructured":"Armin Rigo and Samuele Pedroni . 2006. PyPy\u2019s approach to virtual machine construction . In OOPSLA Companion, Peri L. Tarr and William R. Cook (Eds.). ACM , 944\u2013953. isbn:1-59593-491-X Armin Rigo and Samuele Pedroni. 2006. PyPy\u2019s approach to virtual machine construction. In OOPSLA Companion, Peri L. Tarr and William R. Cook (Eds.). ACM, 944\u2013953. isbn:1-59593-491-X"},{"key":"e_1_3_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/2184319.2184345"},{"volume-title":"a server framework with lightweight actors isolation types zero-copy messaging. Ph. D. Dissertation","author":"Srinivasan Sriram","key":"e_1_3_2_2_35_1","unstructured":"Sriram Srinivasan . 2010. Kilim : a server framework with lightweight actors isolation types zero-copy messaging. Ph. D. Dissertation . University of Cambridge , UK. Sriram Srinivasan. 2010. Kilim : a server framework with lightweight actors isolation types zero-copy messaging. Ph. D. Dissertation. University of Cambridge, UK."},{"key":"e_1_3_2_2_36_1","doi-asserted-by":"crossref","unstructured":"Alen Stojanov Tiark Rompf and Markus P\u00fcschel. 2019. A stage-polymorphic IR for compiling MATLAB-style dynamic tensor expressions. In GPCE. ACM 34\u201347.  Alen Stojanov Tiark Rompf and Markus P\u00fcschel. 2019. A stage-polymorphic IR for compiling MATLAB-style dynamic tensor expressions. In GPCE. ACM 34\u201347.","DOI":"10.1145\/3357765.3359514"},{"key":"e_1_3_2_2_37_1","doi-asserted-by":"crossref","unstructured":"Alen Stojanov Ivaylo Toskov Tiark Rompf and Markus P\u00fcschel. 2018. SIMD intrinsics on managed language runtimes. In CGO. ACM 2\u201315.  Alen Stojanov Ivaylo Toskov Tiark Rompf and Markus P\u00fcschel. 2018. SIMD intrinsics on managed language runtimes. In CGO. ACM 2\u201315.","DOI":"10.1145\/3168810"},{"key":"e_1_3_2_2_38_1","first-page":"134","article-title":"Delite: A compiler architecture for performance-oriented embedded domain-specific languages","volume":"13","author":"Sujeeth Arvind K","year":"2014","unstructured":"Arvind K Sujeeth , Kevin J Brown , Hyoukjoong Lee , Tiark Rompf , Hassan Chafi , Martin Odersky , and Kunle Olukotun . 2014 . Delite: A compiler architecture for performance-oriented embedded domain-specific languages . ACM TECS , 13 , 4s (2014), 134 . Arvind K Sujeeth, Kevin J Brown, Hyoukjoong Lee, Tiark Rompf, Hassan Chafi, Martin Odersky, and Kunle Olukotun. 2014. Delite: A compiler architecture for performance-oriented embedded domain-specific languages. ACM TECS, 13, 4s (2014), 134.","journal-title":"ACM TECS"},{"key":"e_1_3_2_2_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/2605685"},{"key":"e_1_3_2_2_40_1","doi-asserted-by":"crossref","unstructured":"Ruby Y. Tahboub Gr\u00e9gory M. Essertel and Tiark Rompf. 2018. How to Architect a Query Compiler Revisited. In SIGMOD. 307\u2013322.  Ruby Y. Tahboub Gr\u00e9gory M. Essertel and Tiark Rompf. 2018. How to Architect a Query Compiler Revisited. In SIGMOD. 307\u2013322.","DOI":"10.1145\/3183713.3196893"},{"key":"e_1_3_2_2_41_1","unstructured":"The Transaction Processing Council. 2018. TPC-H Version 2.15.0. http:\/\/www.tpc.org\/tpch\/  The Transaction Processing Council. 2018. TPC-H Version 2.15.0. http:\/\/www.tpc.org\/tpch\/"},{"key":"e_1_3_2_2_42_1","doi-asserted-by":"crossref","unstructured":"Kunshan Wang Stephen M. Blackburn Antony L. Hosking and Michael Norrish. 2018. Hop Skip & Jump: Practical On-Stack Replacement for a Cross-Platform Language-Neutral VM. In VEE. ACM 1\u201316.  Kunshan Wang Stephen M. Blackburn Antony L. Hosking and Michael Norrish. 2018. Hop Skip & Jump: Practical On-Stack Replacement for a Cross-Platform Language-Neutral VM. In VEE. ACM 1\u201316.","DOI":"10.1145\/3296975.3186412"},{"key":"e_1_3_2_2_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/2400682.2400689"},{"volume-title":"Truffle: a self-optimizing runtime system","author":"Wimmer Christian","key":"e_1_3_2_2_44_1","unstructured":"Christian Wimmer and Thomas W\u00fcrthinger . 2012. Truffle: a self-optimizing runtime system . In SPLASH, Gary T. Leavens (Ed.). ACM , 13\u201314. isbn:978-1-4503-1563-0 Christian Wimmer and Thomas W\u00fcrthinger. 2012. Truffle: a self-optimizing runtime system. In SPLASH, Gary T. Leavens (Ed.). ACM, 13\u201314. isbn:978-1-4503-1563-0"}],"event":{"name":"GPCE '21: Concepts and Experiences","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages"],"location":"Chicago IL USA","acronym":"GPCE '21"},"container-title":["Proceedings of the 20th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3486609.3487207","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3486609.3487207","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3486609.3487207","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T20:48:40Z","timestamp":1750193320000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3486609.3487207"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,10,17]]},"references-count":44,"alternative-id":["10.1145\/3486609.3487207","10.1145\/3486609"],"URL":"https:\/\/doi.org\/10.1145\/3486609.3487207","relation":{},"subject":[],"published":{"date-parts":[[2021,10,17]]},"assertion":[{"value":"2021-11-22","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}