{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,9,25]],"date-time":"2026-09-25T16:23:37Z","timestamp":1790353417685,"version":"4.1.0"},"publisher-location":"New York, NY, USA","reference-count":34,"publisher":"ACM","license":[{"start":{"date-parts":[[2018,6,11]],"date-time":"2018-06-11T00:00:00Z","timestamp":1528675200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"National Research Foundation","award":["NRF2014NCR-NCR001-21"],"award-info":[{"award-number":["NRF2014NCR-NCR001-21"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2018,6,11]]},"DOI":"10.1145\/3192366.3192388","type":"proceedings-article","created":{"date-parts":[[2018,6,12]],"date-time":"2018-06-12T08:16:01Z","timestamp":1528791361000},"page":"181-195","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":47,"title":["EffectiveSan: type and memory error detection using dynamically typed C\/C++"],"prefix":"10.1145","author":[{"given":"Gregory J.","family":"Duck","sequence":"first","affiliation":[{"name":"National University of Singapore, Singapore"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Roland H. C.","family":"Yap","sequence":"additional","affiliation":[{"name":"National University of Singapore, Singapore"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2018,6,11]]},"reference":[{"key":"e_1_3_2_2_1_1","volume-title":"Baggy Bounds Checking: An Efficient and Backwards-Compatible Defense Against Out-of-Bounds Errors. In USENIX Security Symposium. USENIX.","author":"Akritidis P.","unstructured":"P. Akritidis , M. Costa , M. Castro , and S. Hand . 2009 . Baggy Bounds Checking: An Efficient and Backwards-Compatible Defense Against Out-of-Bounds Errors. In USENIX Security Symposium. USENIX. P. Akritidis, M. Costa, M. Castro, and S. Hand. 2009. Baggy Bounds Checking: An Efficient and Backwards-Compatible Defense Against Out-of-Bounds Errors. In USENIX Security Symposium. USENIX."},{"key":"e_1_3_2_2_2_1","doi-asserted-by":"crossref","unstructured":"T. Austin S. Breach and G. Sohi. 1994. Efficient Detection of All Pointer and Array Access Errors. In Programming Language Design and Implementation. ACM.   T. Austin S. Breach and G. Sohi. 1994. Efficient Detection of All Pointer and Array Access Errors. In Programming Language Design and Implementation . ACM.","DOI":"10.1145\/178243.178446"},{"key":"e_1_3_2_2_3_1","doi-asserted-by":"crossref","unstructured":"H. Boehm and M. Weiser. 1988. Garbage Collection in an Uncooperative Environment. Software Practical Experience 18 9 (1988).   H. Boehm and M. Weiser. 1988. Garbage Collection in an Uncooperative Environment. Software Practical Experience 18 9 (1988).","DOI":"10.1002\/spe.4380180902"},{"key":"e_1_3_2_2_4_1","unstructured":"Debugging Information Format Committee. 2010. DWARF Debugging Information Format V4.  Debugging Information Format Committee. 2010. DWARF Debugging Information Format V4 ."},{"key":"e_1_3_2_2_5_1","doi-asserted-by":"crossref","unstructured":"A. Diwan K. McKinley and J. Moss. 1998. Type-based Alias Analysis. In Programming Language Design and Implementation. ACM.   A. Diwan K. McKinley and J. Moss. 1998. Type-based Alias Analysis. In Programming Language Design and Implementation . ACM.","DOI":"10.1145\/277650.277670"},{"key":"e_1_3_2_2_6_1","doi-asserted-by":"crossref","unstructured":"G. Duck and R. Yap. 2016. Heap Bounds Protection with Low Fat Pointers. In Compiler Construction. ACM.   G. Duck and R. Yap. 2016. Heap Bounds Protection with Low Fat Pointers. In Compiler Construction . ACM.","DOI":"10.1145\/2892208.2892212"},{"key":"e_1_3_2_2_7_1","unstructured":"G. Duck and R. Yap. 2018. An Extended Low Fat Allocator API and Applications. CoRR abs\/1804.04812 (2018).  G. Duck and R. Yap. 2018. An Extended Low Fat Allocator API and Applications. CoRR abs\/1804.04812 (2018)."},{"key":"e_1_3_2_2_8_1","volume-title":"Stack Bounds Protection with Low Fat Pointers. In Network and Distributed System Security Symposium. The Internet Society.","author":"Duck G.","unstructured":"G. Duck , R. Yap , and L. Cavallaro . 2017 . Stack Bounds Protection with Low Fat Pointers. In Network and Distributed System Security Symposium. The Internet Society. G. Duck, R. Yap, and L. Cavallaro. 2017. Stack Bounds Protection with Low Fat Pointers. In Network and Distributed System Security Symposium. The Internet Society."},{"key":"e_1_3_2_2_9_1","volume-title":"Mudflap: Pointer Use Checking for C\/C++. In GCC Developer's Summit.","author":"Eigler F.","year":"2003","unstructured":"F. Eigler . 2003 . Mudflap: Pointer Use Checking for C\/C++. In GCC Developer's Summit. F. Eigler. 2003. Mudflap: Pointer Use Checking for C\/C++. In GCC Developer's Summit."},{"key":"e_1_3_2_2_10_1","unstructured":"Firefox 2018. Firefox Web Browser. https:\/\/www.mozilla.org\/.  Firefox 2018. Firefox Web Browser. https:\/\/www.mozilla.org\/."},{"key":"e_1_3_2_2_11_1","doi-asserted-by":"crossref","unstructured":"I. Haller Y. Jeon H. Peng M. Payer C. Giuffrida H. Bos and E. van der Kouwe. 2016. TypeSan: Practical Type Confusion Detection. In Computer and Communications Security. ACM.   I. Haller Y. Jeon H. Peng M. Payer C. Giuffrida H. Bos and E. van der Kouwe. 2016. TypeSan: Practical Type Confusion Detection. In Computer and Communications Security . ACM.","DOI":"10.1145\/2976749.2978405"},{"key":"e_1_3_2_2_12_1","doi-asserted-by":"crossref","unstructured":"C. Hathhorn C. Ellison and G. Rosu. 2015. Defining the Undefinedness of C. In Programming Language Design and Implementation. ACM.   C. Hathhorn C. Ellison and G. Rosu. 2015. Defining the Undefinedness of C. In Programming Language Design and Implementation . ACM.","DOI":"10.1145\/2737924.2737979"},{"key":"e_1_3_2_2_13_1","volume-title":"SPEC CPU2006 Benchmark Descriptions. Computer Architecture News 34","author":"Henning J.","year":"2006","unstructured":"J. Henning . 2006 . SPEC CPU2006 Benchmark Descriptions. Computer Architecture News 34 , 4 (2006). J. Henning. 2006. SPEC CPU2006 Benchmark Descriptions. Computer Architecture News 34, 4 (2006)."},{"key":"e_1_3_2_2_14_1","unstructured":"Intel Corporation. 2018. Intel 64 and IA-32 Architectures Software Developer's Manual.  Intel Corporation. 2018. Intel 64 and IA-32 Architectures Software Developer's Manual."},{"key":"e_1_3_2_2_15_1","volume-title":"SafeType: Detecting Type Violations for Type-Based Alias Analysis of C. Master's thesis","author":"Ireland I.","unstructured":"I. Ireland . 2013. SafeType: Detecting Type Violations for Type-Based Alias Analysis of C. Master's thesis . University of Alberta . I. Ireland. 2013. SafeType: Detecting Type Violations for Type-Based Alias Analysis of C. Master's thesis. University of Alberta."},{"key":"e_1_3_2_2_16_1","first-page":"2011","article-title":"Programming Languages - C","volume":"9899","author":"ISO.","year":"2011","unstructured":"ISO. 2011 . Programming Languages - C . ISO\/IEC 9899 : 2011 . ISO. 2011. Programming Languages - C. ISO\/IEC 9899:2011.","journal-title":"ISO\/IEC"},{"key":"e_1_3_2_2_17_1","first-page":"2017","article-title":"Programming Languages - C++","volume":"14882","author":"ISO.","year":"2017","unstructured":"ISO. 2017 . Programming Languages - C++ . ISO\/IEC 14882 : 2017 . ISO. 2017. Programming Languages - C++. ISO\/IEC 14882:2017.","journal-title":"ISO\/IEC"},{"key":"e_1_3_2_2_18_1","doi-asserted-by":"crossref","unstructured":"Y. Jeon P. Biswas S. Carr B. Lee and M. Payer. 2017. HexType: Efficient Detection of Type Confusion Errors for C++. In Computer and Communications Security. ACM.   Y. Jeon P. Biswas S. Carr B. Lee and M. Payer. 2017. HexType: Efficient Detection of Type Confusion Errors for C++. In Computer and Communications Security . ACM.","DOI":"10.1145\/3133956.3134062"},{"key":"e_1_3_2_2_19_1","volume-title":"Cyclone: A Safe Dialect of C. In USENIX Annual Technical Conference. USENIX.","author":"Jim T.","unstructured":"T. Jim , G. Morrisett , D. Grossman , M. Hicks , J. Cheney , and Y. Wang . 2002 . Cyclone: A Safe Dialect of C. In USENIX Annual Technical Conference. USENIX. T. Jim, G. Morrisett, D. Grossman, M. Hicks, J. Cheney, and Y. Wang. 2002. Cyclone: A Safe Dialect of C. In USENIX Annual Technical Conference. USENIX."},{"key":"e_1_3_2_2_20_1","doi-asserted-by":"crossref","unstructured":"S. Kell. 2016. Dynamically Diagnosing Type Errors in Unsafe Code. In Object-Oriented Programming Systems Languages and Applications. ACM.   S. Kell. 2016. Dynamically Diagnosing Type Errors in Unsafe Code. In Object-Oriented Programming Systems Languages and Applications . ACM.","DOI":"10.1145\/2983990.2983998"},{"key":"e_1_3_2_2_21_1","volume-title":"Code-pointer Integrity. In USENIX Symposium on Operating Systems Design and Implementation. USENIX.","author":"Kuznetsov V.","unstructured":"V. Kuznetsov , L. Szekeres , M. Payer , G. Candea , R. Sekar , and D. Song . 2014 . Code-pointer Integrity. In USENIX Symposium on Operating Systems Design and Implementation. USENIX. V. Kuznetsov, L. Szekeres, M. Payer, G. Candea, R. Sekar, and D. Song. 2014. Code-pointer Integrity. In USENIX Symposium on Operating Systems Design and Implementation. USENIX."},{"key":"e_1_3_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2508859.2516713"},{"key":"e_1_3_2_2_23_1","volume-title":"USENIX Security Symposium. USENIX.","author":"Lee B.","unstructured":"B. Lee , C. Song , T. Kim , and W. Lee . 2015. Type Casting Verification: Stopping an Emerging Attack Vector . In USENIX Security Symposium. USENIX. B. Lee, C. Song, T. Kim, and W. Lee. 2015. Type Casting Verification: Stopping an Emerging Attack Vector. In USENIX Security Symposium. USENIX."},{"key":"e_1_3_2_2_24_1","unstructured":"LLVM. 2018. http:\/\/llvm.org.  LLVM. 2018. http:\/\/llvm.org."},{"key":"e_1_3_2_2_25_1","doi-asserted-by":"crossref","unstructured":"A. Loginov S. Yong S. Horwitz and T. Reps. 2001. Debugging via Run-Time Type Checking. In Fundamental Approaches to Software Engineering. Springer.   A. Loginov S. Yong S. Horwitz and T. Reps. 2001. Debugging via Run-Time Type Checking. In Fundamental Approaches to Software Engineering . Springer.","DOI":"10.1007\/3-540-45314-8_16"},{"key":"e_1_3_2_2_26_1","doi-asserted-by":"crossref","unstructured":"K. Memarian J. Matthiesen J. Lingard K. Nienhuis D. Chisnall R. Watson and P. Sewell. 2016. Into the Depths of C: Elaborating the De Facto Standards. In Programming Language Design and Implementation. ACM.   K. Memarian J. Matthiesen J. Lingard K. Nienhuis D. Chisnall R. Watson and P. Sewell. 2016. Into the Depths of C: Elaborating the De Facto Standards. In Programming Language Design and Implementation . ACM.","DOI":"10.1145\/2908080.2908081"},{"key":"e_1_3_2_2_27_1","volume-title":"Microsoft Security Intelligence Report: Featured Intelligence","unstructured":"Microsoft. 2013. Microsoft Security Intelligence Report: Featured Intelligence . Volume 16 . Microsoft. 2013. Microsoft Security Intelligence Report: Featured Intelligence. Volume 16."},{"key":"e_1_3_2_2_28_1","doi-asserted-by":"crossref","unstructured":"S. Nagarakatte Z. Santosh M. Jianzhou M. Martin and S. Zdancewic. 2009. SoftBound: Highly Compatible and Complete Spatial Memory Safety for C. In Programming Language Design and Implementation. ACM.   S. Nagarakatte Z. Santosh M. Jianzhou M. Martin and S. Zdancewic. 2009. SoftBound: Highly Compatible and Complete Spatial Memory Safety for C. In Programming Language Design and Implementation . ACM.","DOI":"10.1145\/1542476.1542504"},{"key":"e_1_3_2_2_29_1","volume-title":"CETS: Compiler Enforced Temporal Safety for C. In International Symposium on Memory Management. ACM.","author":"Nagarakatte S.","unstructured":"S. Nagarakatte , J. Zhao , M. Martin , and S. Zdancewic . 2010 . CETS: Compiler Enforced Temporal Safety for C. In International Symposium on Memory Management. ACM. S. Nagarakatte, J. Zhao, M. Martin, and S. Zdancewic. 2010. CETS: Compiler Enforced Temporal Safety for C. In International Symposium on Memory Management. ACM."},{"key":"e_1_3_2_2_30_1","doi-asserted-by":"crossref","unstructured":"G. Necula J. Condit M. Harren S. McPeak and W. Weimer. 2005. CCured: Type-safe Retrofitting of Legacy Software. Transactions on Programming Languages and Systems (2005).   G. Necula J. Condit M. Harren S. McPeak and W. Weimer. 2005. CCured: Type-safe Retrofitting of Legacy Software. Transactions on Programming Languages and Systems (2005).","DOI":"10.1145\/1065887.1065892"},{"key":"e_1_3_2_2_31_1","doi-asserted-by":"crossref","unstructured":"O. Oleksenko D. Kuvaiskii P. Bhatotia P. Felber and C. Fetzer. 2017. Intel MPX Explained: An Empirical Study of Intel MPX and Software-based Bounds Checking Approaches. CoRR abs\/1702.00719 (2017).  O. Oleksenko D. Kuvaiskii P. Bhatotia P. Felber and C. Fetzer. 2017. Intel MPX Explained: An Empirical Study of Intel MPX and Software-based Bounds Checking Approaches. CoRR abs\/1702.00719 (2017).","DOI":"10.1145\/3219617.3219662"},{"key":"e_1_3_2_2_32_1","volume-title":"AddressSanitizer: A Fast Address Sanity Checker. In USENIX Annual Technical Conference. USENIX.","author":"Serebryany K.","unstructured":"K. Serebryany , D. Bruening , A. Potapenko , and D. Vyukov . 2012 . AddressSanitizer: A Fast Address Sanity Checker. In USENIX Annual Technical Conference. USENIX. K. Serebryany, D. Bruening, A. Potapenko, and D. Vyukov. 2012. AddressSanitizer: A Fast Address Sanity Checker. In USENIX Annual Technical Conference. USENIX."},{"key":"e_1_3_2_2_33_1","unstructured":"UBSan 2018. Undefined Behavior Sanitizer. https:\/\/clang.llvm.org\/docs\/UndefinedBehaviorSanitizer.html.  UBSan 2018. Undefined Behavior Sanitizer. https:\/\/clang.llvm.org\/docs\/UndefinedBehaviorSanitizer.html."},{"key":"e_1_3_2_2_34_1","doi-asserted-by":"crossref","unstructured":"Y. Younan P. Philippaerts L. Cavallaro R. Sekar F. Piessens and W. Joosen. 2010. PAriCheck: An Efficient Pointer Arithmetic Checker for C Programs. In Information Computer and Communications Security. ACM.   Y. Younan P. Philippaerts L. Cavallaro R. Sekar F. Piessens and W. Joosen. 2010. PAriCheck: An Efficient Pointer Arithmetic Checker for C Programs. In Information Computer and Communications Security . ACM.","DOI":"10.1145\/1755688.1755707"}],"event":{"name":"PLDI '18: ACM SIGPLAN Conference on Programming Language Design and Implementation","location":"Philadelphia PA USA","acronym":"PLDI '18","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages"]},"container-title":["Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3192366.3192388","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3192366.3192388","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T22:07:53Z","timestamp":1750198073000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3192366.3192388"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,6,11]]},"references-count":34,"alternative-id":["10.1145\/3192366.3192388","10.1145\/3192366"],"URL":"https:\/\/doi.org\/10.1145\/3192366.3192388","relation":{"is-identical-to":[{"id-type":"doi","id":"10.1145\/3296979.3192388","asserted-by":"object"}]},"subject":[],"published":{"date-parts":[[2018,6,11]]},"assertion":[{"value":"2018-06-11","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}