{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,8,7]],"date-time":"2025-08-07T21:00:52Z","timestamp":1754600452762,"version":"3.41.0"},"reference-count":4,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2018,4,1]],"date-time":"2018-04-01T00:00:00Z","timestamp":1522540800000},"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":[[2018,4]]},"abstract":"<jats:p>In the wake of the recent Meltdown and Spectre vulnerabilities, it\u2019s worth spending some time looking at root causes. Both of these vulnerabilities involved processors speculatively executing instructions past some kind of access check and allowing the attacker to observe the results via a side channel. The features that led to these vulnerabilities, along with several others, were added to let C programmers continue to believe they were programming in a low-level language, when this hasn\u2019t been the case for decades.<\/jats:p>","DOI":"10.1145\/3212477.3212479","type":"journal-article","created":{"date-parts":[[2018,5,1]],"date-time":"2018-05-01T12:00:39Z","timestamp":1525176039000},"page":"18-30","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":5,"title":["C Is Not a Low-level Language"],"prefix":"10.1145","volume":"16","author":[{"given":"David","family":"Chisnall","sequence":"first","affiliation":[{"name":"University of Cambridge"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2018,4]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"C Defect Report 260. 2004; http:\/\/www.open-std.org\/jtc1\/sc22\/wg14\/www\/docs\/dr_260.htm.  C Defect Report 260. 2004; http:\/\/www.open-std.org\/jtc1\/sc22\/wg14\/www\/docs\/dr_260.htm."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/2908080.2908081"},{"volume-title":"Second International Workshop on Parallelism in Mobile Platforms at the 41st International Symposium on Computer Architecture.","year":"2014","author":"Ou A.","key":"e_1_2_1_4_1"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/947955.1083808"}],"container-title":["Queue"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3212477.3212479","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3212477.3212479","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T01:39:15Z","timestamp":1750210755000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3212477.3212479"}},"subtitle":["Your computer is not a fast PDP-11."],"short-title":[],"issued":{"date-parts":[[2018,4]]},"references-count":4,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2018,4]]}},"alternative-id":["10.1145\/3212477.3212479"],"URL":"https:\/\/doi.org\/10.1145\/3212477.3212479","relation":{},"ISSN":["1542-7730","1542-7749"],"issn-type":[{"type":"print","value":"1542-7730"},{"type":"electronic","value":"1542-7749"}],"subject":[],"published":{"date-parts":[[2018,4]]},"assertion":[{"value":"2018-04-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}