{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,1]],"date-time":"2026-04-01T14:42:33Z","timestamp":1775054553024,"version":"3.50.1"},"reference-count":48,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2017,10,12]],"date-time":"2017-10-12T00:00:00Z","timestamp":1507766400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["CCF-1527923"],"award-info":[{"award-number":["CCF-1527923"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2017,10,12]]},"abstract":"<jats:p>A *memory consistency model* (or simply *memory model*) defines the possible values that a shared-memory read may return in a multithreaded programming language. Choosing a memory model involves an inherent performance-programmability tradeoff. The Java language has adopted a *relaxed* (or *weak*) memory model that is designed to admit most traditional compiler optimizations and obviate the need for hardware fences on most shared-memory accesses. The downside, however, is that programmers are exposed to a complex and unintuitive semantics and must carefully declare certain variables as `volatile` in order to enforce program orderings that are necessary for proper behavior.<\/jats:p>\n          <jats:p>This paper proposes a simpler and stronger memory model for Java through a conceptually small change: *every* variable has `volatile` semantics by default, but the language allows a programmer to tag certain variables, methods, or classes as `relaxed` and provides the current Java semantics for these portions of code. This *volatile-by-default* semantics provides *sequential consistency* (SC) for all programs by default. At the same time, expert programmers retain the freedom to build performance-critical libraries that violate the SC semantics.<\/jats:p>\n          <jats:p>At the outset, it is unclear if the `volatile`-by-default semantics is practical for Java, given the cost of memory fences on today's hardware platforms. The core contribution of this paper is to demonstrate, through comprehensive empirical evaluation, that the `volatile`-by-default semantics is arguably acceptable for a predominant use case for Java today -- server-side applications running on Intel x86 architectures. We present VBD-HotSpot, a modification to Oracle's widely used HotSpot JVM that implements the `volatile`-by-default semantics for x86. To our knowledge VBD-HotSpot is the first implementation of SC for Java in the context of a modern JVM. VBD-HotSpot incurs an average overhead versus the baseline HotSpot JVM of 28% for the Da Capo benchmarks, which is significant though perhaps less than commonly assumed. Further, VBD-HotSpot incurs average overheads of 12% and 19% respectively on standard benchmark suites for big-data analytics and machine learning in the widely used Spark framework.<\/jats:p>","DOI":"10.1145\/3133873","type":"journal-article","created":{"date-parts":[[2017,10,13]],"date-time":"2017-10-13T15:15:45Z","timestamp":1507907745000},"page":"1-25","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":9,"title":["A volatile-by-default JVM for server applications"],"prefix":"10.1145","volume":"1","author":[{"given":"Lun","family":"Liu","sequence":"first","affiliation":[{"name":"University of California at Los Angeles, USA"}]},{"given":"Todd","family":"Millstein","sequence":"additional","affiliation":[{"name":"University of California at Los Angeles, USA"}]},{"given":"Madanlal","family":"Musuvathi","sequence":"additional","affiliation":[{"name":"Microsoft Research, USA"}]}],"member":"320","published-online":{"date-parts":[[2017,10,12]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1787234.1787255"},{"key":"e_1_2_1_2_1","volume-title":"Proc. of the 17th Annual International Symposium on Computer Architecture. ACM, 2\u201314","author":"Adve S. V.","unstructured":"S. V. Adve and M. D. Hill . 1990. Weak ordering\u2014a new definition . In Proc. of the 17th Annual International Symposium on Computer Architecture. ACM, 2\u201314 . S. V. Adve and M. D. Hill. 1990. Weak ordering\u2014a new definition. In Proc. of the 17th Annual International Symposium on Computer Architecture. ACM, 2\u201314."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1669112.1669131"},{"key":"e_1_2_1_4_1","volume-title":"Computer Aided Verification - 26th International Conference. 508\u2013524.","author":"Alglave Jade","unstructured":"Jade Alglave , Daniel Kroening , Vincent Nimal , and Daniel Poetzl . 2014. Don\u2019t Sit on the Fence - A Static Analysis Approach to Automatic Fence Insertion . In Computer Aided Verification - 26th International Conference. 508\u2013524. Jade Alglave, Daniel Kroening, Vincent Nimal, and Daniel Poetzl. 2014. Don\u2019t Sit on the Fence - A Static Analysis Approach to Automatic Fence Insertion. In Computer Aided Verification - 26th International Conference. 508\u2013524."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1147\/sj.442.0399"},{"issue":"2","key":"e_1_2_1_6_1","first-page":"1","article-title":"ARM Cortex-A Series Programmer\u2019s Guide for ARMv8-A Version: 1.0","volume":"13","year":"2017","unstructured":"ARMv8 2017 . ARM Cortex-A Series Programmer\u2019s Guide for ARMv8-A Version: 1.0 , Section 13 . 2 . 1 . (2017). https: \/\/developer.arm.com\/docs\/den0024\/latest\/13-memory-ordering\/132-barriers\/1321-one-way-barriers Accessed July 2017. ARMv8 2017. ARM Cortex-A Series Programmer\u2019s Guide for ARMv8-A Version: 1.0, Section 13.2.1. (2017). https: \/\/developer.arm.com\/docs\/den0024\/latest\/13-memory-ordering\/132-barriers\/1321-one-way-barriers Accessed July 2017.","journal-title":"Section"},{"key":"e_1_2_1_7_1","volume-title":"Accessed","author":"Bacon D.","year":"2017","unstructured":"D. Bacon , J. Bloch , J. Bogda , C. Click , P. Haahr , D. Lea , T. May , J. W. Maessen , J. D. Mitchell , K. Nilsen , B. Pugh , and E. S. Sirer . Accessed April 2017 . The \u201cDouble-Checked Locking is Broken\u201d Declaration. (Accessed April 2017). http: \/\/www.cs.umd.edu\/~pugh\/java\/memoryModel\/DoubleCheckedLocking.html D. Bacon, J. Bloch, J. Bogda, C. Click, P. Haahr, D. Lea, T. May, J. W. Maessen, J. D. Mitchell, K. Nilsen, B. Pugh, and E. S. Sirer. Accessed April 2017. The \u201cDouble-Checked Locking is Broken\u201d Declaration. (Accessed April 2017). http: \/\/www.cs.umd.edu\/~pugh\/java\/memoryModel\/DoubleCheckedLocking.html"},{"key":"e_1_2_1_8_1","volume-title":"Proceedings of the 21st annual ACM SIGPLAN conference on Object-Oriented Programing, Systems, Languages, and Applications. ACM Press","author":"Blackburn S. M.","unstructured":"S. M. Blackburn , R. Garner , C. Hoffman , A. M. Khan , K. S. McKinley , R. Bentzur , A. Diwan , D. Feinberg , D. Frampton , S. Z. Guyer , M. Hirzel , A. Hosking , M. Jump , H. Lee , J. E. B. Moss , A. Phansalkar , D. Stefanovi\u0107 , T. VanDrunen , D. von Dincklage , and B. Wiedermann . 2006. The DaCapo Benchmarks: Java Benchmarking Development and Analysis. In OOPSLA \u201906 : Proceedings of the 21st annual ACM SIGPLAN conference on Object-Oriented Programing, Systems, Languages, and Applications. ACM Press , New York, NY, USA, 169\u2013190. S. M. Blackburn, R. Garner, C. Hoffman, A. M. Khan, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanovi\u0107, T. VanDrunen, D. von Dincklage, and B. Wiedermann. 2006. The DaCapo Benchmarks: Java Benchmarking Development and Analysis. In OOPSLA \u201906: Proceedings of the 21st annual ACM SIGPLAN conference on Object-Oriented Programing, Systems, Languages, and Applications. ACM Press, New York, NY, USA, 169\u2013190."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.5555\/2001252.2001255"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/2414729.2414732"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1375581.1375591"},{"key":"e_1_2_1_12_1","volume-title":"Proceedings of the Workshop on Memory Systems Performance and Correctness (MSPC \u201914)","author":"J.","unstructured":"Hans- J. Boehm and Brian Demsky. 2014. Outlawing Ghosts: Avoiding Out-of-thin-air Results . In Proceedings of the Workshop on Memory Systems Performance and Correctness (MSPC \u201914) . ACM, Article 7, 6 pages. Hans-J. Boehm and Brian Demsky. 2014. Outlawing Ghosts: Avoiding Out-of-thin-air Results. In Proceedings of the Workshop on Memory Systems Performance and Correctness (MSPC \u201914). ACM, Article 7, 6 pages."},{"key":"e_1_2_1_13_1","volume-title":"16th European Symposium on Programming (Lecture Notes in Computer Science), Rocco De Nicola (Ed.)","volume":"4421","author":"Cenciarelli Pietro","year":"2007","unstructured":"Pietro Cenciarelli , Alexander Knapp , and Eleonora Sibilio . 2007 . The Java Memory Model: Operationally, Denotationally, Axiomatically. In Programming Languages and Systems , 16th European Symposium on Programming (Lecture Notes in Computer Science), Rocco De Nicola (Ed.) , Vol. 4421 . Springer, 331\u2013346. Pietro Cenciarelli, Alexander Knapp, and Eleonora Sibilio. 2007. The Java Memory Model: Operationally, Denotationally, Axiomatically. In Programming Languages and Systems, 16th European Symposium on Programming (Lecture Notes in Computer Science), Rocco De Nicola (Ed.), Vol. 4421. Springer, 331\u2013346."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250662.1250697"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/2429069.2429110"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1806596.1806625"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/1297027.1297033"},{"key":"e_1_2_1_18_1","volume-title":"Proc. of the International Conference on Parallel Processing. 355\u2013364","author":"Gharachorloo K.","unstructured":"K. Gharachorloo , A. Gupta , and J. Hennessy . 1991. Two Techniques to Enhance the Performance of Memory Consistency Models . In Proc. of the International Conference on Parallel Processing. 355\u2013364 . K. Gharachorloo, A. Gupta, and J. Hennessy. 1991. Two Techniques to Enhance the Performance of Memory Consistency Models. In Proc. of the International Conference on Parallel Processing. 355\u2013364."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISSRE.2016.48"},{"key":"e_1_2_1_20_1","volume-title":"https:\/\/docs.oracle.com\/javase\/specs\/jvms\/se8\/html","author":"Machine Java Virtual","year":"2017","unstructured":"Java Virtual Machine Specification 2017. Accessed July 2017. ( 2017 ). https:\/\/docs.oracle.com\/javase\/specs\/jvms\/se8\/html Java Virtual Machine Specification 2017. Accessed July 2017. (2017). https:\/\/docs.oracle.com\/javase\/specs\/jvms\/se8\/html"},{"key":"e_1_2_1_21_1","volume-title":"JSR-133 Cookbook for Compiler Writers. Accessed","year":"2017","unstructured":"JSR133 2017. JSR-133 Cookbook for Compiler Writers. Accessed July 2017 . (2017). http:\/\/g.oswego.edu\/dl\/jmm\/cookbook.html JSR133 2017. JSR-133 Cookbook for Compiler Writers. Accessed July 2017. (2017). http:\/\/g.oswego.edu\/dl\/jmm\/cookbook.html"},{"key":"e_1_2_1_22_1","volume-title":"31st European Conference on Object-Oriented Programming (ECOOP 2017) (Leibniz International Proceedings in Informatics (LIPIcs)), Peter M\u00fcller (Ed.)","author":"Kaiser Jan-Oliver","unstructured":"Jan-Oliver Kaiser , Hoang-Hai Dang , Derek Dreyer , Ori Lahav , and Viktor Vafeiadis . 2017. Strong Logic for Weak Memory: Reasoning About Release-Acquire Consistency in Iris . In 31st European Conference on Object-Oriented Programming (ECOOP 2017) (Leibniz International Proceedings in Informatics (LIPIcs)), Peter M\u00fcller (Ed.) , Vol. 74 . 17:1\u201317:29. Jan-Oliver Kaiser, Hoang-Hai Dang, Derek Dreyer, Ori Lahav, and Viktor Vafeiadis. 2017. Strong Logic for Weak Memory: Reasoning About Release-Acquire Consistency in Iris. In 31st European Conference on Object-Oriented Programming (ECOOP 2017) (Leibniz International Proceedings in Informatics (LIPIcs)), Peter M\u00fcller (Ed.), Vol. 74. 17:1\u201317:29."},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1109\/SC.2005.43"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/TC.1979.1675439"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1815961.1815987"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-31424-7_36"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1040305.1040336"},{"key":"e_1_2_1_28_1","volume-title":"1st Summit on Advances in Programming Languages (SNAPL 2015) (Leibniz International Proceedings in Informatics (LIPIcs)), Thomas Ball, Rastislav Bodik, Shriram Krishnamurthi, Benjamin S","author":"Marino Daniel","unstructured":"Daniel Marino , Todd Millstein , Madanlal Musuvathi , Satish Narayanasamy , and Abhayendra Singh . 2015. The Silently Shifting Semicolon . In 1st Summit on Advances in Programming Languages (SNAPL 2015) (Leibniz International Proceedings in Informatics (LIPIcs)), Thomas Ball, Rastislav Bodik, Shriram Krishnamurthi, Benjamin S . Lerner, and Greg Morrisett (Eds.), Vol. 32 . 177\u2013189. Daniel Marino, Todd Millstein, Madanlal Musuvathi, Satish Narayanasamy, and Abhayendra Singh. 2015. The Silently Shifting Semicolon. In 1st Summit on Advances in Programming Languages (SNAPL 2015) (Leibniz International Proceedings in Informatics (LIPIcs)), Thomas Ball, Rastislav Bodik, Shriram Krishnamurthi, Benjamin S. Lerner, and Greg Morrisett (Eds.), Vol. 32. 177\u2013189."},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1806596.1806636"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993522"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/2814270.2814313"},{"key":"e_1_2_1_32_1","volume-title":"MLlib: Machine Learning in Apache Spark. CoRR abs\/1505.06807","author":"Meng Xiangrui","year":"2015","unstructured":"Xiangrui Meng , Joseph K. Bradley , Burak Yavuz , Evan R. Sparks , Shivaram Venkataraman , Davies Liu , Jeremy Freeman , D. B. Tsai , Manish Amde , Sean Owen , Doris Xin , Reynold Xin , Michael J. Franklin , Reza Zadeh , Matei Zaharia , and Ameet Talwalkar . 2015. MLlib: Machine Learning in Apache Spark. CoRR abs\/1505.06807 ( 2015 ). http:\/\/arxiv.org\/abs\/1505.06807 Xiangrui Meng, Joseph K. Bradley, Burak Yavuz, Evan R. Sparks, Shivaram Venkataraman, Davies Liu, Jeremy Freeman, D. B. Tsai, Manish Amde, Sean Owen, Doris Xin, Reynold Xin, Michael J. Franklin, Reza Zadeh, Matei Zaharia, and Ameet Talwalkar. 2015. MLlib: Machine Learning in Apache Spark. CoRR abs\/1505.06807 (2015). http:\/\/arxiv.org\/abs\/1505.06807"},{"key":"e_1_2_1_33_1","unstructured":"OpenJDK 2017. Accessed July 2017. (2017). http:\/\/openjdk.java.net  OpenJDK 2017. Accessed July 2017. (2017). http:\/\/openjdk.java.net"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.5555\/3241639.3241651"},{"key":"e_1_2_1_35_1","volume-title":"22nd International Conference, TPHOLs 2009 (Lecture Notes in Computer Science), Stefan Berghofer, Tobias Nipkow, Christian Urban, and Makarius Wenzel (Eds.)","volume":"5674","author":"Owens Scott","year":"2009","unstructured":"Scott Owens , Susmit Sarkar , and Peter Sewell . 2009 . A Better x86 Memory Model: x86-TSO. In Theorem Proving in Higher Order Logics , 22nd International Conference, TPHOLs 2009 (Lecture Notes in Computer Science), Stefan Berghofer, Tobias Nipkow, Christian Urban, and Makarius Wenzel (Eds.) , Vol. 5674 . Springer, 391\u2013407. Scott Owens, Susmit Sarkar, and Peter Sewell. 2009. A Better x86 Memory Model: x86-TSO. In Theorem Proving in Higher Order Logics, 22nd International Conference, TPHOLs 2009 (Lecture Notes in Computer Science), Stefan Berghofer, Tobias Nipkow, Christian Urban, and Makarius Wenzel (Eds.), Vol. 5674. Springer, 391\u2013407."},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1755913.1755922"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2851141.2851150"},{"key":"e_1_2_1_38_1","volume-title":"Schmidt and Tim Harrison","author":"Douglas","year":"1997","unstructured":"Douglas C. Schmidt and Tim Harrison . 1997 . Double-checked Locking : An optimization pattern for efficiently initializing and accessing thread-safe objects. In Pattern Languages of Program Design 3, Robert C. Martin, Dirk Riehle, and Frank Buschmann (Eds.). Addison-Wesley Longman Publishing Co. , Inc., 363\u2013375. Douglas C. Schmidt and Tim Harrison. 1997. Double-checked Locking: An optimization pattern for efficiently initializing and accessing thread-safe objects. In Pattern Languages of Program Design 3, Robert C. Martin, Dirk Riehle, and Frank Buschmann (Eds.). Addison-Wesley Longman Publishing Co., Inc., 363\u2013375."},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/2694344.2694379"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/2807426.2807432"},{"key":"e_1_2_1_41_1","doi-asserted-by":"crossref","unstructured":"Jaroslav Sevc\u00edk and David Aspinall. 2008. On Validity of Program Transformations in the Java Memory Model. In ECOOP. 27\u201351.  Jaroslav Sevc\u00edk and David Aspinall. 2008. On Validity of Program Transformations in the Java Memory Model. In ECOOP. 27\u201351.","DOI":"10.1007\/978-3-540-70592-5_3"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/42190.42277"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/1950365.1950375"},{"key":"e_1_2_1_44_1","volume-title":"Proc. of the 39th Annual International Symposium on Computer Architecture. 524 \u2013535","author":"Singh Abhayendra","unstructured":"Abhayendra Singh , S. Narayanasamy , D. Marino , T. Millstein , and M. Musuvathi . 2012. End-to-end Sequential Consistency . In Proc. of the 39th Annual International Symposium on Computer Architecture. 524 \u2013535 . Abhayendra Singh, S. Narayanasamy, D. Marino, T. Millstein, and M. Musuvathi. 2012. End-to-end Sequential Consistency. In Proc. of the 39th Annual International Symposium on Computer Architecture. 524 \u2013535."},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065944.1065947"},{"key":"e_1_2_1_46_1","volume-title":"Do not publish partially initialized objects. Accessed","author":"J","year":"2017","unstructured":"TSM03- J 2017. TSM03-J. Do not publish partially initialized objects. Accessed July 2017 . (2017). https:\/\/www.securecoding. cert.org\/confluence\/display\/java\/TSM03-J.+Do+not+publish+partially+initialized+objects TSM03-J 2017. TSM03-J. Do not publish partially initialized objects. Accessed July 2017. (2017). https:\/\/www.securecoding. cert.org\/confluence\/display\/java\/TSM03-J.+Do+not+publish+partially+initialized+objects"},{"key":"e_1_2_1_47_1","volume-title":"Proceedings of the 22Nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP \u201917)","author":"Vollmer Michael","unstructured":"Michael Vollmer , Ryan G. Scott , Madanlal Musuvathi , and Ryan R. Newton . 2017. SC-Haskell: Sequential Consistency in Languages That Minimize Mutable Shared Heap . In Proceedings of the 22Nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP \u201917) . ACM, 283\u2013298. Michael Vollmer, Ryan G. Scott, Madanlal Musuvathi, and Ryan R. Newton. 2017. SC-Haskell: Sequential Consistency in Languages That Minimize Mutable Shared Heap. In Proceedings of the 22Nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP \u201917). ACM, 283\u2013298."},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/2934664"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3133873","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3133873","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3133873","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T03:30:34Z","timestamp":1750217434000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3133873"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,10,12]]},"references-count":48,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2017,10,12]]}},"alternative-id":["10.1145\/3133873"],"URL":"https:\/\/doi.org\/10.1145\/3133873","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2017,10,12]]},"assertion":[{"value":"2017-10-12","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}