William G. Griswold and Darren C. Atkinson, “A syntax-directed tool for program understanding and transformation,” in Proceedings of the 4th Systems Reengineering Technology Workshop, pp. 274–282, February 1994.

Abstract

Software maintenance is often too expensive. Part of the problem is that the repeated modifications of a software system degrade its structure, making it difficult to understand and modify. Semantically-rich techniques can help restore the structure of a system, but they may require concurrency analysis, timing analysis, or dependence analysis on pointers, which are difficult to implement efficiently. We propose a fast, programmable tool that can perform syntactically-oriented text processing tasks for use in program understanding and transformation. Because our tool is syntactically-oriented, the tool user must find ways to discover the required semantic information. However, we believe that syntactic information complemented by design and domain knowledge is often sufficient to obtain the needed semantic information. However, to do so may entail iteratively refining a query to find the right information, requiring a fast tool. We take a “traditional” compilers approach to the problem to provide a tool with the flexibility and speed of UNIX tools like awk. Early performance measurements suggest that this approach can produce results substantially faster than previous approaches.