Personal tools
You are here: Home Publications JunGL: a Scripting Language for Refactoring
Document Actions

JunGL: a Scripting Language for Refactoring

  • In: Dieter Rombach and Mary Lou Soffa (editors), 28th International Conference on Software Engineering, Shanghai, May 2006. pp. 172-181
  • Authors: Mathieu Verbaere, Ran Ettinger and Oege de Moor
  • Abstract:

    Refactorings are behaviour-preserving program transformations, typically for improving the structure of existing code. A few of these transformations have been mechanised in interactive development environments. Many more refactorings have been proposed, and it would be desirable for programmers to script their own refactorings. Implementing such source-to-source transformations, however, is quite complex: even the most sophisticated development environments contain significant bugs in their refactoring tools. We present a domain-specific language for refactoring, named JunGL. It manipulates a graph representation of the program: all information about the program, including ASTs for its compilation units, variable binding, control flow and so on is represented in a uniform graph format. The language is a hybrid of a functional language (in the style of ML) and a logic query language (akin to Datalog). JunGL furthermore has a notion of demand-driven evaluation for constructing computed information in the graph, such as control flow edges. Borrowing from earlier work on the specification of compiler optimisations, JunGL uses so-called `path queries' to express dataflow properties. We motivate the design of JunGL via a number of non-trivial refactorings, and describe its implementation on the .NET platform.

  • Full text: PDF
  • Talk: slides in PDF
  • Bibtex:
     @inproceedings{icse06jungl,
       author = {Mathieu Verbaere and Ran Ettinger and Oege de Moor},
       title = {JunGL: a Scripting Language for Refactoring},
       booktitle = {ICSE'06: Proceedings of the 28th International Conference on Software Engineering},
       editor = "Dieter Rombach and Mary Lou Soffa", 
       year = {2006},
       isbn = {1-59593-375-1},
       pages = {172--181},
       location = {Shanghai, China},
       doi = {http://doi.acm.org/10.1145/1134285.1134311},
       publisher = {ACM Press},
       address = {New York, NY, USA},
     }
    

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: