Resolving the Java Representation Exposure Problem with an AST-Based Deep Copy and Flexible Alias Ownership System

Yung Yu Zhuang, Wei Kuo, Shang Chun Tseng

Research output: Contribution to journalArticlepeer-review

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.

Original languageEnglish
Article number350
JournalElectronics (Switzerland)
Volume13
Issue number2
DOIs
StatePublished - Jan 2024

Keywords

  • design pattern
  • encapsulation
  • immutability
  • Java
  • ownership
  • representation exposure

Fingerprint

Dive into the research topics of 'Resolving the Java Representation Exposure Problem with an AST-Based Deep Copy and Flexible Alias Ownership System'. Together they form a unique fingerprint.

Cite this