Resolving the Java Representation Exposure Problem with an AST-Based Deep Copy and Flexible Alias Ownership System
-
Published:2024-01-14
Issue:2
Volume:13
Page:350
-
ISSN:2079-9292
-
Container-title:Electronics
-
language:en
-
Short-container-title:Electronics
Author:
Zhuang Yung-Yu1ORCID, Kuo Wei1ORCID, Tseng Shang-Chun1ORCID
Affiliation:
1. Department of Computer Science and Information Engineering, National Central University, Taoyuan 32001, Taiwan
Abstract
Encapsulation is a critical factor in object-oriented programming languages and design patterns. Nevertheless, programs written in languages like Java may encounter broken encapsulation due to the lack of sufficient supply for ownership and immutability. As a result, this paper introduces SlimeJava, an ownership system extension based on abstract syntax trees and annotation utilization of Java that aims to help programmers prevent representation exposure. We show the features of the proposal with a motivating example using the Memento pattern. We then discuss how the utilization of annotations realizes ownership and why it is effective in avoiding representation exposure issues by comparing it with existing approaches. In the end, a quantitative performance evaluation was conducted to prove that SlimeJava does not cause a substantial overhead in execution time compared to native Java.
Funder
National Science and Technology Council
Reference69 articles.
1. Noble, J., Vitek, J., and Potter, J. (1998, January 20–24). Flexible alias protection. Proceedings of the ECOOP’98—Object-Oriented Programming: 12th European Conference, Brussels, Belgium. Proceedings 12. 2. Clarke, D.G., Potter, J.M., and Noble, J. (1998, January 18–22). Ownership types for flexible alias protection. Proceedings of the 13th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, New York, NY, USA. 3. Detlefs, D.L., Leino, K.R.M., and Nelson, G. (1998). Wrestling with Rep Exposure, Digital, Systems Research Center. 4. Clarke, D.G., Noble, J., and Potter, J. (1999, January 14–18). Overcoming representation exposure. Proceedings of the Workshop on Object-Oriented Technology, Lisbon, Portugal. 5. Clarke, D.G. (2002). Object Ownership & Containment, University of New South Wales.
|
|