Building an automated refactoring tool for a new programming language is an expensive and time-consuming process. Usually, only a small fraction of the tool's code is devoted to refactoring transformations; most of the code is devoted to supporting components. This dissertation shows that much of this support code can be placed in a language-independent library or code generator, significantly reducing the amount of code a tool developer must write to build a refactoring tool for a new language. Part I focuses on the syntactic components: the lexer/parser, abstract syntax tree (AST), and source code manipulation infrastructure. Compiler writers have been generating lexers and parsers from grammars for years. However, this dissertatio...
Tool support for refactoring code written in mainstream languages such as C and C is currently lacki...
Code refactoring is the process of changing the internal structure of the program without changing i...
Refactorings are program transformations that preserve the observable behavior of the program. The r...
Building an automated refactoring tool for a new programming language is an expensive and time-consu...
Refactoring tools allow the programmer to pretend they are working with a richer language where the ...
Refactoring, the process of changing the structure of code without changing its behavior, can be sem...
Although there is much research advancing state-of-art of program transformation tools, their applic...
Poorly structured code is hard to maintain and read. Refactoring can improve the code structure and ...
Refactorings are structured changes to existing software that leave its externally observable behavi...
AbstractThe number of possible refactorings is unlimited, so no tool vendor will ever be able to pro...
We present a framework for making a refactoring tool extensible, allowing users to define refactorin...
The paper surveys how software tools such as refactoring systems can be validated, and introduces a ...
Refactoring is the process of changing the design of a program without changing what it does. Typica...
Software rapidly evolves. A refactoring is a code change that preserves the behavior of the program....
Few pieces of software are ideal. Requirements may change during design, development or even post de...
Tool support for refactoring code written in mainstream languages such as C and C is currently lacki...
Code refactoring is the process of changing the internal structure of the program without changing i...
Refactorings are program transformations that preserve the observable behavior of the program. The r...
Building an automated refactoring tool for a new programming language is an expensive and time-consu...
Refactoring tools allow the programmer to pretend they are working with a richer language where the ...
Refactoring, the process of changing the structure of code without changing its behavior, can be sem...
Although there is much research advancing state-of-art of program transformation tools, their applic...
Poorly structured code is hard to maintain and read. Refactoring can improve the code structure and ...
Refactorings are structured changes to existing software that leave its externally observable behavi...
AbstractThe number of possible refactorings is unlimited, so no tool vendor will ever be able to pro...
We present a framework for making a refactoring tool extensible, allowing users to define refactorin...
The paper surveys how software tools such as refactoring systems can be validated, and introduces a ...
Refactoring is the process of changing the design of a program without changing what it does. Typica...
Software rapidly evolves. A refactoring is a code change that preserves the behavior of the program....
Few pieces of software are ideal. Requirements may change during design, development or even post de...
Tool support for refactoring code written in mainstream languages such as C and C is currently lacki...
Code refactoring is the process of changing the internal structure of the program without changing i...
Refactorings are program transformations that preserve the observable behavior of the program. The r...