{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,11]],"date-time":"2026-03-11T01:45:15Z","timestamp":1773193515282,"version":"3.50.1"},"publisher-location":"Berlin, Heidelberg","reference-count":41,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"value":"9783662466681","type":"print"},{"value":"9783662466698","type":"electronic"}],"license":[{"start":{"date-parts":[[2015,1,1]],"date-time":"2015-01-01T00:00:00Z","timestamp":1420070400000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2015]]},"DOI":"10.1007\/978-3-662-46669-8_12","type":"book-chapter","created":{"date-parts":[[2015,4,1]],"date-time":"2015-04-01T14:37:37Z","timestamp":1427899057000},"page":"283-307","source":"Crossref","is-referenced-by-count":74,"title":["The Problem of Programming Language Concurrency Semantics"],"prefix":"10.1007","author":[{"given":"Mark","family":"Batty","sequence":"first","affiliation":[]},{"given":"Kayvan","family":"Memarian","sequence":"additional","affiliation":[]},{"given":"Kyndylan","family":"Nienhuis","sequence":"additional","affiliation":[]},{"given":"Jean","family":"Pichon-Pharabod","sequence":"additional","affiliation":[]},{"given":"Peter","family":"Sewell","sequence":"additional","affiliation":[]}],"member":"297","reference":[{"key":"12_CR1","unstructured":"The SPARC architecture manual, v.\u00a09, \n                    \n                      http:\/\/www.sparc.org\/technical-documents\/\n                    \n                    \n                  , \n                    \n                      http:\/\/www.dev"},{"key":"12_CR2","unstructured":"Programming Languages \u2014 C (2011), ISO\/IEC 9899:2011, \n                    \n                      http:\/\/www.open-std.org\/jtc1\/sc22\/wg14\/docs\/n1539.pdf"},{"key":"12_CR3","doi-asserted-by":"crossref","unstructured":"Adve, S.V., Hill, M.D.: Weak ordering \u2014 a new definition. In: ISCA (1990)","DOI":"10.1145\/325164.325100"},{"key":"12_CR4","doi-asserted-by":"crossref","unstructured":"Alglave, J., Maranget, L., Tautschnig, M.: Herding cats: Modelling, simulation, testing, and data mining for weak memory. ACM TOPLAS, 36(2) (2014)","DOI":"10.1145\/2627752"},{"key":"12_CR5","unstructured":"Batty, M.: The C11 and C++11 concurrency model. PhD thesis, University of Cambridge (2014), \n                    \n                      http:\/\/www.cl.cam.ac.uk\/~mjb220\/battythesis.pdf"},{"key":"12_CR6","doi-asserted-by":"crossref","unstructured":"Batty, M., Dodds, M., Gotsman, A.: Library abstraction for C\/C++ concurrency. In: Proc. POPL (2013)","DOI":"10.1145\/2429069.2429099"},{"key":"12_CR7","doi-asserted-by":"crossref","unstructured":"Batty, M., Memarian, K., Owens, S., Sarkar, S., Sewell, P.: Clarifying and compiling C\/C++ concurrency: from C++11 to POWER. In: Proc. POPL (2012)","DOI":"10.1145\/2103656.2103717"},{"key":"12_CR8","doi-asserted-by":"crossref","unstructured":"Batty, M., Owens, S., Sarkar, S., Sewell, P., Weber, T.: Mathematizing C++ concurrency. In: Proc.\u00a0POPL (2011)","DOI":"10.1145\/1926385.1926394"},{"key":"12_CR9","unstructured":"Becker, P. (ed.): Programming Languages \u2014 C++ (2011), ISO\/IEC 14882:2011, \n                    \n                      http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2011\/n3242.pdf"},{"key":"12_CR10","doi-asserted-by":"crossref","unstructured":"Boehm, H.-J.: Threads cannot be implemented as a library. In: Proc. PLDI (2005)","DOI":"10.1145\/1065010.1065042"},{"key":"12_CR11","unstructured":"Boehm, H.-J.: Memory model rationales (March 2007), \n                    \n                      http:\/\/open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2007\/n2176.html"},{"key":"12_CR12","unstructured":"Boehm, H.-J.: N3786: Prohibiting \u201cout of thin air\u201d results in C++14 (September 2013), \n                    \n                      http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2013\/n3786.htm"},{"key":"12_CR13","doi-asserted-by":"crossref","unstructured":"Boehm, H.-J., Adve, S.V.: Foundations of the C++ concurrency memory model. In: Proc. PLDI (2008)","DOI":"10.1145\/1375581.1375591"},{"key":"12_CR14","doi-asserted-by":"crossref","unstructured":"Boehm, H.-J., Demsky, B.: Outlawing ghosts: Avoiding out-of-thin-air results. In: Proc. MSPC (2014)","DOI":"10.1145\/2618128.2618134"},{"key":"12_CR15","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"165","DOI":"10.1007\/978-3-642-11957-6_10","volume-title":"Programming Languages and Systems","author":"G. Boudol","year":"2010","unstructured":"Boudol, G., Petri, G.: A theory of speculative computation. In: Gordon, A.D. (ed.) ESOP 2010. LNCS, vol.\u00a06012, pp. 165\u2013184. Springer, Heidelberg (2010)"},{"key":"12_CR16","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"331","DOI":"10.1007\/978-3-540-71316-6_23","volume-title":"Programming Languages and Systems","author":"P. Cenciarelli","year":"2007","unstructured":"Cenciarelli, P., Knapp, A., Sibilio, E.: The Java memory model: Operationally, denotationally, axiomatically. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol.\u00a04421, pp. 331\u2013346. Springer, Heidelberg (2007)"},{"key":"12_CR17","doi-asserted-by":"crossref","unstructured":"Demange, D., Laporte, V., Zhao, L., Jagannathan, S., Pichardie, D., Vitek, J.: Plan B: A buffered memory model for Java. In: POPL (2013)","DOI":"10.1145\/2429069.2429110"},{"key":"12_CR18","unstructured":"Free Software Foundation, Inc., RTL Passes \u2014 GNU Compiler Collection (GCC) Internals (October 2014), \n                    \n                      https:\/\/gcc.gnu.org\/onlinedocs\/gccint\/RTL-passes.html\n                    \n                    \n                  ."},{"key":"12_CR19","doi-asserted-by":"publisher","first-page":"399","DOI":"10.1016\/0743-7315(92)90052-O","volume":"15","author":"K. Gharachorloo","year":"1992","unstructured":"Gharachorloo, K., Adve, S.V., Gupta, A., Hennessy, J.L., Hill, M.D.: Programming for different memory consistency models. Journal of Parallel and Distributed Computing\u00a015, 399\u2013407 (1992)","journal-title":"Journal of Parallel and Distributed Computing"},{"key":"12_CR20","unstructured":"Gosling, J., Joy, B., Steele, G.: The Java Language Specification (1996)"},{"key":"12_CR21","unstructured":"The HOL 4 system, \n                    \n                      http:\/\/hol.sourceforge.net\/"},{"key":"12_CR22","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"307","DOI":"10.1007\/978-3-642-11957-6_17","volume-title":"Programming Languages and Systems","author":"R. Jagadeesan","year":"2010","unstructured":"Jagadeesan, R., Pitcher, C., Riely, J.: Generative operational semantics for relaxed memory models. In: Gordon, A.D. (ed.) ESOP 2010. LNCS, vol.\u00a06012, pp. 307\u2013326. Springer, Heidelberg (2010)"},{"issue":"9","key":"12_CR23","doi-asserted-by":"publisher","first-page":"690","DOI":"10.1109\/TC.1979.1675439","volume":"C-28","author":"L. Lamport","year":"1979","unstructured":"Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Trans. Comput.\u00a0C-28(9), 690\u2013691 (1979)","journal-title":"IEEE Trans. Comput."},{"key":"12_CR24","unstructured":"LLVM Project. LLVM\u2019s Analysis and Transform Passes \u2014 LLVM 3.6 documentation (October 2014), \n                    \n                      http:\/\/llvm.org\/docs\/Passes.html"},{"key":"12_CR25","doi-asserted-by":"crossref","unstructured":"Manson, J., Pugh, W., Adve, S.V.: The Java memory model. In: POPL (2005)","DOI":"10.1145\/1040305.1040336"},{"key":"12_CR26","unstructured":"Maranget, L., Sarkar, S., Sewell, P.: A tutorial introduction to the ARM and POWER relaxed memory models (October 2012), \n                    \n                      http:\/\/www.cl.cam.ac.uk\/~pes20\/ppc-supplemental\/test7.pdf"},{"key":"12_CR27","doi-asserted-by":"crossref","unstructured":"Marino, D., Singh, A., Millstein, T., Musuvathi, M., Narayanasamy, S.: A case for an SC-preserving compiler. In: PLDI (2011)","DOI":"10.1145\/1993498.1993522"},{"key":"12_CR28","unstructured":"McKenney, P.: Reordering and verification at the linux kernel reorder workshop in vienna summer of logic. In: Invited talk at REORDER Workshop, Vienna Summer of Logic (July 2014), \n                    \n                      http:\/\/www2.rdrop.com\/users\/paulmck\/scalability\/paper\/LinuxRCUVerif.2014.07.17a.pdf"},{"key":"12_CR29","doi-asserted-by":"crossref","unstructured":"Morisset, F.R., Pawan, P., Nardelli, Z.: Compiler testing via a theory of sound optimisations in the C11\/C++11 memory model. In: Proc. PLDI (2013)","DOI":"10.1145\/2491956.2491967"},{"key":"12_CR30","doi-asserted-by":"crossref","unstructured":"Norris, B., Demsky, B.: CDSchecker: Checking concurrent data structures written with C\/C++ atomics. In: Proc. OOPSLA (2013)","DOI":"10.1145\/2509136.2509514"},{"key":"12_CR31","doi-asserted-by":"crossref","unstructured":"Pugh, W.: Fixing the Java memory model. In: Proc. ACM 1999 Conference on Java Grande (1999)","DOI":"10.1145\/304065.304106"},{"key":"12_CR32","doi-asserted-by":"crossref","unstructured":"Sarkar, S., Memarian, K., Owens, S., Batty, M., Sewell, P., Maranget, L., Alglave, J., Williams, D.: Synchronising C\/C++ and POWER. In: Proc. PLDI (2012)","DOI":"10.1145\/2254064.2254102"},{"key":"12_CR33","doi-asserted-by":"crossref","unstructured":"Sarkar, S., Sewell, P., Alglave, J., Maranget, L., Williams, D.: Understanding POWER multiprocessors. In: Proc.\u00a0PLDI (2011)","DOI":"10.1145\/1993498.1993520"},{"key":"12_CR34","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"27","DOI":"10.1007\/978-3-540-70592-5_3","volume-title":"ECOOP 2008 \u2013 Object-Oriented Programming","author":"J. \u0160ev\u010d\u00edk","year":"2008","unstructured":"\u0160ev\u010d\u00edk, J., Aspinall, D.: On Validity of Program Transformations in the Java Memory Model. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol.\u00a05142, pp. 27\u201351. Springer, Heidelberg (2008)"},{"key":"12_CR35","doi-asserted-by":"crossref","unstructured":"Sewell, P., Sarkar, S., Owens, S., Zappa Nardelli, F., Myreen, M.O.: x86-TSO: A rigorous and usable programmer\u2019s model for x86 multiprocessors. C. ACM\u00a053(7), 89\u201397 (2010), (Research Highlights)","DOI":"10.1145\/1785414.1785443"},{"key":"12_CR36","doi-asserted-by":"crossref","unstructured":"Singh, A., Narayanasamy, S., Marino, D., Millstein, T., Musuvathi, M.: End-to-end sequential consistency. In: Proc. ISCA (2012)","DOI":"10.1109\/ISCA.2012.6237045"},{"key":"12_CR37","doi-asserted-by":"crossref","unstructured":"Turon, A., Vafeiadis, V., Dreyer, D.: GPS: Navigating weak memory with ghosts, protocols, and separation. In: Proc. OOPSLA (2014)","DOI":"10.1145\/2660193.2660243"},{"key":"12_CR38","doi-asserted-by":"crossref","unstructured":"Vafeiadis, V., Balabonski, T., Chakraborty, S., Morisset, R., Zappa Nardelli, F.: Common compiler optimisations are invalid in the C11 memory model and what we can do about it. In: Proc. POPL (2015)","DOI":"10.1145\/2676726.2676995"},{"key":"12_CR39","doi-asserted-by":"crossref","unstructured":"Vafeiadis, V., Narayan, C.: Relaxed separation logic: A program logic for C11 concurrency. In: Proc. OOPSLA (2013)","DOI":"10.1145\/2509136.2509532"},{"key":"12_CR40","doi-asserted-by":"crossref","unstructured":"\u0160ev\u010d\u00edk, J.: Safe optimisations for shared-memory concurrent programs. In: PLDI (2011)","DOI":"10.1145\/1993498.1993534"},{"key":"12_CR41","doi-asserted-by":"crossref","unstructured":"\u0160ev\u010d\u00edk, J., Vafeiadis, V., Zappa Nardelli, F., Jagannathan, S., Sewell, P.: CompCertTSO: A verified compiler for relaxed-memory concurrency. J. ACM\u00a060, 22:1\u201322:50 (2013)","DOI":"10.1145\/2487241.2487248"}],"container-title":["Lecture Notes in Computer Science","Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-662-46669-8_12","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,5,19]],"date-time":"2019-05-19T23:51:43Z","timestamp":1558309903000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-662-46669-8_12"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2015]]},"ISBN":["9783662466681","9783662466698"],"references-count":41,"URL":"https:\/\/doi.org\/10.1007\/978-3-662-46669-8_12","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2015]]}}}