{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,8,23]],"date-time":"2025-08-23T00:40:11Z","timestamp":1755909611140,"version":"3.44.0"},"publisher-location":"New York, NY, USA","reference-count":15,"publisher":"ACM","license":[{"start":{"date-parts":[[2023,7,5]],"date-time":"2023-07-05T00:00:00Z","timestamp":1688515200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100006374","name":"Fonds de recherche du Qu\u00e9bec \u2013 Nature et technologies","doi-asserted-by":"publisher","award":["273582"],"award-info":[{"award-number":["273582"]}],"id":[{"id":"10.13039\/501100006374","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2023,7,5]]},"DOI":"10.1145\/3628034.3628040","type":"proceedings-article","created":{"date-parts":[[2024,2,5]],"date-time":"2024-02-05T18:09:11Z","timestamp":1707156551000},"page":"1-9","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Design Pattern for Reusing Immutable Methods in Object-Oriented Languages"],"prefix":"10.1145","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-0999-8431","authenticated-orcid":false,"given":"William","family":"Flageol","sequence":"first","affiliation":[{"name":"D\u00e9partement de math\u00e9matiques et informatique, Universit\u00e9 du Qu\u00e9bec \u00e0 Trois-Rivi\u00e8res, Canada and Computer Science and Software Engineering, Concordia University, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-4361-2563","authenticated-orcid":false,"given":"Yann-Ga\u00ebl","family":"Gu\u00e9h\u00e9neuc","sequence":"additional","affiliation":[{"name":"Computer Science and Software Engineering, Concordia University, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-9034-9713","authenticated-orcid":false,"given":"Mourad","family":"Badri","sequence":"additional","affiliation":[{"name":"D\u00e9partement de math\u00e9matiques et informatique, Universit\u00e9 du Qu\u00e9bec \u00e0 Trois-Rivi\u00e8res, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7597-5273","authenticated-orcid":false,"given":"Stefan","family":"Monnier","sequence":"additional","affiliation":[{"name":"D\u00e9partement d'informatique et de recherche op\u00e9rationnelle, Universit\u00e9 de Montr\u00e9al, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2024,2,5]]},"reference":[{"key":"e_1_3_2_1_1_1","unstructured":"H. Abelson G.\u00a0J. Sussman and J. Sussman. 1984. Structure and Interpretation of Computer Programs. MIT Press."},{"volume-title":"Effective Java","author":"Bloch J.","key":"e_1_3_2_1_2_1","unstructured":"J. Bloch. 2008. Effective Java, Second Edition. Addison-Wesley."},{"key":"e_1_3_2_1_3_1","volume-title":"Capabilities for Sharing. In ECOOP 2001 \u2014 Object-Oriented Programming, J\u00f8rgen\u00a0Lindskov Knudsen (Ed.). Springer Berlin Heidelberg","author":"Boyland John","year":"2001","unstructured":"John Boyland, James Noble, and William Retert. 2001. Capabilities for Sharing. In ECOOP 2001 \u2014 Object-Oriented Programming, J\u00f8rgen\u00a0Lindskov Knudsen (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 2\u201327."},{"volume-title":"Glacier: Transitive Class Immutability for Java. In 39th International Conference on Software Engineering. IEEE\/ACM.","author":"Coblenz M.","key":"e_1_3_2_1_4_1","unstructured":"M. Coblenz, W. Nelson, J. Aldrich, B. Myers, and J. Sunshine. 2017. Glacier: Transitive Class Immutability for Java. In 39th International Conference on Software Engineering. IEEE\/ACM."},{"key":"e_1_3_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/2884781.2884798"},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"crossref","unstructured":"J. Dolado M. Harman M. Otero and L. Hu. 2003. An empirical investigation of the influence of a type of side effects on program comprehension. In IEEE Transactions on Softare Engineering Vol.\u00a029. 665\u2013670.","DOI":"10.1109\/TSE.2003.1214329"},{"key":"e_1_3_2_1_7_1","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"Gamma Erich","year":"1994","unstructured":"Erich Gamma, Richard Helm, Ralph Johnson, and John\u00a0M. Vlissides. 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional."},{"key":"e_1_3_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/2398857.2384619"},{"key":"e_1_3_2_1_9_1","volume-title":"Immutability changes everything. 59, 1","author":"Helland P.","year":"2016","unstructured":"P. Helland. 2016. Immutability changes everything. 59, 1 (2016), 64\u201370."},{"key":"e_1_3_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.372"},{"key":"e_1_3_2_1_11_1","volume-title":"A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems","author":"Liskov H.","year":"1994","unstructured":"Barbara\u00a0H. Liskov and Jeannette\u00a0M. Wing. 1994. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems (1994), 1811\u2013\u20131841."},{"key":"e_1_3_2_1_12_1","first-page":"1","article-title":"Techniques for Automatic Memoization with Applications to Context-Free","volume":"17","author":"Norvig Peter","year":"1991","unstructured":"Peter Norvig. 1991. Techniques for Automatic Memoization with Applications to Context-Free Parsing. Comput. Linguist. 17, 1 (mar 1991), 91\u201398.","journal-title":"Parsing. Comput. Linguist."},{"volume-title":"Usability Implications of Requiring Paramters in Objects\u2019 Constructors. In International Conference on Software Engineering.","author":"Stylos J.","key":"e_1_3_2_1_13_1","unstructured":"J. Stylos and S. Clarke. 2007. Usability Implications of Requiring Paramters in Objects\u2019 Constructors. In International Conference on Software Engineering."},{"key":"e_1_3_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1328438.1328463"},{"volume-title":"6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering. ACM, 75\u201384.","author":"Zibin Y.","key":"e_1_3_2_1_15_1","unstructured":"Y. Zibin, A. Potanin, M. Ali, S. Artzi, A. Kielun, and M.\u00a0D. Ernst. 2007. Object and reference immutability using Java generics. In 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering. ACM, 75\u201384."}],"event":{"name":"EuroPLoP 2023: 28th European Conference on Pattern Languages of Programs","acronym":"EuroPLoP 2023","location":"Irsee Germany"},"container-title":["Proceedings of the 28th European Conference on Pattern Languages of Programs"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3628034.3628040","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3628034.3628040","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,8,22]],"date-time":"2025-08-22T23:59:23Z","timestamp":1755907163000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3628034.3628040"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,7,5]]},"references-count":15,"alternative-id":["10.1145\/3628034.3628040","10.1145\/3628034"],"URL":"https:\/\/doi.org\/10.1145\/3628034.3628040","relation":{},"subject":[],"published":{"date-parts":[[2023,7,5]]},"assertion":[{"value":"2024-02-05","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}