|
Boost : |
From: Andrew Sutton (asutton_at_[hidden])
Date: 2007-09-03 18:41:53
> The standard definitions of Refactoring typically does include
> verifying and ensuring that renames a) properly obey scope and other
> language rules and b) don't conflict with other names in any other
> scope. Refactoring does require processing multiple translation
> units in most cases, I'm not sure why you'd assume it doesn't.
From the definition... from a practical standpoint its easier to
allow the changes and let the compiler catch the errors :) I'm
fairly certain that there aren't any implementations that actually
make guarantees implied in the definition (I'm 95% sure of research
prototypes and 50% for industry implementations). Partially automated
refactorings are better than no refactorings. I equate it to the
study of deadlock detection and prevention in operating systems. It's
great in theory, but its just not practical.
> Note specifically that 'sed' does not qualify as a refactoring tool -
> you have to do a lot more semantic analysis of the program to do
> refactoring safely.
True, neither does grep qualify as a source code analysis tool, but
damn it's useful for searching thru text.
Hopefully, I'll have some time this semester to look a lot more
closely at llvm/clang. I have a feeling that it would still provide
a great platform for ad-hoc analysis and transformation.
Andrew Sutton
asutton_at_[hidden]
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk