Visualizing program execution (original) (raw)
Related papers
Aspects and Taxonomy of Program Visualisation
Software Visualisation, 1996
Program visualisation focuses on the graphical representation of an executing program and its data. The information is presented in a form designed to enhance both the understanding and productivity of the programmer through the e cient use of the human visual system. The programmer is able to observe patterns of behaviour within the executing code and rapidly detect a departure from the expected behaviour pattern. However, depending on the programming paradigms and architectural platforms utilized, the variety and manner in which information is best presented varies. This chapter attempts to discuss the general aspects of program visualisation, including the variety of purposes, the general steps needed to provide such visualisation, and the ideals that a program visualisation tool can achieve. The requirements for visualization systems also vary across architectural platforms, and software systems, which include programming paradigms and the system environment. Some representative visualisation systems are also presented and examined, providing an overall view of the practice and the achievements made to date in program visualisation.
Visualization techniques for various programming paradigms
Proceedings of TENCON '93. IEEE Region 10 International Conference on Computers, Communications and Automation, 1993
This paper illustrates the variety of visualization techniques that are employed for various programming paradigms, examining the type of information required and the advantages that the information provides the programmer. We examine the specific visualization requirements for each paradigm and the general requirements of visualization systems which depict the flow of control for both sequential and parallel program execution. We find that many of the visualization systems currently available tend to focus on only one aspect of the visualization requirements rather than the broad base of needs of the programmer. The need to integrate these visualization systems in the future is highlighted.
Strategies for program inspection and visualization
Proc. CSE'2008 International …, 2008
The aim of this paper is to show the strategies involved in the implementation of two tools of PCVIA project that can be used for Program Comprehension. Both tools use known compiler techniques to inspect code in order to visualize and understand programs' execution. On one hand we convert the source program into an internal decorated (or attributed) abstract syntax tree and then we visualize the structure 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. On the other hand, we traverse the source program and instrument it with inspection functions. Those inspectors provide information about the function-call flow and data usage at runtime (during the actual program execution). This information is collected and gathered in an information repository that is then displayed in a suitable form for navigation. These two different approaches are used respectively by Alma (generic program animation system) and Cear (C Rooting Algorithm Visualization tool). For each tool several examples of visualization are shown in order to discuss the information that is included in the visualizations, visualization types and the use of Program Animation for Program Comprehension.
Pattern-based program visualization
2007
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.
Hristov, H., „Review and outlooks of the means for visualization of syntax semantics and source code. Procedural and object oriented paradigm – differences”, Anniversary International Conference REMIA 2010, Plovdiv, 2010, pp. 443-450, ISBN 978-954-423-648-9, 2010
In the article, we have reviewed the means for visualization of syntax, semantics and source code for programming languages which support procedural and/or object-oriented paradigm. It is examined how the structure of the source code of the structural and object-oriented programming styles has influenced different approaches for their teaching. We maintain a thesis valid for the object-oriented programming paradigm, which claims that the activities for design and programming of classes are done by the same specialist, and the training of this specialist should include design as well as programming skills and knowledge for modeling of abstract data structures. We put the question how a high level of abstraction in the object-oriented paradigm should be presented in simple model in the design stage, so the complexity in the programming stage stay low and be easily learnable. We give answer to this question, by building models using the UML notation, as we take a concrete example from the teaching practice including programming techniques for inheritance and polymorphism.
Visual Metaphors for Understanding Logic Program Execution
A classic notion in logic programming is the separation of logic and control. Logic is for problem solving; control is for directing inference. However, practical experience in the classroom suggests that problem-solving students nonetheless devote much effort to understanding control issues such as eliminating looping behaviours and improving program efficiency. In the case of Prolog, this requires a clear understanding of the operation of both unification and backtracking. Students often try to get this understand by tracing executions, but the common fourport debugger used in Prolog is not as helpful as it could be. In particular, it provides information in low bandwidth textual form. This paper describes a new visualization system for logic programming that uses colour tagging to trace unification through the Prolog proof tree. A user can dynamically "tag" a term or subterm with a colour that is immediately propagrated through the displayed tree. The colour is also pro...
Code inspection approaches for program visualization
2009
The aim of this paper is to show the approaches involved in the implementation of two tools of PCVIA project that can be used for Program Comprehension. Both tools use known compiler techniques to inspect code in order to visualize and understand programs' execution but one of them modifies the source code and the other not. In the non-invasive approach, we convert the source program into an internal decorated (or attributed) abstract syntax tree and then we visualize the structure 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. In the invasive approach, we traverse the source program and instrument it with inspection functions. Those functions, also known as inspectors, provide information about the function-call flow and data usage at runtime (during the actual program execution). This information is collected and gathered in an information repository that is then displayed in a suitable form for navigation. These two different approaches are used respectively by Alma (generic program animation system) and CEAR (C Rooting Algorithm Visualization tool). For each tool several examples of visualization are shown in order to discuss the information that is included in the visualizations, visualization types and the use of Program Animation for Program Comprehension.