Exploring language support for immutability

29Citations
Citations of this article
58Readers
Mendeley users who have this article in their library.

Abstract

Programming languages can restrict state change by preventing it entirely (immutability) or by restricting which clients may modify state (read-only restrictions). The bene fits of immutability and read-only restrictions in software structures have been long-argued by practicing software engineers, researchers, and programming language designers. However, there are many proposals for language mechanisms for restricting state change, with a remarkable diversity of techniques and goals, and there is little empirical data regarding what practicing software engineers want in their tools and what would benefit them. We systematized the large collection of techniques used by programming languages to help programmers prevent undesired changes in state. We interviewed expert software engineers to discover their expectations and requirements, and found that important requirements, such as expressing immutability constraints, were not reected in features available in the languages participants used. The interview results informed our design of a new language extension for specifying immutability in Java. Through an iterative, participatory design process, we created a tool that reects requirements from both our interviews and the research literature.

Cite

CITATION STYLE

APA

Coblenz, M., Sunshine, J., Aldrich, J., Myers, B., Weber, S., & Shull, F. (2016). Exploring language support for immutability. In Proceedings - International Conference on Software Engineering (Vol. 14-22-May-2016, pp. 736–747). IEEE Computer Society. https://doi.org/10.1145/2884781.2884798

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free