{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,26]],"date-time":"2025-03-26T17:37:56Z","timestamp":1743010676218,"version":"3.40.3"},"publisher-location":"Cham","reference-count":20,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783319751771"},{"type":"electronic","value":"9783319751788"}],"license":[{"start":{"date-parts":[[2018,1,1]],"date-time":"2018-01-01T00:00:00Z","timestamp":1514764800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springer.com\/tdm"},{"start":{"date-parts":[[2018,1,1]],"date-time":"2018-01-01T00:00:00Z","timestamp":1514764800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2018]]},"DOI":"10.1007\/978-3-319-75178-8_22","type":"book-chapter","created":{"date-parts":[[2018,2,7]],"date-time":"2018-02-07T07:12:27Z","timestamp":1517987547000},"page":"266-277","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["Teaching Software Transactional Memory in Concurrency Courses with Clojure and Java"],"prefix":"10.1007","author":[{"given":"Antonio J.","family":"Tomeu","sequence":"first","affiliation":[]},{"given":"Alberto G.","family":"Salguero","sequence":"additional","affiliation":[]},{"given":"Manuel I.","family":"Capel","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2018,2,8]]},"reference":[{"key":"22_CR1","doi-asserted-by":"crossref","unstructured":"Brevnov, E., Dolgov, Y., Kuznetsov, B., Yhershov, D., Shakin, V., Chen, D., Menon, V., Srinivas, S.: Practical experiences with Java software transactional memory. In: The 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (2008)","DOI":"10.1145\/1345206.1345259"},{"key":"22_CR2","doi-asserted-by":"publisher","first-page":"111","DOI":"10.1016\/j.scico.2006.05.006","volume":"63","author":"B Carlstrom","year":"2006","unstructured":"Carlstrom, B., Chung, J., Chafi, H., McDonald, A., Minh, C., Hammond, L., Kozyrakis, K., Olukotun, K.: Executing Java programs with transactional memory. Sci. Comput. Program. 63, 111\u2013129 (2006)","journal-title":"Sci. Comput. Program."},{"key":"22_CR3","doi-asserted-by":"publisher","unstructured":"Cascaval, C., Blundell, C., Michael, M., Cain, H., Wu, P., Chiras, S., Chaterjee, S.: Software transactional memory: why is it only a research toy. Commun. ACM 51(11) (2008). https:\/\/doi.org\/10.1145\/1400214.1400228","DOI":"10.1145\/1400214.1400228"},{"key":"22_CR4","doi-asserted-by":"publisher","first-page":"2714","DOI":"10.1016\/j.procs.2015.05.398","volume":"51","author":"F Clarke","year":"2015","unstructured":"Clarke, F., Ekeland, I., Pedrero, M., Gutierrez, E., Romero, S., Plata, O.: Improving transactional memory performance for irregular applications. Procedia Comput. Sci. 51, 2714\u20132718 (2015)","journal-title":"Procedia Comput. Sci."},{"key":"22_CR5","doi-asserted-by":"crossref","unstructured":"The Joint Task Force on Computing Curricula, Association for Computing Machinery (ACM) and IEEE Computer Society. Computer Science Curricula 2013 Curriculum Guidelines for Undergraduate Degree Programs in Computer Science. https:\/\/www.acm.org\/education\/CS2013-final-report.pdf. Accessed 27 Mar 2017","DOI":"10.1145\/2534860"},{"key":"22_CR6","doi-asserted-by":"publisher","first-page":"2394","DOI":"10.1002\/cpe.3098","volume":"25","author":"R Dias","year":"2013","unstructured":"Dias, R., Vale, T., Louren\u00e7o, J.: Efficient support for in-place metadata in Java software transactional memory. Concurr. Comput. Pract. Exp. 25, 2394\u20132411 (2013). https:\/\/doi.org\/10.1002\/cpe.3098. Wiley Online Library","journal-title":"Concurr. Comput. Pract. Exp."},{"key":"22_CR7","unstructured":"Diegues, N., Fernandes, S., Cachopo, J.: Parallel nesting in a lock-free multi-version software transactional memory. Technical report RT\/2\/2012 (2012). http:\/\/algos.inesc-id.pt\/~jpa\/InscI\/poisson\/varwwwhtml\/portal\/ficheiros\/publicacoes\/7621.pdf. Accessed 20 Mar 2017"},{"key":"22_CR8","volume-title":"Java 7 Concurrency CookBook","author":"J Fern\u00e1ndez","year":"2012","unstructured":"Fern\u00e1ndez, J.: Java 7 Concurrency CookBook. Packt Publishing, Birmingham (2012)"},{"key":"22_CR9","unstructured":"Gosling, J., Joy, B., Steele, G., Bracha, G., Buckley, A.: The Java Language Specification. Java SE, 8 edn (2015). https:\/\/docs.oracle.com\/javase\/specs\/jls\/se8\/jls8.pdf. Accessed 15 Feb 2017"},{"key":"22_CR10","unstructured":"Herlihy, M., Luchangco, V., Moir, M.: A flexible framework for implementing software transactional memory. http:\/\/citeseerx.ist.psu.edu\/viewdoc\/download?doi=10.1.1.394.9533&rep=rep1&type=pdf. Accessed 20 Mar 2017"},{"key":"22_CR11","unstructured":"ISO: Working Draft, Standard for Programming Language C++ (2016). http:\/\/open-std.org\/JTC1\/SC22\/WG21\/docs\/papers\/2016\/n4618.pdf. Accessed 16 Feb 2017"},{"key":"22_CR12","unstructured":"Malde, K.: Can software transactional memory make concurrent programs simple and safe? http:\/\/cs.brown.edu\/~mph\/HerlihyLM06\/dstm2.pdf. Accessed 20 Mar 2017"},{"key":"22_CR13","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"704","DOI":"10.1007\/978-3-642-03869-3_66","volume-title":"Euro-Par 2009 Parallel Processing","author":"K Mizuno","year":"2009","unstructured":"Mizuno, K., Nakaike, T., Nakatani, T.: Reducing rollbacks of transactional memory using ordered shared locks. In: Sips, H., Epema, D., Lin, H.-X. (eds.) Euro-Par 2009. LNCS, vol. 5704, pp. 704\u2013715. Springer, Heidelberg (2009). https:\/\/doi.org\/10.1007\/978-3-642-03869-3_66"},{"key":"22_CR14","unstructured":"Mohamedin, M., Ravindran, B., Palmieri, R.: ByteSTM: Virtual Machine-level Java Software Transactional Memory. http:\/\/www.ssrg.ece.vt.edu\/papers\/coordination_15_CR.pdf. Accessed 20 Mar 2017"},{"key":"22_CR15","doi-asserted-by":"publisher","unstructured":"Nakaike, T., Odaira, R., Nakatani, T., Michael, M.: Real Java applications in software transactional memory. In: IEEE International Symposium on Workload Characterization (2010). https:\/\/doi.org\/10.1109\/IISWC.2010.5654431","DOI":"10.1109\/IISWC.2010.5654431"},{"issue":"3","key":"22_CR16","doi-asserted-by":"publisher","first-page":"555","DOI":"10.1007\/s00224-013-9452-5","volume":"55","author":"V Pankratius","year":"2013","unstructured":"Pankratius, V., Adl-Tatabai, A.: Software engineering with transactional memory versus locks in practice. Theory Comput. Syst. 55(3), 555\u2013590 (2013). https:\/\/doi.org\/10.1007\/s00224-013-9452-5","journal-title":"Theory Comput. Syst."},{"key":"22_CR17","doi-asserted-by":"crossref","unstructured":"Prasad, S.K., et al.: NSF\/IEEE-TCPP curriculum initiative on parallel and distributed computing - core topics for undergraduates. https:\/\/grid.cs.gsu.edu\/~tcpp\/curriculum\/?q=system\/files\/NSF-TCPP-curriculum-version1.pdf. Accessed 20 Mar 2017","DOI":"10.1145\/3159450.3159632"},{"key":"22_CR18","volume-title":"Programming Concurrency on the JVM: Masterig Synchronization, STMA, and Actors","author":"V Subramanian","year":"2011","unstructured":"Subramanian, V.: Programming Concurrency on the JVM: Masterig Synchronization, STMA, and Actors. The Pragmatic Bookshelf, Dallas (2011)"},{"key":"22_CR19","doi-asserted-by":"crossref","unstructured":"Yamada, Y., Iwasaki, H., Ugawa, T.: SAW: Java synchronization selection from lock or software transactional memory. In: Proceeding of IEEE 17th International Conference on Parallel and Distributed Systems, pp. 104\u2013111 (2011)","DOI":"10.1109\/ICPADS.2011.112"},{"key":"22_CR20","unstructured":"Ziarek, L., Welc, A., Adl-Tabatabi, A., Menon, V., Shpeisman, T., Jagannathan, S.: A uniform transactional execution environment for Java. https:\/\/www.cs.purdue.edu\/homes\/suresh\/papers\/ecoop08.pdf. Accessed 20 Mar 2017"}],"container-title":["Lecture Notes in Computer Science","Euro-Par 2017: Parallel Processing Workshops"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-319-75178-8_22","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,2,8]],"date-time":"2022-02-08T01:05:24Z","timestamp":1644282324000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-319-75178-8_22"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018]]},"ISBN":["9783319751771","9783319751788"],"references-count":20,"URL":"https:\/\/doi.org\/10.1007\/978-3-319-75178-8_22","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2018]]},"assertion":[{"value":"8 February 2018","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"Euro-Par","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"European Conference on Parallel Processing","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Santiago de Compostela","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Spain","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2017","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"28 August 2017","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"1 September 2017","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"23","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"europar2017","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"http:\/\/europar2017.usc.es","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"This content has been made available to all.","name":"free","label":"Free to read"}]}}