{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,9]],"date-time":"2025-10-09T16:12:16Z","timestamp":1760026336805,"version":"3.41.0"},"publisher-location":"New York, NY, USA","reference-count":54,"publisher":"ACM","license":[{"start":{"date-parts":[[2024,2,6]],"date-time":"2024-02-06T00:00:00Z","timestamp":1707177600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by-nc-sa\/4.0\/"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["CCF-1840934","CCF-1941816"],"award-info":[{"award-number":["CCF-1840934","CCF-1941816"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2024,2,6]]},"DOI":"10.1145\/3597503.3623323","type":"proceedings-article","created":{"date-parts":[[2024,2,6]],"date-time":"2024-02-06T20:53:16Z","timestamp":1707252796000},"page":"1-12","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Semantic Analysis of Macro Usage for Portability"],"prefix":"10.1145","author":[{"ORCID":"https:\/\/orcid.org\/0009-0003-0780-743X","authenticated-orcid":false,"given":"Brent","family":"Pappas","sequence":"first","affiliation":[{"name":"University of Central Florida, Orlando, Florida, USA"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-1425-8873","authenticated-orcid":false,"given":"Paul","family":"Gazzillo","sequence":"additional","affiliation":[{"name":"University of Central Florida, Orlando, Florida, USA"}]}],"member":"320","published-online":{"date-parts":[[2024,2,6]]},"reference":[{"key":"e_1_3_2_1_1_1","volume-title":"https:\/\/github.com\/appleseedlab\/superc\/tree\/master\/src\/superc\/cdesugarer","author":"Affleseed Lab","year":"2022","unstructured":"Affleseed Lab. Sugarc. https:\/\/github.com\/appleseedlab\/superc\/tree\/master\/src\/superc\/cdesugarer, 2022."},{"key":"e_1_3_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1002\/(SICI)1097-024X(20000710)30:8<907::AID-SPE324>3.0.CO;2-I"},{"key":"e_1_3_2_1_3_1","volume-title":"Artifact for semantic analysis of macro usage for portability. https:\/\/zenodo.org\/record\/8326488","author":"Brent Paffas P. G.","year":"2023","unstructured":"Brent Paffas, P. G. Artifact for semantic analysis of macro usage for portability. https:\/\/zenodo.org\/record\/8326488, 2023."},{"key":"e_1_3_2_1_4_1","volume-title":"c2go. https:\/\/github.com\/elliotchance\/c2go","author":"Chance E.","year":"2021","unstructured":"Chance, E. c2go. https:\/\/github.com\/elliotchance\/c2go, 2021."},{"key":"e_1_3_2_1_5_1","volume-title":"Apr","author":"Team","year":"2022","unstructured":"CMU SEI SERT Team. Pre00-c. prefer inline or static functions to function-like macros. https:\/\/wiki.sei.cmu.edu\/confluence\/display\/c\/PRE00-C.+Prefer+inline+or+static+functions+to+function-like+macros, Apr 2022."},{"key":"e_1_3_2_1_6_1","volume-title":"https:\/\/github.com\/correctcomputation\/checkedc-clang\/","author":"Correct Computation Inc. 3c.","year":"2021","unstructured":"Correct Computation Inc. 3c. https:\/\/github.com\/correctcomputation\/checkedc-clang\/, 2021."},{"key":"e_1_3_2_1_7_1","volume-title":"https:\/\/github.com\/correctcomputation\/checkedc-clang\/issues\/400","author":"Correct Computation Inc. 3c.","year":"2021","unstructured":"Correct Computation Inc. 3c. https:\/\/github.com\/correctcomputation\/checkedc-clang\/issues\/400, 2021."},{"key":"e_1_3_2_1_8_1","volume-title":"https:\/\/github.com\/correctcomputation\/checkedc-clang\/issues\/40","author":"Correct Computation Inc. 3c.","year":"2021","unstructured":"Correct Computation Inc. 3c. https:\/\/github.com\/correctcomputation\/checkedc-clang\/issues\/40, 2021."},{"key":"e_1_3_2_1_9_1","volume-title":"https:\/\/github.com\/correctcomputation\/checkedc-clang\/issues\/439","author":"Correct Computation Inc. 3c.","year":"2021","unstructured":"Correct Computation Inc. 3c. https:\/\/github.com\/correctcomputation\/checkedc-clang\/issues\/439, 2021."},{"key":"e_1_3_2_1_10_1","volume-title":"Datawrapper: Create charts, maps, and tables. https:\/\/www.datawrapper.de\/","author":"Datawraffer Gmb H.","year":"2023","unstructured":"Datawraffer GmbH. Datawrapper: Create charts, maps, and tables. https:\/\/www.datawrapper.de\/, 2023. Used to create charts."},{"key":"e_1_3_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3477113.3487268"},{"key":"e_1_3_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2002.1158288"},{"key":"e_1_3_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/SCAM.2003.1238028"},{"key":"e_1_3_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/581478.581486"},{"key":"e_1_3_2_1_15_1","volume-title":"Gawk v5.1.1. https:\/\/www.gnu.org\/software\/gawk\/","author":"Free Software Foundation","year":"2021","unstructured":"Free Software Foundation. Gawk v5.1.1. https:\/\/www.gnu.org\/software\/gawk\/, 2021."},{"key":"e_1_3_2_1_16_1","volume-title":"Bash v5.2 rc1. https:\/\/www.gnu.org\/software\/bash\/","author":"Free Software Foundation","year":"2022","unstructured":"Free Software Foundation. Bash v5.2 rc1. https:\/\/www.gnu.org\/software\/bash\/, 2022."},{"key":"e_1_3_2_1_17_1","volume-title":"Emacs v28.1. https:\/\/www.gnu.org\/software\/emacs\/","author":"Free Software Foundation","year":"2022","unstructured":"Free Software Foundation. Emacs v28.1. https:\/\/www.gnu.org\/software\/emacs\/, 2022."},{"key":"e_1_3_2_1_18_1","volume-title":"Fvwm v2.6.9. https:\/\/www.fvwm.org\/","author":"Team","year":"2019","unstructured":"FVWM Team. Fvwm v2.6.9. https:\/\/www.fvwm.org\/, 2019."},{"key":"e_1_3_2_1_19_1","volume-title":"Performance measurement of c software product lines. Master's thesis","author":"Garbe F.","year":"2017","unstructured":"Garbe, F. Performance measurement of c software product lines. Master's thesis, University of Passau, 2017."},{"key":"e_1_3_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSM.2005.23"},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2345156.2254103"},{"key":"e_1_3_2_1_22_1","volume-title":"Ace: a syntax-driven c preprocessor","author":"Gosling J.","year":"1989","unstructured":"Gosling, J. Ace: a syntax-driven c preprocessor. Australian Unix Users Group (1989)."},{"key":"e_1_3_2_1_23_1","unstructured":"Graham P. On Lisp. Prentice Hall 1993."},{"key":"e_1_3_2_1_24_1","volume-title":"c2rust. https:\/\/github.com\/immunant\/c2rust\/issues\/16","author":"Immunant","year":"2018","unstructured":"Immunant. c2rust. https:\/\/github.com\/immunant\/c2rust\/issues\/16, 2018."},{"key":"e_1_3_2_1_25_1","volume-title":"c2rust. https:\/\/github.com\/immunant\/c2rust","author":"Immunant","year":"2022","unstructured":"Immunant. c2rust. https:\/\/github.com\/immunant\/c2rust, 2022."},{"key":"e_1_3_2_1_26_1","volume-title":"Standard","author":"ISO Technical Committee ISO\/IEC JTC 1\/SC 22. ISO-IEC-9899-2011.","year":"2011","unstructured":"ISO Technical Committee ISO\/IEC JTC 1\/SC 22. ISO-IEC-9899-2011. Standard, International Organization for Standardization, Dec. 2011."},{"key":"e_1_3_2_1_27_1","first-page":"805","volume-title":"Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications (New York, NY, USA, 2011), OOPSLA '11, Association for Computing Machinery","author":"K\u00e4stner C.","unstructured":"K\u00e4stner, C., Giarrusso, P. G., Rendel, T., Erdweg, S., Ostermann, K., and Berger, T. Variability-aware parsing in the presence of lexical macros and conditional compilation. In Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications (New York, NY, USA, 2011), OOPSLA '11, Association for Computing Machinery, p. 805--824."},{"key":"e_1_3_2_1_28_1","volume-title":"Nov","author":"Klabnik S.","year":"2022","unstructured":"Klabnik, S., and Nichols, C. Macros - the rust programming language. https:\/\/doc.rust-lang.org\/book\/ch19-06-macros.html, Nov 2022."},{"key":"e_1_3_2_1_29_1","volume-title":"C reconfigurator. https:\/\/github.com\/itu-square\/c-reconfigurator","author":"Lazar A.","year":"2017","unstructured":"Lazar, A., and Melo, J. C reconfigurator. https:\/\/github.com\/itu-square\/c-reconfigurator, 2017."},{"key":"e_1_3_2_1_30_1","unstructured":"Linux Kernel Maintainers. Linux kernel mailing list. https:\/\/lore.kernel.org\/."},{"key":"e_1_3_2_1_31_1","volume-title":"lua. https:\/\/github.com\/lua\/lua","author":"Lua Team","year":"2022","unstructured":"Lua Team. lua. https:\/\/github.com\/lua\/lua, 2022."},{"key":"e_1_3_2_1_32_1","volume-title":"Refactoring: Improving the Design of Existing Code","author":"Martin Fowler K. B.","year":"1999","unstructured":"Martin Fowler, K. B. Refactoring: Improving the Design of Existing Code. Addison-Wesley Longman Publishing Co., Inc., USA, 1999."},{"key":"e_1_3_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1095430.1081712"},{"key":"e_1_3_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1109\/WPC.2004.1311050"},{"key":"e_1_3_2_1_35_1","volume-title":"https:\/\/github.com\/Microsoft\/checkedc\/","author":"Microsoft Research","year":"2021","unstructured":"Microsoft Research. 3c. https:\/\/github.com\/Microsoft\/checkedc\/, 2021."},{"key":"e_1_3_2_1_36_1","first-page":"361","volume-title":"Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (New York, NY, USA, 2014), PLDI '14, Association for Computing Machinery","author":"Pombrio J.","unstructured":"Pombrio, J., and Krishnamurthi, S. Resugaring: Lifting evaluation sequences through syntactic sugar. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (New York, NY, USA, 2014), PLDI '14, Association for Computing Machinery, p. 361--371."},{"key":"e_1_3_2_1_37_1","volume-title":"Jun","author":"Popa A.","year":"2018","unstructured":"Popa, A. Convert macros to constexpr. https:\/\/devblogs.microsoft.com\/cppblog\/convert-macros-to-constexpr\/, Jun 2018."},{"key":"e_1_3_2_1_38_1","volume-title":"Oct","author":"Reddy S.","year":"2018","unstructured":"Reddy, S. Auto refactor of a macro followed by a comment to a constexpr put the semicolon after the comment. https:\/\/developercommunity.visualstudio.com\/t\/auto-refactor-of-a-macro-followed-by-a-comment-to\/354205, Oct 2018."},{"key":"e_1_3_2_1_39_1","volume-title":"rust. https:\/\/github.com\/rust-lang\/rust","author":"Rust Team","year":"2022","unstructured":"Rust Team. rust. https:\/\/github.com\/rust-lang\/rust, 2022."},{"key":"e_1_3_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2003.1245303"},{"key":"e_1_3_2_1_41_1","unstructured":"Sterba D. Re: [patch] fs: Ntfs read-write driver gpl implementation by paragon software. https:\/\/lore.kernel.org\/linux-fsdevel\/20200815190642.GZ2026@twin.jikos.cz\/."},{"key":"e_1_3_2_1_42_1","volume-title":"Xfig v3.2.8b. https:\/\/mcj.sourceforge.net\/","author":"Sutanthavibul S.","year":"2021","unstructured":"Sutanthavibul, S., Yap, K., Smith, B. V., King, P., Boyter, B., Sato, T., and Loimer, T. Xfig v3.2.8b. https:\/\/mcj.sourceforge.net\/, 2021."},{"key":"e_1_3_2_1_43_1","volume-title":"Nov","author":"The Clang Team","year":"2022","unstructured":"The Clang Team. clang::ppcallbacks class reference --- clang 16.0.0git documentation. https:\/\/clang.llvm.org\/doxygen\/classclang_1_1PPCallbacks.html, Nov 2022."},{"key":"e_1_3_2_1_44_1","volume-title":"Introduction to the clang ast --- clang 16.0.0git documentation. https:\/\/clang.llvm.org\/docs\/IntroductionToTheClangAST.html","author":"The Clang Team","year":"2022","unstructured":"The Clang Team. Introduction to the clang ast --- clang 16.0.0git documentation. https:\/\/clang.llvm.org\/docs\/IntroductionToTheClangAST.html, 2022."},{"key":"e_1_3_2_1_45_1","volume-title":"The c preprocessor. https:\/\/gcc.gnu.org\/onlinedocs\/cpp\/","author":"The GCC","year":"2022","unstructured":"The GCC Team. The c preprocessor. https:\/\/gcc.gnu.org\/onlinedocs\/cpp\/, 2022."},{"key":"e_1_3_2_1_46_1","volume-title":"Nov","author":"The GCC","year":"2022","unstructured":"The GCC Team. Operator precedence problems. https:\/\/gcc.gnu.org\/onlinedocs\/cpp\/Operator-Precedence-Problems.html#Operator-Precedence-Problems, Nov 2022."},{"key":"e_1_3_2_1_47_1","volume-title":"Designated inits. https:\/\/gcc.gnu.org\/onlinedocs\/gcc\/Designated-Inits.html","author":"The GCC","year":"2023","unstructured":"The GCC Team. Designated inits. https:\/\/gcc.gnu.org\/onlinedocs\/gcc\/Designated-Inits.html, 2023."},{"key":"e_1_3_2_1_48_1","volume-title":"Statement exprs. https:\/\/gcc.gnu.org\/onlinedocs\/gcc\/Statement-Exprs.html","author":"The GCC","year":"2023","unstructured":"The GCC Team. Statement exprs. https:\/\/gcc.gnu.org\/onlinedocs\/gcc\/Statement-Exprs.html, 2023."},{"key":"e_1_3_2_1_49_1","volume-title":"Linux kernel coding style. https:\/\/github.com\/torvalds\/linux\/blob\/master\/Documentation\/process\/coding-style.rst","author":"The Linux Kernel","year":"2023","unstructured":"The Linux Kernel. Linux kernel coding style. https:\/\/github.com\/torvalds\/linux\/blob\/master\/Documentation\/process\/coding-style.rst, 2023. Section 12, \"Macros, Enums and RTL\"."},{"key":"e_1_3_2_1_50_1","volume-title":"Linux Kernel drivers\/staging","author":"The Linux Kernel","year":"2023","unstructured":"The Linux Kernel. Linux Kernel drivers\/staging, 2023."},{"key":"e_1_3_2_1_51_1","volume-title":"Memory Allocation Guide. https:\/\/www.kernel.org\/doc\/html\/latest\/\/core-api\/memory-allocation.html","author":"The Linux Kernel","year":"2023","unstructured":"The Linux Kernel. Memory Allocation Guide. https:\/\/www.kernel.org\/doc\/html\/latest\/\/core-api\/memory-allocation.html, 2023."},{"key":"e_1_3_2_1_52_1","volume-title":"Submitting patches: the essential guide to getting your code into the kernel. https:\/\/github.com\/torvalds\/linux\/blob\/master\/Documentation\/process\/submitting-patches.rst","author":"The Linux Kernel","year":"2023","unstructured":"The Linux Kernel. Submitting patches: the essential guide to getting your code into the kernel. https:\/\/github.com\/torvalds\/linux\/blob\/master\/Documentation\/process\/submitting-patches.rst, 2023."},{"key":"e_1_3_2_1_53_1","volume-title":"https:\/\/racket-lang.org\/","author":"The Racket Team","year":"2022","unstructured":"The Racket Team. Racket. https:\/\/racket-lang.org\/, 2022."},{"key":"e_1_3_2_1_54_1","first-page":"156","volume-title":"Proceedings of the ACM SIGPLAN 1993 Conference on Programming Language Design and Implementation (New York, NY, USA, 1993), PLDI '93, Association for Computing Machinery","author":"Weise D.","unstructured":"Weise, D., and Crew, R. Programmable syntax macros. In Proceedings of the ACM SIGPLAN 1993 Conference on Programming Language Design and Implementation (New York, NY, USA, 1993), PLDI '93, Association for Computing Machinery, p. 156--165."}],"event":{"name":"ICSE '24: IEEE\/ACM 46th International Conference on Software Engineering","sponsor":["SIGSOFT ACM Special Interest Group on Software Engineering","IEEE CS","Faculty of Engineering of University of Porto"],"location":"Lisbon Portugal","acronym":"ICSE '24"},"container-title":["Proceedings of the IEEE\/ACM 46th International Conference on Software Engineering"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3597503.3623323","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3597503.3623323","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3597503.3623323","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T17:48:45Z","timestamp":1750182525000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3597503.3623323"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,2,6]]},"references-count":54,"alternative-id":["10.1145\/3597503.3623323","10.1145\/3597503"],"URL":"https:\/\/doi.org\/10.1145\/3597503.3623323","relation":{},"subject":[],"published":{"date-parts":[[2024,2,6]]},"assertion":[{"value":"2024-02-06","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}