{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,4]],"date-time":"2025-12-04T02:36:31Z","timestamp":1764815791166,"version":"3.41.0"},"publisher-location":"New York, NY, USA","reference-count":39,"publisher":"ACM","license":[{"start":{"date-parts":[[2022,6,14]],"date-time":"2022-06-14T00:00:00Z","timestamp":1655164800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2022,6,14]]},"DOI":"10.1145\/3519941.3535075","type":"proceedings-article","created":{"date-parts":[[2022,6,10]],"date-time":"2022-06-10T18:27:39Z","timestamp":1654885659000},"page":"121-132","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":7,"title":["Tighten rust\u2019s belt: shrinking embedded Rust binaries"],"prefix":"10.1145","author":[{"given":"Hudson","family":"Ayers","sequence":"first","affiliation":[{"name":"Stanford University, USA \/ Google, USA"}]},{"given":"Evan","family":"Laufer","sequence":"additional","affiliation":[{"name":"Stanford University, USA"}]},{"given":"Paul","family":"Mure","sequence":"additional","affiliation":[{"name":"Stanford University, USA"}]},{"given":"Jaehyeon","family":"Park","sequence":"additional","affiliation":[{"name":"Stanford University, USA"}]},{"given":"Eduardo","family":"Rodelo","sequence":"additional","affiliation":[{"name":"Stanford University, USA"}]},{"given":"Thea","family":"Rossman","sequence":"additional","affiliation":[{"name":"Stanford University, USA"}]},{"given":"Andrey","family":"Pronin","sequence":"additional","affiliation":[{"name":"Google, USA"}]},{"given":"Philip","family":"Levis","sequence":"additional","affiliation":[{"name":"Stanford University, USA"}]},{"given":"Johnathan","family":"Van Why","sequence":"additional","affiliation":[{"name":"Google, USA"}]}],"member":"320","published-online":{"date-parts":[[2022,6,14]]},"reference":[{"key":"e_1_3_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/2889160.2889229"},{"key":"e_1_3_2_1_2_1","unstructured":"Jorge Aparicio. Accessed: 2022-03-03. mu fmt. https:\/\/github.com\/japaric\/ufmt  Jorge Aparicio. Accessed: 2022-03-03. mu fmt. https:\/\/github.com\/japaric\/ufmt"},{"key":"e_1_3_2_1_3_1","unstructured":"Ashwin Kumar Balakrishnan and Gaurav Nattanmai Ganesh. 2022. Modern C++ and Rust in embedded memory-constrained systems.  Ashwin Kumar Balakrishnan and Gaurav Nattanmai Ganesh. 2022. Modern C++ and Rust in embedded memory-constrained systems."},{"key":"e_1_3_2_1_4_1","unstructured":"Vadim Bendebury. 2018. Google Security Chip H1: A member of the Titan Family. Open Source Firmware Conerence 2018  Vadim Bendebury. 2018. Google Security Chip H1: A member of the Titan Family. Open Source Firmware Conerence 2018"},{"key":"e_1_3_2_1_5_1","unstructured":"Cliff L. Biffle. 2021. On Hubris and Humility: developing an OS for robustness in Rust. Open Source Firmware Conerence 2021  Cliff L. Biffle. 2021. On Hubris and Humility: developing an OS for robustness in Rust. Open Source Firmware Conerence 2021"},{"key":"e_1_3_2_1_6_1","unstructured":"Nico Borgsm\u00fcller. 2021. The Rust Programming Language for Embedded Software Development. Ph. D. Dissertation. Technische Hochschule.  Nico Borgsm\u00fcller. 2021. The Rust Programming Language for Embedded Software Development. Ph. D. Dissertation. Technische Hochschule."},{"key":"e_1_3_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO51591.2021.9370306"},{"key":"e_1_3_2_1_8_1","volume-title":"Compiler techniques for code compaction. ACM Transactions on Programming languages and Systems (TOPLAS), 22, 2","author":"Debray Saumya K","year":"2000","unstructured":"Saumya K Debray , William Evans , Robert Muth , and Bjorn De Sutter . 2000. Compiler techniques for code compaction. ACM Transactions on Programming languages and Systems (TOPLAS), 22, 2 ( 2000 ), 378\u2013415. Saumya K Debray, William Evans, Robert Muth, and Bjorn De Sutter. 2000. Compiler techniques for code compaction. ACM Transactions on Programming languages and Systems (TOPLAS), 22, 2 (2000), 378\u2013415."},{"key":"e_1_3_2_1_9_1","unstructured":"Tock Project Developers. Accessed: 2022-03-03. libtock-rs. https:\/\/github.com\/tock\/libtock-rs  Tock Project Developers. Accessed: 2022-03-03. libtock-rs. https:\/\/github.com\/tock\/libtock-rs"},{"key":"e_1_3_2_1_10_1","volume-title":"The Case for Writing Network Drivers in High-Level Programming Languages. In 2019 ACM\/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS). 1\u201313","author":"Emmerich Paul","year":"2019","unstructured":"Paul Emmerich , Simon Ellmann , Fabian Bonk , Alex Egger , Esa\u00fa Garc\u00eda S\u00e1nchez-Torija , Thomas G\u00fcnzel , Sebastian Di Luzio , Alexandru Obada , Maximilian Stadlmeier , and Sebastian Voit . 2019 . The Case for Writing Network Drivers in High-Level Programming Languages. In 2019 ACM\/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS). 1\u201313 . Paul Emmerich, Simon Ellmann, Fabian Bonk, Alex Egger, Esa\u00fa Garc\u00eda S\u00e1nchez-Torija, Thomas G\u00fcnzel, Sebastian Di Luzio, Alexandru Obada, Maximilian Stadlmeier, and Sebastian Voit. 2019. The Case for Writing Network Drivers in High-Level Programming Languages. In 2019 ACM\/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS). 1\u201313."},{"key":"e_1_3_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/780822.781133"},{"key":"e_1_3_2_1_12_1","unstructured":"Google. Accessed: 2022-03-03. bloaty. https:\/\/github.com\/google\/bloaty  Google. Accessed: 2022-03-03. bloaty. https:\/\/github.com\/google\/bloaty"},{"key":"e_1_3_2_1_13_1","unstructured":"Hugo Heyman and Love Brandefelt. 2020. A Comparison of Performance & Implementation Complexity of Multithreaded Applications in Rust Java and C++.  Hugo Heyman and Love Brandefelt. 2020. A Comparison of Performance & Implementation Complexity of Multithreaded Applications in Rust Java and C++."},{"key":"e_1_3_2_1_14_1","unstructured":"H\u00e5vard Wormdal H\u00f8iby and Sondre Lefsaker. 2015. RustyGecko-Developing Rust on Bare-Metal-An experimental embedded software platform. Master\u2019s thesis. NTNU.  H\u00e5vard Wormdal H\u00f8iby and Sondre Lefsaker. 2015. RustyGecko-Developing Rust on Bare-Metal-An experimental embedded software platform. Master\u2019s thesis. NTNU."},{"volume-title":"2015 IEEE World Congress on Services. 21\u201328","author":"Hossain M. M.","key":"e_1_3_2_1_15_1","unstructured":"M. M. Hossain , M. Fotouhi , and R. Hasan . 2015. Towards an Analysis of Security Issues, Challenges, and Open Problems in the Internet of Things . In 2015 IEEE World Congress on Services. 21\u201328 . M. M. Hossain, M. Fotouhi, and R. Hasan. 2015. Towards an Analysis of Security Issues, Challenges, and Open Problems in the Internet of Things. In 2015 IEEE World Congress on Services. 21\u201328."},{"key":"e_1_3_2_1_16_1","unstructured":"ISO. 2007. International Standard ISO IEC 9899:1999: Technical Corrigendum 3. pub-ISO. http:\/\/www.iso.org\/iso\/en\/CatalogueDetailPage.CatalogueDetail?CSNUMBER=43485; http:\/\/www.open-std.org\/jtc1\/sc22\/wg14\/www\/docs\/n1256.pdf  ISO. 2007. International Standard ISO IEC 9899:1999: Technical Corrigendum 3. pub-ISO. http:\/\/www.iso.org\/iso\/en\/CatalogueDetailPage.CatalogueDetail?CSNUMBER=43485; http:\/\/www.open-std.org\/jtc1\/sc22\/wg14\/www\/docs\/n1256.pdf"},{"key":"e_1_3_2_1_17_1","unstructured":"johnthagen. Accessed: 2022-03-03. Minimizing Rust Binary Size. https:\/\/github.com\/johnthagen\/min-sized-rust  johnthagen. Accessed: 2022-03-03. Minimizing Rust Binary Size. https:\/\/github.com\/johnthagen\/min-sized-rust"},{"key":"e_1_3_2_1_18_1","unstructured":"Steve Klabnik and Carol Nichols. 2018. The Rust Programming Language. No Starch Press.  Steve Klabnik and Carol Nichols. 2018. The Rust Programming Language. No Starch Press."},{"key":"e_1_3_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/773473.178256"},{"key":"e_1_3_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2004.1281665"},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICCAD.1999.810657"},{"key":"e_1_3_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/3132747.3132786"},{"key":"e_1_3_2_1_23_1","unstructured":"Linaro. Accessed: 2022-03-03. LLVM Dead Virtual Function Elimination. https:\/\/llvm.org\/devmtg\/2019-10\/slides\/Stannard-DeadVirtualFunctionElimintation.pdf  Linaro. Accessed: 2022-03-03. LLVM Dead Virtual Function Elimination. https:\/\/llvm.org\/devmtg\/2019-10\/slides\/Stannard-DeadVirtualFunctionElimintation.pdf"},{"key":"e_1_3_2_1_24_1","unstructured":"James Munns. Accessed: 2022-03-03. Formatting is Unreasonably Expensive for Embedded Rust. https:\/\/jamesmunns.com\/blog\/fmt-unreasonably-expensive\/  James Munns. Accessed: 2022-03-03. Formatting is Unreasonably Expensive for Embedded Rust. https:\/\/jamesmunns.com\/blog\/fmt-unreasonably-expensive\/"},{"key":"e_1_3_2_1_25_1","unstructured":"Rust Language Nursery. Accessed: 2022-03-03. lazy-static.rs. https:\/\/github.com\/rust-lang-nursery\/lazy-static.rs  Rust Language Nursery. Accessed: 2022-03-03. lazy-static.rs. https:\/\/github.com\/rust-lang-nursery\/lazy-static.rs"},{"key":"e_1_3_2_1_26_1","unstructured":"Embedded Rust Working Group. Accessed: 2022-03-03. embedded-hal. https:\/\/github.com\/rust-embedded\/embedded-hal  Embedded Rust Working Group. Accessed: 2022-03-03. embedded-hal. https:\/\/github.com\/rust-embedded\/embedded-hal"},{"volume-title":"Project Report","author":"Perez Anthony","key":"e_1_3_2_1_27_1","unstructured":"Anthony Perez . 2017. Rust and C++ performance on the Algorithmic Lovasz Local Lemma . Project Report . Stanford : Stanford University , Dec. Anthony Perez. 2017. Rust and C++ performance on the Algorithmic Lovasz Local Lemma. Project Report. Stanford: Stanford University, Dec."},{"key":"e_1_3_2_1_28_1","first-page":"40","article-title":"Embedded C++","volume":"10","author":"Plauger Philip J","year":"1997","unstructured":"Philip J Plauger . 1997 . Embedded C++ : An Overview. Embedded Systems Programming , 10 (1997), 40 \u2013 53 . Philip J Plauger. 1997. Embedded C++: An Overview. Embedded Systems Programming, 10 (1997), 40\u201353.","journal-title":"An Overview. Embedded Systems Programming"},{"key":"e_1_3_2_1_29_1","volume-title":"Proceedings of the Embedded Systems Conference.","author":"Quiroz C\u00e9sar A","year":"1998","unstructured":"C\u00e9sar A Quiroz . 1998 . Using C++ efficiently in embedded applications . In Proceedings of the Embedded Systems Conference. C\u00e9sar A Quiroz. 1998. Using C++ efficiently in embedded applications. In Proceedings of the Embedded Systems Conference."},{"key":"e_1_3_2_1_30_1","unstructured":"Yevhenii Reizner. Accessed: 2022-03-03. cargo-bloat. https:\/\/github.com\/RazrFalcon\/cargo-bloat  Yevhenii Reizner. Accessed: 2022-03-03. cargo-bloat. https:\/\/github.com\/RazrFalcon\/cargo-bloat"},{"key":"e_1_3_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/3302516.3307346"},{"key":"e_1_3_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3461648.3463852"},{"key":"e_1_3_2_1_33_1","unstructured":"Kang Seonghoon. Accessed: 2022-03-03. Why is a Rust executable large? https:\/\/lifthrasiir.github.io\/rustlog\/why-is-a-rust-executable-large.html  Kang Seonghoon. Accessed: 2022-03-03. Why is a Rust executable large? https:\/\/lifthrasiir.github.io\/rustlog\/why-is-a-rust-executable-large.html"},{"key":"e_1_3_2_1_34_1","unstructured":"Herb Sutter. 2019. P0709: Zero-overhead deterministic exceptions: Throwing values. C++ Standards Committee.  Herb Sutter. 2019. P0709: Zero-overhead deterministic exceptions: Throwing values. C++ Standards Committee."},{"key":"e_1_3_2_1_35_1","volume-title":"Xinliang David Li, and Chris Demetriou.","author":"Tallam Sriraman","year":"2010","unstructured":"Sriraman Tallam , Cary Coutant , Ian Lance Taylor , Xinliang David Li, and Chris Demetriou. 2010 . Safe ICF: Pointer Safe and Unwinding Aware Identical Code Folding in Gold. In GCC Developers Summit . http:\/\/gcc.gnu.org\/wiki\/summit2010?action=AttachFile&do=view&target=tallam.pdf Sriraman Tallam, Cary Coutant, Ian Lance Taylor, Xinliang David Li, and Chris Demetriou. 2010. Safe ICF: Pointer Safe and Unwinding Aware Identical Code Folding in Gold. In GCC Developers Summit. http:\/\/gcc.gnu.org\/wiki\/summit2010?action=AttachFile&do=view&target=tallam.pdf"},{"key":"e_1_3_2_1_36_1","unstructured":"Mircea Trofin Yundi Qian Eugene Brevdo Zinan Lin Krzysztof Choromanski and David Li. 2021. Mlgo: a machine learning guided compiler optimizations framework. arXiv preprint arXiv:2101.04808.  Mircea Trofin Yundi Qian Eugene Brevdo Zinan Lin Krzysztof Choromanski and David Li. 2021. Mlgo: a machine learning guided compiler optimizations framework. arXiv preprint arXiv:2101.04808."},{"key":"e_1_3_2_1_37_1","volume-title":"Polymorphisation: Improving Rust compilation times through intelligent monomorphisation.","author":"Wood David","year":"2020","unstructured":"David Wood . 2020 . Polymorphisation: Improving Rust compilation times through intelligent monomorphisation. David Wood. 2020. Polymorphisation: Improving Rust compilation times through intelligent monomorphisation."},{"key":"e_1_3_2_1_38_1","volume-title":"International Symposium on Practical Aspects of Declarative Languages. 228\u2013242","author":"Xi Hongwei","year":"1999","unstructured":"Hongwei Xi . 1999 . Dead code elimination through dependent types . In International Symposium on Practical Aspects of Declarative Languages. 228\u2013242 . Hongwei Xi. 1999. Dead code elimination through dependent types. In International Symposium on Practical Aspects of Declarative Languages. 228\u2013242."},{"key":"e_1_3_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1109\/CAHPC.2005.26"}],"event":{"name":"LCTES '22: 23rd ACM SIGPLAN\/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages","SIGBED ACM Special Interest Group on Embedded Systems"],"location":"San Diego CA USA","acronym":"LCTES '22"},"container-title":["Proceedings of the 23rd ACM SIGPLAN\/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3519941.3535075","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3519941.3535075","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T18:10:31Z","timestamp":1750183831000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3519941.3535075"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,6,14]]},"references-count":39,"alternative-id":["10.1145\/3519941.3535075","10.1145\/3519941"],"URL":"https:\/\/doi.org\/10.1145\/3519941.3535075","relation":{},"subject":[],"published":{"date-parts":[[2022,6,14]]},"assertion":[{"value":"2022-06-14","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}