Building Program Understanding Tools Using Visitor Combinators

by ArieVanDeursen and JoostVisser

This paper describes how VisitorCombinators, as supported by JJForester and JJTraveler, have been used in the implementation of the program comprehension tool ControlCruiser?. This tool performs procedure reconstruction to derive conditional call graphs for Cobol programs.



Program understanding tools manipulate program representations, such as abstract syntax trees, control-flow graphs, or data-flow graphs. This paper deals with the use of VisitorCombinators to conduct such manipulations. Visitor combinators are an extension of the well-known visitor design pattern. They are small, reusable classes that carry out specific visiting steps. They can be composed in different constellations to build more complex visitors. We evaluate the expressiveness, reusability, ease of development, and applicability of visitor combinators to the construction of program understanding tools. To that end, we conduct a case study in the use of visitor combinators for control flow analysis and visualization as used in a commercial Cobol program understanding tool.

See also


CategoryAnalysis, CategoryPaper, CategoryProgramUnderstanding

Revision: r1.2 - 21 Feb 2002 - 14:10 - JoostVisser
Transform > ControlCruiser? > BuildingProgramUnderstandingToolsUsingVisitorCombinators
Copyright © 1999-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback