返回
A Comprehensive Approach to Naming and Accessibility in Refactoring Java Programs
DOI:10.1109/TSE.2012.13.png)
摘要
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.
Keyword:
Restructuring
reverse engineering
and reengineering
object-oriented languages
Java
AI总结
对已上传原文的论文进行重点信息的提取,主要内容包括:简要概述、研究摘要、背景介绍、关键亮点、图文解析、展望与总结。
期刊
IF:
5.6
论文数:
2.9K
被引数:
1.1W
机构
引用论文
Transplantation of neural tissues in the brains of laboratory mammals: Technical details and comments
Experientia
IF0
Phytic acid/tannic acid reinforced hydrogels with ultra-high strength for human motion monitoring and arrays
Soft Matter
IF0

