arrow
Return

A Comprehensive Approach to Naming and Accessibility in Refactoring Java Programs

delete2012-11-01
delete14
PRE
AI
M
Max Schaefer *
A
Andreas Thies
F
Friedrich Steimann
F
Frank Tip
DOI:10.1109/TSE.2012.13delete
deleteOriginal
deleteShare
deleteSave
Abstract

Abstract

En 中文
Automated tool support for refactoring is now widely available for mainstream programming languages such as Java. However, current refactoring tools are still quite fragile in practice and often fail to preserve program behavior or compilability. This is mainly because analyzing and transforming source code requires consideration of many language features that complicate program analysis, in particular intricate name lookup and access control rules. This paper introduces J(L), a lookup-free, access control-free representation of Java programs. We present algorithms for translating Java programs into J(L) and vice versa, thereby making it possible to formulate refactorings entirely at the level of J(L) and to rely on the translations to take care of naming and accessibility issues. We demonstrate how complex refactorings become more robust and powerful when lifted to J(L). Our approach has been implemented using the JastAddJ compiler framework, and evaluated by systematically performing two commonly used refactorings on an extensive suite of real-world Java applications. The evaluation shows that our tool correctly handles many cases where current refactoring tools fail to handle the complex rules for name binding and accessibility in Java.
Keywords:
Restructuring
reverse engineering
and reengineering
object-oriented languages
Java

Journal

IEEE Transactions on Software Engineering cover
IEEE Transactions on Software Engineering
IF:
5.6
Papers:
2.9K
Citations:
1.1W

Organization

F
fern university hagen
Scholars:
639
Papers: 640
Citations: 0
I
international business machines (ibm)
Scholars:
5.7K
Papers: 4.5K
Citations: 4
I
ibm usa
Scholars:
1.4K
Papers: 1.0K
Citations: 0
researcher View more organizations
Cited Papers

Cited Papers

errShare
errSave
errShare
errSave
Understanding, Defining, and Measuring State Capacity in India
err2015-10-01
err0
PREAI
errNafisa Akbar; Susan L. Ostermann
errShare
errSave
Length Biases in Single-Cell RNA Sequencing of pre-mRNA
err
IF0
err2021-07-31
err0
errOAAI
errGennady Gorin; Lior Pachter
errShare
errSave
Phytic acid/tannic acid reinforced hydrogels with ultra-high strength for human motion monitoring and arrays
err2024-01-01
err0
PREAI
errJiegao Xie; Yafei Qin; Yu Zeng; Ruibo Yuan; Xinyu Lu; Xiaojing Yang; Erjiong Wei; Chenkai Cui
errShare
errSave
Making Program Refactoring Safer
err2010-07-01
err72
PREAI
errSoares, Gustavo; Gheyi, Rohit; Serey, Dalton; Massoni, Tiago
errShare
errSave
Crime and Development in the Global South
err2018-01-13
err0
PREAI
errJarrett Blaustein; Nathan W. Pino; Graham Ellison
errShare
errSave
researcher View more