Michael J. Coblenz, Joshua Sunshine, B. Myers, Sam Weber, F. Shull
{"title":"Comparing transitive to non-transitive object immutability","authors":"Michael J. Coblenz, Joshua Sunshine, B. Myers, Sam Weber, F. Shull","doi":"10.1145/2846680.2846688","DOIUrl":null,"url":null,"abstract":"Many programming languages provide features that express restrictions on which data structures can be changed. For example, C++ includes const and Java includes final. Languages that are in widespread use typically provide non-transitive immutability: when a reference is specified to be immutable or read-only, the object referenced can still reference mutable structures. However, some languages, particularly research languages, provide transitive immutability, in which immutable objects can only reference other immutable objects (with some exceptions). We are designing a lab study of programmers to elucidate the differences in programmer effectiveness between these two approaches.","PeriodicalId":213941,"journal":{"name":"Proceedings of the 6th Workshop on Evaluation and Usability of Programming Languages and Tools","volume":"15 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2015-10-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 6th Workshop on Evaluation and Usability of Programming Languages and Tools","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2846680.2846688","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Many programming languages provide features that express restrictions on which data structures can be changed. For example, C++ includes const and Java includes final. Languages that are in widespread use typically provide non-transitive immutability: when a reference is specified to be immutable or read-only, the object referenced can still reference mutable structures. However, some languages, particularly research languages, provide transitive immutability, in which immutable objects can only reference other immutable objects (with some exceptions). We are designing a lab study of programmers to elucidate the differences in programmer effectiveness between these two approaches.