Identify Language Agnostic Concepts for Legacy Code Rejuvenation
Master Project of Hendy Liang


Abstract

Refactoring legacy systems is essential to maintain and modernize aging codebases, but traditional refactoring tools are often limited by language specificity and lack extensibility. This thesis introduces property-based Abstract Syntax Trees (ASTs), a flexible intermediate representation aimed at enhancing the language-parametric capabilities of refactoring tools. By leveraging Tree-Sitter, a parser generator that creates parsers that produce generic, property-based ASTs, this research adapts Renaissance, an existing industrial refactoring tool, to support multi-language extensibility with minimal additional effort. The adapted tool demonstrates equivalent functionality across C++, Java, and Python, maintaining features such as pattern matching, code rewriting, and placeholder handling. Experiments were performed, including experiments with exercises on an open-source repository, in order to highlight the practical benefits, extensibility, and limitations of this approach. This adaptation aims to showcase the feasibility of using property-based ASTs in enabling language-parametric tooling. This work lays the foundation for more centralized, cost-effective, and scalable tool development for industrial software refactoring.

Thesis

https://repository.tudelft.nl/record/uuid:6e143a35-32b8-4f7e-928e-52057ea57566


Identify Language Agnostic Concepts for Legacy Code Rejuvenation

Student: Hendy Liang
Supervisor(s): Luka Miljak, Rosilde Corvino, Casper Bach Poulsen, Jesper Cockx