Skip to content

November 20, 2008

3

ESE: Building Refactoring Tools with LTK and Ludwig

Jeffrey Overbey talked about building refactoring tools using the LTK and his research work "Ludwig".

I guess you all agree with me that refactoring support is crucial for any programing language, as you need to restructure your code rom time to time.

Although Eclipse LTK offers a decent API and UI to realize refactoring tools, all the heavy lifting (parsing the text in question, analyzing the AST, creating rewrite rules) is left to you.

Jeff's research tool Ludwig can help to derive refactoring support from a BNF-style grammar very easily. Ludwig essentially derives a lexer/parser from the grammar and provides an interface to the AST which gets constructed by the parser. Which gives you the chance to walk / visit the AST and (partially) rewrite the AST.

I really enjoyed Jeff's presentation style. He used a set of slides and pre-recorded screenvideos to drive his talk. I think this is great idea, as it basically eliminates any problems you might run into if you do a live demo. Plus, it gives the presenter the chance to face the audience while demoing, instead of mumbling into the screen :-)

Eclipse Summit Europe

Thanks for reading this post. Follow me on twitter here to be notified about updates and other posts I write. Or, subscribe to my RSS feed here

Fork me on GitHub
Read more from Conferences, Eclipse
  • http://www.1160pm.net/?p=78 11:60 p.m. » Blog Archive » Model-Based UIs and Refactorings at the ESE 2008

    [...] towards the audience made the rather theoretic topic “refactoring” an entertaining joy (Read Peter’s Post about this). Second, Jeff concentrates on topics where Xtext will advance in the near future, too. On top of [...]

  • Guy Philipp Bollbach

    Hey Peter,
    there is a very nice screen recording tool that allows you to “post process” a recorded screencast to add things like zooming and highlighting. It is very easy to use and… Mac only:

    http://www.flip4mac.com/screenflow.htm

  • Eddy

    What a nice screen!