{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:09:18Z","timestamp":1750219758844,"version":"3.41.0"},"reference-count":51,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA2","license":[{"start":{"date-parts":[[2023,10,16]],"date-time":"2023-10-16T00:00:00Z","timestamp":1697414400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100001871","name":"Funda\u00e7\u00e3o para a Ci\u00eancia e a Tecnologia","doi-asserted-by":"publisher","award":["UIDB\/04516\/2020"],"award-info":[{"award-number":["UIDB\/04516\/2020"]}],"id":[{"id":"10.13039\/501100001871","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":[[2023,10,16]]},"abstract":"<jats:p>Data-Centric Synchronization (DCS) shifts the reasoning about concurrency restrictions from control structures to data declaration. It is a high-level declarative approach that abstracts away from the actual concurrency control mechanism(s) in use. Despite its advantages, the practical use of DCS is hindered by the fact that it may require many annotations and\/or multiple implementations of the same method to cope with differently qualified parameters.<\/jats:p>\n          <jats:p>To overcome these limitations, in this paper we present AtomiS, a new DCS approach that requires only qualifying types of parameters and return values in interface definitions, and of fields in class definitions. The latter may also be abstracted away in type parameters, rendering class implementations virtually annotation-free. From this high level specification, a static analysis infers the atomicity constraints that are local to each method, considering valid only the method variants that are consistent with the specification, and performs code generation for all valid variants of each method. The generated code is then the target for automatic injection of concurrency control primitives that are responsible for ensuring the absence of data-races,  \natomicity-violations and deadlocks.<\/jats:p>\n          <jats:p>We provide a Java implementation and showcase the applicability of AtomiS in real-life code. For the  \nbenchmarks analysed, AtomiS requires fewer annotations than the original number of regions requiring locks, as well as fewer annotations than Atomic Sets (a reference DCS proposal).<\/jats:p>","DOI":"10.1145\/3622801","type":"journal-article","created":{"date-parts":[[2023,10,16]],"date-time":"2023-10-16T15:41:29Z","timestamp":1697470889000},"page":"116-145","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["AtomiS: Data-Centric Synchronization Made Practical"],"prefix":"10.1145","volume":"7","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-7958-9740","authenticated-orcid":false,"given":"Herv\u00e9","family":"Paulino","sequence":"first","affiliation":[{"name":"Nova University Lisbon, Caparica, Portugal"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-5252-0399","authenticated-orcid":false,"given":"Ana","family":"Almeida Matos","sequence":"additional","affiliation":[{"name":"University of Lisbon, Lisbon, Portugal"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2738-764X","authenticated-orcid":false,"given":"Jan","family":"Cederquist","sequence":"additional","affiliation":[{"name":"University of Lisbon, Lisbon, Portugal"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7582-0308","authenticated-orcid":false,"given":"Marco","family":"Giunti","sequence":"additional","affiliation":[{"name":"Nova University Lisbon, Caparica, Portugal"}]},{"ORCID":"https:\/\/orcid.org\/0009-0002-5233-8460","authenticated-orcid":false,"given":"Jo\u00e3o","family":"Matos","sequence":"additional","affiliation":[{"name":"University of Lisbon, Lisbon, Portugal"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-8074-0380","authenticated-orcid":false,"given":"Ant\u00f3nio","family":"Ravara","sequence":"additional","affiliation":[{"name":"Nova University Lisbon, Caparica, Portugal"}]}],"member":"320","published-online":{"date-parts":[[2023,10,16]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1889997.1889999"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1002\/stvr.281"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1186\/s13174-017-0055-2"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/582419.582440"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3307624.3307629"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2007.346192"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/1353522.1353525"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1375581.1375619"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1007\/11693024_18"},{"key":"e_1_2_1_10_1","unstructured":"Contemplate Ltd.. 2014. ThreadSafe. http:\/\/www.contemplateltd.com\/threadsafe Last visited in 4\/2023 \t\t\t\t  Contemplate Ltd.. 2014. ThreadSafe. http:\/\/www.contemplateltd.com\/threadsafe Last visited in 4\/2023"},{"key":"e_1_2_1_11_1","volume-title":"REPT: Reverse Debugging of Failures in Deployed Software. In 13th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2018","author":"Cui Weidong","year":"2018","unstructured":"Weidong Cui , Xinyang Ge , Baris Kasikci , Ben Niu , Upamanyu Sharma , Ruoyu Wang , and Insu Yun . 2018 . REPT: Reverse Debugging of Failures in Deployed Software. In 13th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2018 , Carlsbad, CA, USA , October 8-10, 2018, Andrea C. Arpaci-Dusseau and Geoff Voelker (Eds.). USENIX Association, 17\u201332. https:\/\/www.usenix.org\/conference\/osdi18\/presentation\/weidong Weidong Cui, Xinyang Ge, Baris Kasikci, Ben Niu, Upamanyu Sharma, Ruoyu Wang, and Insu Yun. 2018. REPT: Reverse Debugging of Failures in Deployed Software. In 13th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2018, Carlsbad, CA, USA, October 8-10, 2018, Andrea C. Arpaci-Dusseau and Geoff Voelker (Eds.). USENIX Association, 17\u201332. https:\/\/www.usenix.org\/conference\/osdi18\/presentation\/weidong"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-78800-3_24"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2462029.2462030"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/2160910.2160913"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1190216.1190260"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/945445.945468"},{"key":"e_1_2_1_17_1","unstructured":"Facebook Inc.. 2013. A tool to detect bugs in Java and C\/C++\/Objective-C code before it ships. https:\/\/fbinfer.com\/ Last visited in 4\/2023 \t\t\t\t  Facebook Inc.. 2013. A tool to detect bugs in Java and C\/C++\/Objective-C code before it ships. https:\/\/fbinfer.com\/ Last visited in 4\/2023"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/964001.964023"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/301618.301665"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1186632.1186635"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1297027.1297051"},{"key":"e_1_2_1_22_1","volume-title":"Proceedings of the First ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (TRANSACT \u201906)","author":"Hicks Michael","year":"2006","unstructured":"Michael Hicks , Jeffrey S Foster , and Polyvios Pratikakis . 2006 . Lock inference for atomic sections . In Proceedings of the First ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (TRANSACT \u201906) . ACM. http:\/\/www.cs.umd.edu\/~polyvios\/publications\/transact06.pdf Michael Hicks, Jeffrey S Foster, and Polyvios Pratikakis. 2006. Lock inference for atomic sections. In Proceedings of the First ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (TRANSACT \u201906). ACM. http:\/\/www.cs.umd.edu\/~polyvios\/publications\/transact06.pdf"},{"key":"e_1_2_1_23_1","volume-title":"Inferring AJ Types for Concurrent Libraries. 19th International Workshop on Foundations of Object-Oriented Languages, FOOL 2012","author":"Huang Wei","year":"2012","unstructured":"Wei Huang and Ana Milanova . 2012 . Inferring AJ Types for Concurrent Libraries. 19th International Workshop on Foundations of Object-Oriented Languages, FOOL 2012 , Tucson, AZ, USA; October 22, 2012 Wei Huang and Ana Milanova. 2012. Inferring AJ Types for Concurrent Libraries. 19th International Workshop on Foundations of Object-Oriented Languages, FOOL 2012, Tucson, AZ, USA; October 22, 2012"},{"key":"e_1_2_1_24_1","unstructured":"2011. C++ 11 standard. https:\/\/www.iso.org\/standard\/50372.html Section 6.7.2.4 - Atomic type specifiers \t\t\t\t  2011. C++ 11 standard. https:\/\/www.iso.org\/standard\/50372.html Section 6.7.2.4 - Atomic type specifiers"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.14778\/1687627.1687657"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2972206.2972214"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/MC.1993.274940"},{"key":"e_1_2_1_28_1","volume-title":"Automating the Choice of Consistency Levels in Replicated Systems. In 2014 USENIX Annual Technical Conference, USENIX ATC \u201914","author":"Li Cheng","year":"2014","unstructured":"Cheng Li , Jo\u00e3o Leit\u00e3o , Allen Clement , Nuno M. Pregui\u00e7a , Rodrigo Rodrigues , and Viktor Vafeiadis . 2014 . Automating the Choice of Consistency Levels in Replicated Systems. In 2014 USENIX Annual Technical Conference, USENIX ATC \u201914 , Philadelphia, PA, USA , June 19-20, 2014, Garth Gibson and Nickolai Zeldovich (Eds.). USENIX Association, 281\u2013292. https:\/\/www.usenix.org\/conference\/atc14\/technical-sessions\/presentation\/li_cheng_2 Cheng Li, Jo\u00e3o Leit\u00e3o, Allen Clement, Nuno M. Pregui\u00e7a, Rodrigo Rodrigues, and Viktor Vafeiadis. 2014. Automating the Choice of Consistency Levels in Replicated Systems. In 2014 USENIX Annual Technical Conference, USENIX ATC \u201914, Philadelphia, PA, USA, June 19-20, 2014, Garth Gibson and Nickolai Zeldovich (Eds.). USENIX Association, 281\u2013292. https:\/\/www.usenix.org\/conference\/atc14\/technical-sessions\/presentation\/li_cheng_2"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1346281.1346323"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1168857.1168864"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2013.6606578"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1111037.1111068"},{"key":"e_1_2_1_33_1","volume-title":"55 Specific Ways to Improve Your Programs and Designs","author":"Meyers Scott","unstructured":"Scott Meyers . 2005. Effective C++ : 55 Specific Ways to Improve Your Programs and Designs ( 3 rd Edition). Addison-Wesley Professional . isbn:0321334876 Scott Meyers. 2005. Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition). Addison-Wesley Professional. isbn:0321334876","edition":"3"},{"volume-title":"Proceedings of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2006","year":"2006","key":"e_1_2_1_34_1","unstructured":"2006. Proceedings of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2006 , Charleston, South Carolina, USA , January 11-13, 2006 , J. Gregory Morrisett and Simon L. Peyton Jones (Eds.). ACM. isbn:1-59593-027-2 http:\/\/dl.acm.org\/citation.cfm?id=1111037 2006. Proceedings of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2006, Charleston, South Carolina, USA, January 11-13, 2006, J. Gregory Morrisett and Simon L. Peyton Jones (Eds.). ACM. isbn:1-59593-027-2 http:\/\/dl.acm.org\/citation.cfm?id=1111037"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/3477314.3507120"},{"key":"e_1_2_1_36_1","unstructured":"OpenJDK. 2004. java.util.Collections. https:\/\/github.com\/openjdk\/jdk\/blob\/master\/src\/java.base\/share\/classes\/java\/util\/Collections.java Last visited in 4\/2023 \t\t\t\t  OpenJDK. 2004. java.util.Collections. https:\/\/github.com\/openjdk\/jdk\/blob\/master\/src\/java.base\/share\/classes\/java\/util\/Collections.java Last visited in 4\/2023"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/3331554.3342608"},{"key":"e_1_2_1_38_1","volume-title":"Jan Cederquist, Marco Giunti, Jo\u00e3o Matos, and Ant\u00f3nio Ravara.","author":"Paulino Herv\u00e9","year":"2023","unstructured":"Herv\u00e9 Paulino , Ana Almeida Matos , Jan Cederquist, Marco Giunti, Jo\u00e3o Matos, and Ant\u00f3nio Ravara. 2023 . Sound Atomicity Inference for Data-Centric Synchronization. CoRR , abs\/2309.05483 (2023), https:\/\/doi.org\/10.48550\/arXiv.2309.05483 arXiv:2309.05483. 10.48550\/arXiv.2309.05483 Herv\u00e9 Paulino, Ana Almeida Matos, Jan Cederquist, Marco Giunti, Jo\u00e3o Matos, and Ant\u00f3nio Ravara. 2023. Sound Atomicity Inference for Data-Centric Synchronization. CoRR, abs\/2309.05483 (2023), https:\/\/doi.org\/10.48550\/arXiv.2309.05483 arXiv:2309.05483."},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/2851613.2851734"},{"key":"e_1_2_1_40_1","unstructured":"Kevin Poulsen. 2004. Tracking the blackout bug.  http:\/\/www.securityfocus.com\/news\/8412 \t\t\t\t  Kevin Poulsen. 2004. Tracking the blackout bug.  http:\/\/www.securityfocus.com\/news\/8412"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3385993"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2019.110450"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/1449764.1449779"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/224964.224987"},{"volume-title":"101 Rules, Guidelines, and Best Practices (C++ in Depth Series)","author":"Sutter Herb","key":"e_1_2_1_45_1","unstructured":"Herb Sutter and Andrei Alexandrescu . 2004. C++ Coding Standards : 101 Rules, Guidelines, and Best Practices (C++ in Depth Series) . Addison-Wesley Professional . isbn:0321113586 https:\/\/www.oreilly.com\/library\/view\/c-coding-standards\/0321113586\/ Herb Sutter and Andrei Alexandrescu. 2004. C++ Coding Standards: 101 Rules, Guidelines, and Best Practices (C++ in Depth Series). Addison-Wesley Professional. isbn:0321113586 https:\/\/www.oreilly.com\/library\/view\/c-coding-standards\/0321113586\/"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/1111037.1111067"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-14107-2_15"},{"key":"e_1_2_1_48_1","volume-title":"9th USENIX Symposium on Operating Systems Design and Implementation, OSDI","author":"Xiong Weiwei","year":"2010","unstructured":"Weiwei Xiong , Soyeon Park , Jiaqi Zhang , Yuanyuan Zhou , and Zhiqiang Ma. 2010. Ad Hoc Synchronization Considered Harmful . In 9th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2010 , October 4-6, 2010, Vancouver, BC , Canada, Proceedings, Remzi H. Arpaci-Dusseau and Brad Chen (Eds.). USENIX Association , 163\u2013176. http:\/\/www.usenix.org\/events\/osdi10\/tech\/full_papers\/Xiong.pdf Weiwei Xiong, Soyeon Park, Jiaqi Zhang, Yuanyuan Zhou, and Zhiqiang Ma. 2010. Ad Hoc Synchronization Considered Harmful. In 9th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2010, October 4-6, 2010, Vancouver, BC, Canada, Proceedings, Remzi H. Arpaci-Dusseau and Brad Chen (Eds.). USENIX Association, 163\u2013176. http:\/\/www.usenix.org\/events\/osdi10\/tech\/full_papers\/Xiong.pdf"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/3473597"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/2957319.2957377"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/3037697.3037708"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3622801","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3622801","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T16:37:04Z","timestamp":1750178224000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3622801"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,10,16]]},"references-count":51,"journal-issue":{"issue":"OOPSLA2","published-print":{"date-parts":[[2023,10,16]]}},"alternative-id":["10.1145\/3622801"],"URL":"https:\/\/doi.org\/10.1145\/3622801","relation":{},"ISSN":["2475-1421"],"issn-type":[{"type":"electronic","value":"2475-1421"}],"subject":[],"published":{"date-parts":[[2023,10,16]]},"assertion":[{"value":"2023-10-16","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}