Specifying and implementing refactorings

Specifying and implementing refactorings
复制标题

指定和实施重构

DOI:
10.1145/1932682.1869485
复制
发表时间:
2010
影响因子:
--
通讯作者:
Schaefer M
Schaefer M
中科院分区:
--
文献类型:
--
作者:
Schaefer M

文献摘要

参考文献

被引文献

相似文献

面向对象语言(如Java)的现代IDE支持一组简单的自动重构,这些重构的行为很容易直观地描述。然而,要详细说明它们的行为却令人惊讶地困难。特别是,流行的基于前置条件的方法往往会产生有点笨拙的描述,如果考虑到对象语言的高级功能。这导致重构实现变得复杂、难以理解,甚至更难维护,然而这些实现本身是许多重构的唯一精确的“规范”。在过去的工作中,我们提倡一种不同的方法,基于几个互补的依赖关系的概念,指导实现,并在结构上的概念microrefactorings。我们在这项工作中,这些概念是强大的,足以提供高层次的规范,在Eclipse中实现的许多重构。这些规范足够精确,可以作为这些重构的净室重新实现的基础,这种重新实现非常紧凑,但在特性方面与Eclipse相匹配,在正确性方面优于Eclipse。
Modern IDEs for object-oriented languages like Java provide support for a basic set of simple automated refactorings whose behaviour is easy to describe intuitively. It is, however, surprisingly difficult to specify their behaviour in detail. In particular, the popular precondition-based approach tends to produce somewhat unwieldy descriptions if advanced features of the object language are taken into account. This has resulted in refactoring implementations that are complex, hard to understand, and even harder to maintain, yet these implementations themselves are the only precise "specification" of many refactorings. We have in past work advocated a different approach based on several complementary notions of dependencies that guide the implementation, and on the concept of microrefactorings that structure it. We show in this work that these concepts are powerful enough to provide high-level specifications of many of the refactorings implemented in Eclipse. These specifications are precise enough to serve as the basis of a clean-room reimplementation of these refactorings that is very compact, yet matches Eclipse's for features and outperforms it in terms of correctness.
使用类型约束进行重构
DOI: 10.1145/1961204.1961205
发表时间: 2011
期刊: ACM Trans. Program. Lang. Syst.
影响因子: --
作者:
F. Tip;Robert M. Fuhrer;Adam Kiezun;Michael D. Ernst;Ittai Balaban;B. D. Sutter
通讯作者: B. D. Sutter
DOI: --
发表时间: 2000
期刊: International Conference on Compiler Construction
影响因子: --
作者:
João Saraiva;Doaitse Swierstra;M. Kuiper
通讯作者: M. Kuiper
DOI: 10.1145/1449764.1449787
发表时间: 2008-10
期刊: Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
影响因子: --
作者:
Max Schäfer;Torbjörn Ekman;O. Moor
通讯作者: Max Schäfer;Torbjörn Ekman;O. Moor
DOI: --
发表时间: 2006
期刊: 2006 Sixth IEEE International Workshop on Source Code Analysis and Manipulation
影响因子: --
作者:
A. Garrido;J. Meseguer
通讯作者: J. Meseguer
属性语法的增量评估及其在语法导向编辑器中的应用
DOI: 10.1145/567532.567544
发表时间: 1981
期刊: Proceedings of the 36th International Conference on Software Engineering
影响因子: --
作者:
A. Demers;T. Reps;T. Teitelbaum
通讯作者: T. Teitelbaum