...
首页> 外文期刊>Software Engineering, IEEE Transactions on >A Comprehensive Approach to Naming and Accessibility in Refactoring Java Programs
【24h】

A Comprehensive Approach to Naming and Accessibility in Refactoring Java Programs

机译:重构Java程序中命名和可访问性的综合方法

获取原文
获取原文并翻译 | 示例
           

摘要

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.
机译:如今,重构工具的自动工具支持已广泛用于Java等主流编程语言。但是,当前的重构工具在实践中仍然非常脆弱,并且经常无法保持程序行为或可编译性。这主要是因为分析和转换源代码需要考虑使程序分析变得复杂的许多语言功能,尤其是复杂的名称查找和访问控制规则。本文介绍了J_L,它是Java程序的免查找,无访问控制的表示形式。我们提出了将Java程序转换为J_L以及反之亦然的算法,从而可以完全在J_L级别上制定重构,并依靠翻译来解决命名和可访问性问题。我们演示了复杂的重构如何在提升为J_L时变得更加强大和强大。我们的方法已使用JastAddJ编译器框架实现,并通过在广泛的实际Java应用程序套件上系统执行两次常用的重构来进行评估。评估显示,我们的工具正确处理了许多当前重构工具无法处理Java中名称绑定和可访问性的复杂规则的情况。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号