Pattern-based program visualization

The aim of this paper is to discuss how our pattern-based strategy for the visualization of data and control flow can effectively be used to animate the program and exhibit its behavior. That result allows us to propose its use for Program Comprehension. The animator uses well known compiler techniques to inspect the source code in order to extract the necessary information to visualize it and understand program execution. We convert the source program into an internal decorated (or attributed) abstract syntax tree and then we visualize the structure by traversing it, and applying visualization rules at each node according to a pre-defined rule-base. No changes are made in the source code, and the execution is simulated. Several examples of visualization are shown to illustrate the approach and support our idea of applying it in the context of a Program Comprehension environment.

[1]  Oscar Nierstrasz,et al.  Moose: an agile reengineering environment , 2005, ESEC/FSE-13.

[2]  Steven P. Reiss,et al.  PECAN: Program Development Systems that Support Multiple Views , 1984, IEEE Transactions on Software Engineering.

[3]  Thomas G. Moher,et al.  PROVIDE: A Process Visualization and Debugging Environment , 1988, IEEE Trans. Software Eng..

[4]  Viljem Zumer,et al.  Compiler/interpreter generator system LISA , 2000, Proceedings of the 33rd Annual Hawaii International Conference on System Sciences.

[5]  Giuliano Antoniol,et al.  Program understanding and maintenance with the CANTO environment , 1997, 1997 Proceedings International Conference on Software Maintenance.

[6]  Erhard Plödereder,et al.  Bauhaus - A Tool Suite for Program Analysis and Reverse Engineering , 2006, Ada-Europe.

[7]  Francisco. Herrera,et al.  A Usability Study of the "Tksee" Software Exploration Tool , 1999 .

[8]  Viljem Zumer,et al.  Implementation of multiple attribute grammar inheritance in the tool LISA , 1999, SIGP.

[9]  Stephen G. Eick,et al.  Seesoft-A Tool For Visualizing Line Oriented Software Statistics , 1992, IEEE Trans. Software Eng..