One ongoing research topic at the University of Illinois addresses language-independent techniques for rapidly building refactoring engines. We will describe how the results of this research complement the Eclipse platform and the Eclipse Language Toolkit (LTK), collectively providing a powerful framework for building production-quality refactoring tools in remarkably little time.
As a proof of concept, over the course of the talk, we will develop an Eclipse-based refactoring tool for a toy language, starting from scratch.
We will begin by using a tool called Ludwig to generate much of the language-specific refactoring infrastructure -- including a parser and rewritable abstract syntax tree -- from an annotated grammar. We will illustrate how grammars are annotated with an abstract syntax specification, and then show how to develop source code transformations using the generated infrastructure. Finally, we will integrate these transformations into Eclipse, contributing actions to an appropriate editor and using the LTK to construct a GUI and provide Undo support.
To conclude, we will describe our experience using this framework to develop the refactoring engine in Photran, the Eclipse feature supporting Fortran development. We will also discuss future work and describe some possible points for collaboration with other Eclipse developers.
Jeff Overbey (http://jeff.over.bz) is a PhD student at the University of Illinois at Urbana-Champaign. He is the developer of Ludwig and a committer on Photran, the Eclipse Technology project providing an IDE and refactoring support for Fortran.