Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
The Java Language Specification
The Java Language Specification
Reverse Engineering and Design Recovery: A Taxonomy
IEEE Software
Fortran: Automatic Coding System for the IBM 704 EDPM
Fortran: Automatic Coding System for the IBM 704 EDPM
Languages evolve too! Changing the Software Time Scale
IWPSE '05 Proceedings of the Eighth International Workshop on Principles of Software Evolution
How do APIs evolve? A story of refactoring: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice - IEEE International Conference on Software Maintenance (ICSM2005)
Program refactoring in the presence of preprocessor directives
Program refactoring in the presence of preprocessor directives
Automated testing of refactoring engines
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Refactoring sequential Java code for concurrency via concurrent libraries
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
CC'13 Proceedings of the 22nd international conference on Compiler Construction
Upgrading fortran source code using automatic refactoring
Proceedings of the 2013 ACM workshop on Workshop on refactoring tools
Hi-index | 0.00 |
Successful programming languages change as they age. They tend to become more complex, and eventually some features become outdated or are rarely used. Programming tools for these languages become more complex as well, since they have to support archaic features. Old programs are hard to maintain, since these archaic features are unfamiliar to modern programmers. These problems can be solved by refactoring tools that can transform programs to use the modern form. We show that refactoring tools can ease the cost of program evolution by examining the evolution of two languages, Fortran and Java, and showing that each change corresponds to an automatable refactoring.