{"id":"https://openalex.org/W7125020215","doi":"https://doi.org/10.1016/j.cola.2026.101385","title":"Design pattern for reusing immutable methods in object-oriented languages","display_name":"Design pattern for reusing immutable methods in object-oriented languages","publication_year":2026,"publication_date":"2026-01-20","ids":{"openalex":"https://openalex.org/W7125020215","doi":"https://doi.org/10.1016/j.cola.2026.101385"},"language":"en","primary_location":{"id":"doi:10.1016/j.cola.2026.101385","is_oa":false,"landing_page_url":"https://doi.org/10.1016/j.cola.2026.101385","pdf_url":null,"source":{"id":"https://openalex.org/S4210239993","display_name":"Journal of Computer Languages","issn_l":"2590-1184","issn":["2590-1184","2665-9182"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Computer Languages","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5006825728","display_name":"William Flageol","orcid":"https://orcid.org/0000-0002-0999-8431"},"institutions":[{"id":"https://openalex.org/I63341726","display_name":"Universit\u00e9 du Qu\u00e9bec \u00e0 Trois-Rivi\u00e8res","ror":"https://ror.org/02xrw9r68","country_code":"CA","type":"education","lineage":["https://openalex.org/I49663120","https://openalex.org/I63341726"]}],"countries":["CA"],"is_corresponding":true,"raw_author_name":"William Flageol","raw_affiliation_strings":["Universit\u00e9 du Qu\u00e9bec \u00e0 Trois Rivi\u00e8res, QC, Canada"],"affiliations":[{"raw_affiliation_string":"Universit\u00e9 du Qu\u00e9bec \u00e0 Trois Rivi\u00e8res, QC, Canada","institution_ids":["https://openalex.org/I63341726"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5048594006","display_name":"Yann\u2010Ga\u00ebl Gu\u00e9h\u00e9neuc","orcid":"https://orcid.org/0000-0002-4361-2563"},"institutions":[{"id":"https://openalex.org/I60158472","display_name":"Concordia University","ror":"https://ror.org/0420zvk78","country_code":"CA","type":"education","lineage":["https://openalex.org/I60158472"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Yann-Ga\u00ebl Gu\u00e9h\u00e9neuc","raw_affiliation_strings":["Concordia University, QC, Canada"],"affiliations":[{"raw_affiliation_string":"Concordia University, QC, Canada","institution_ids":["https://openalex.org/I60158472"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5049966337","display_name":"Stefan Monnier","orcid":"https://orcid.org/0000-0001-7597-5273"},"institutions":[{"id":"https://openalex.org/I70931966","display_name":"Universit\u00e9 de Montr\u00e9al","ror":"https://ror.org/0161xgx34","country_code":"CA","type":"education","lineage":["https://openalex.org/I70931966"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Stefan Monnier","raw_affiliation_strings":["Universit\u00e9 de Montr\u00e9al, QC, Canada"],"affiliations":[{"raw_affiliation_string":"Universit\u00e9 de Montr\u00e9al, QC, Canada","institution_ids":["https://openalex.org/I70931966"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5038363863","display_name":"Mourad Badri","orcid":"https://orcid.org/0000-0001-9034-9713"},"institutions":[{"id":"https://openalex.org/I63341726","display_name":"Universit\u00e9 du Qu\u00e9bec \u00e0 Trois-Rivi\u00e8res","ror":"https://ror.org/02xrw9r68","country_code":"CA","type":"education","lineage":["https://openalex.org/I49663120","https://openalex.org/I63341726"]}],"countries":["CA"],"is_corresponding":false,"raw_author_name":"Mourad Badri","raw_affiliation_strings":["Universit\u00e9 du Qu\u00e9bec \u00e0 Trois Rivi\u00e8res, QC, Canada"],"affiliations":[{"raw_affiliation_string":"Universit\u00e9 du Qu\u00e9bec \u00e0 Trois Rivi\u00e8res, QC, Canada","institution_ids":["https://openalex.org/I63341726"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":4,"corresponding_author_ids":["https://openalex.org/A5006825728"],"corresponding_institution_ids":["https://openalex.org/I63341726"],"apc_list":{"value":2170,"currency":"USD","value_usd":2170},"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":{"value":0.22003874,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":"86","issue":null,"first_page":"101385","last_page":"101385"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.6093999743461609,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.6093999743461609,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.10899999737739563,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T12490","display_name":"Software Engineering and Design Patterns","score":0.07109999656677246,"subfield":{"id":"https://openalex.org/subfields/3303","display_name":"Development"},"field":{"id":"https://openalex.org/fields/33","display_name":"Social Sciences"},"domain":{"id":"https://openalex.org/domains/2","display_name":"Social Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/immutability","display_name":"Immutability","score":0.7914000153541565},{"id":"https://openalex.org/keywords/scalability","display_name":"Scalability","score":0.6078000068664551},{"id":"https://openalex.org/keywords/software-design-pattern","display_name":"Software design pattern","score":0.44940000772476196},{"id":"https://openalex.org/keywords/language-construct","display_name":"Language construct","score":0.4345000088214874},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.4339999854564667},{"id":"https://openalex.org/keywords/code-reuse","display_name":"Code reuse","score":0.42899999022483826},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4115000069141388},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.3686999976634979},{"id":"https://openalex.org/keywords/design-pattern","display_name":"Design pattern","score":0.36059999465942383}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8399999737739563},{"id":"https://openalex.org/C2776126399","wikidata":"https://www.wikidata.org/wiki/Q3942906","display_name":"Immutability","level":3,"score":0.7914000153541565},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7574999928474426},{"id":"https://openalex.org/C48044578","wikidata":"https://www.wikidata.org/wiki/Q727490","display_name":"Scalability","level":2,"score":0.6078000068664551},{"id":"https://openalex.org/C146054899","wikidata":"https://www.wikidata.org/wiki/Q181156","display_name":"Software design pattern","level":3,"score":0.44940000772476196},{"id":"https://openalex.org/C48859967","wikidata":"https://www.wikidata.org/wiki/Q6486712","display_name":"Language construct","level":2,"score":0.4345000088214874},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.4339999854564667},{"id":"https://openalex.org/C2778583558","wikidata":"https://www.wikidata.org/wiki/Q771245","display_name":"Code reuse","level":3,"score":0.42899999022483826},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4115000069141388},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.3686999976634979},{"id":"https://openalex.org/C14501506","wikidata":"https://www.wikidata.org/wiki/Q5253831","display_name":"Design pattern","level":2,"score":0.36059999465942383},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.3538999855518341},{"id":"https://openalex.org/C101317890","wikidata":"https://www.wikidata.org/wiki/Q940053","display_name":"Software maintenance","level":4,"score":0.3418999910354614},{"id":"https://openalex.org/C88482812","wikidata":"https://www.wikidata.org/wiki/Q6453666","display_name":"Modular programming","level":2,"score":0.33889999985694885},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.3303999900817871},{"id":"https://openalex.org/C206588197","wikidata":"https://www.wikidata.org/wiki/Q846574","display_name":"Reuse","level":2,"score":0.3255000114440918},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3147999942302704},{"id":"https://openalex.org/C68859911","wikidata":"https://www.wikidata.org/wiki/Q1503724","display_name":"Pattern matching","level":2,"score":0.31049999594688416},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.3027999997138977},{"id":"https://openalex.org/C52913732","wikidata":"https://www.wikidata.org/wiki/Q857102","display_name":"Software design","level":4,"score":0.29910001158714294},{"id":"https://openalex.org/C529173508","wikidata":"https://www.wikidata.org/wiki/Q638608","display_name":"Software development","level":3,"score":0.2872999906539917},{"id":"https://openalex.org/C149091818","wikidata":"https://www.wikidata.org/wiki/Q2429814","display_name":"Software system","level":3,"score":0.2870999872684479},{"id":"https://openalex.org/C77618280","wikidata":"https://www.wikidata.org/wiki/Q1155772","display_name":"Scheme (mathematics)","level":2,"score":0.28299999237060547},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.28299999237060547},{"id":"https://openalex.org/C190883126","wikidata":"https://www.wikidata.org/wiki/Q132874","display_name":"Lisp","level":2,"score":0.2777999937534332},{"id":"https://openalex.org/C11164408","wikidata":"https://www.wikidata.org/wiki/Q18657800","display_name":"Second-generation programming language","level":4,"score":0.27649998664855957},{"id":"https://openalex.org/C76518257","wikidata":"https://www.wikidata.org/wiki/Q271680","display_name":"Software framework","level":5,"score":0.2660999894142151},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.26339998841285706},{"id":"https://openalex.org/C94922259","wikidata":"https://www.wikidata.org/wiki/Q33215","display_name":"Constructed language","level":2,"score":0.2531000077724457},{"id":"https://openalex.org/C19024347","wikidata":"https://www.wikidata.org/wiki/Q211496","display_name":"High-level programming language","level":3,"score":0.2508000135421753}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1016/j.cola.2026.101385","is_oa":false,"landing_page_url":"https://doi.org/10.1016/j.cola.2026.101385","pdf_url":null,"source":{"id":"https://openalex.org/S4210239993","display_name":"Journal of Computer Languages","issn_l":"2590-1184","issn":["2590-1184","2665-9182"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310320990","host_organization_name":"Elsevier BV","host_organization_lineage":["https://openalex.org/P4310320990"],"host_organization_lineage_names":["Elsevier BV"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Journal of Computer Languages","raw_type":"journal-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":15,"referenced_works":["https://openalex.org/W1995008247","https://openalex.org/W2116304133","https://openalex.org/W2152759860","https://openalex.org/W2221746995","https://openalex.org/W2537056246","https://openalex.org/W2572482456","https://openalex.org/W2963081059","https://openalex.org/W3005523836","https://openalex.org/W3020617474","https://openalex.org/W4230681750","https://openalex.org/W4254691308","https://openalex.org/W4256107736","https://openalex.org/W4365456905","https://openalex.org/W4399397076","https://openalex.org/W4404355908"],"related_works":[],"abstract_inverted_index":null,"counts_by_year":[],"updated_date":"2026-01-26T23:06:41.788003","created_date":"2026-01-21T00:00:00"}
