{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:19:37Z","timestamp":1750220377774,"version":"3.41.0"},"reference-count":15,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2021,4,30]],"date-time":"2021-04-30T00:00:00Z","timestamp":1619740800000},"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":["Queue"],"published-print":{"date-parts":[[2021,4,30]]},"abstract":"<jats:p>Undefined behavior ranks among the most baffling and perilous aspects of popular programming languages. This installment of Drill Bits clears up widespread misconceptions and presents practical techniques to banish undefined behavior from your own code and pinpoint meaningless operations in any software\u2014techniques that reveal alarming faults in software supporting business-critical applications at Fortune 500 companies.<\/jats:p>","DOI":"10.1145\/3466132.3468263","type":"journal-article","created":{"date-parts":[[2021,5,27]],"date-time":"2021-05-27T13:53:26Z","timestamp":1622123606000},"page":"28-44","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Schr\u00f6dinger's Code"],"prefix":"10.1145","volume":"19","author":[{"given":"Terence","family":"Kelly","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Weiwei","family":"Gu","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Vladimir","family":"Maksimovski","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2021,5,27]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"You Don't Know Jack about Shared Variables or Memory Models. acmqueue 9(12)","author":"Boehm H.","year":"2088","unstructured":"Boehm, H.-J., Adve, S. V. 2011. You Don't Know Jack about Shared Variables or Memory Models. acmqueue 9(12); https:\/\/queue.acm.org\/detail.cfm?id=2088916."},{"key":"e_1_2_1_2_1","unstructured":"C17 language standard (N2176). November 2017; https:\/\/web.archive.org\/web\/20181230041359\/http:\/\/www.open-std.org\/jtc1\/sc22\/wg14\/www\/abq\/c17_updated_proposed_fdis.pdf. The most official version is behind a hefty paywall: https:\/\/www.iso.org\/standard\/74528.html."},{"key":"e_1_2_1_3_1","unstructured":"C++17 language standard (N4660). 2017; https:\/\/web.archive.org\/web\/20170325025026\/http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2017\/n4660.pdf. Though they use different words the C and C++ standards take nearly identical positions on undefined behavior."},{"key":"e_1_2_1_4_1","unstructured":"Clang Compiler User's Manual. 2021; https:\/\/clang.llvm.org\/docs\/UsersManual.html."},{"key":"e_1_2_1_5_1","unstructured":"Coverity Scan. 2021. Synopsys; https:\/\/scan.coverity.com\/."},{"key":"e_1_2_1_6_1","unstructured":"GCC Bugzilla. 2007. Debate over GCC optimization (alleged) bug 30475; https:\/\/gcc.gnu.org\/bugzilla\/show_bug.cgi?id=30475."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","unstructured":"Hoare C. A. R. 1981. The emperor's old clothes. 1980 ACM Turing Award Lecture. Communications of the ACM 24(2) 75?83; https:\/\/doi.org\/10.1145\/358549.358561.","DOI":"10.1145\/358549.358561"},{"key":"e_1_2_1_8_1","unstructured":"Intel Corporation. 2020. Intel 64 and IA-32 Architectures Software Developer's Manual Combined Volumes: 1 2A 2B 2C 2D 3A 3B 3C 3D and 4. Order Number 325462-073US 2640 Table A-1; https:\/\/software.intel.com\/content\/dam\/develop\/external\/us\/en\/documents-tps\/325462-sdm-vol-1-2abcd-3abcd.pdf."},{"key":"e_1_2_1_9_1","volume-title":"What every C programmer should know about undefined behavior. The LLVM Project Blog","author":"Lattner C.","year":"2011","unstructured":"Lattner, C. 2011. What every C programmer should know about undefined behavior. The LLVM Project Blog; https:\/\/blog.llvm.org\/2011\/05\/what-every-c-programmer-should-know.html."},{"volume-title":"Writing Solid Code: Microsoft Techniques for Developing Bug-Free C Programs, 202","author":"Maguire S.","key":"e_1_2_1_10_1","unstructured":"Maguire, S. 1993. Writing Solid Code: Microsoft Techniques for Developing Bug-Free C Programs, 202. Microsoft Press."},{"key":"e_1_2_1_11_1","unstructured":"Redis. 2021; https:\/\/redis.io; https:\/\/github.com\/redis\/redis."},{"volume-title":"Using the GNU Compiler Collection","author":"Stallman R. M.","key":"e_1_2_1_12_1","unstructured":"Stallman, R. M., et al. 2020. Using the GNU Compiler Collection. GNU Press; https:\/\/gcc.gnu.org\/onlinedocs\/gcc-10.2.0\/gcc.pdf."},{"volume-title":"Expert C Programming: Deep C Secrets, page 15","author":"van der Linden P.","key":"e_1_2_1_13_1","unstructured":"van der Linden, P. 1994. Expert C Programming: Deep C Secrets, page 15. Prentice Hall ."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/2349896.2349905"},{"key":"e_1_2_1_15_1","unstructured":"47. Wikipedia. 47; https:\/\/en.wikipedia.org\/wiki\/47_(number) https:\/\/web.archive.org\/web\/20060901185414\/http:\/\/www.pomona.edu\/welcome\/trek\/47trek.shtml."}],"container-title":["Queue"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3466132.3468263","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3466132.3468263","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T20:18:18Z","timestamp":1750191498000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3466132.3468263"}},"subtitle":["Undefined behavior in theory and practice"],"short-title":[],"issued":{"date-parts":[[2021,4,30]]},"references-count":15,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2021,4,30]]}},"alternative-id":["10.1145\/3466132.3468263"],"URL":"https:\/\/doi.org\/10.1145\/3466132.3468263","relation":{},"ISSN":["1542-7730","1542-7749"],"issn-type":[{"type":"print","value":"1542-7730"},{"type":"electronic","value":"1542-7749"}],"subject":[],"published":{"date-parts":[[2021,4,30]]},"assertion":[{"value":"2021-05-27","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}