Jurgen J. Vinju. Analysis and Transformation of Source Code by Parsing and Rewriting. PhD thesis, nov 2005.
In this thesis the subject of study is source code. More precisely, I am inter- ested in tools that help in describing, analyzing and transforming source code. The overall question is how well qualiﬁed and versatile the programming language ASF+SDF is when applied to source code analysis and trans- formation. The main technical issues that are addressed are ambiguity of context-free languages and improving two important quality attributes of analyses and transformations: conciseness and ﬁdelity. The overall result of this research is a version of the language that is bet- ter tuned to the domain of source code analysis and transformation, but is still ﬁrmly grounded on the original: a hybrid of context-free grammars and term rewriting. The results that are presented have a broad technical spectrum because they cover the entire scope of ASF+SDF. They include disambiguation by ﬁltering parse forests, the type-safe automation of tree traversal for conciseness, improvements in language design resulting in higher resolution and ﬁdelity, and better interfacing with other program- ming environments. Each solution has been validated in practice, by me and by others, mostly in the context of industrial sized case studies.