Figure 3 - uploaded by Reinhard Wilhelm
Content may be subject to copyright.
A path configuration  

A path configuration  

Source publication
Conference Paper
Full-text available
This paper describes progress in a non-traditional approach to algorithm animation. We visualise the abstract execution of an algorithm instead of animating the algorithm for executions on concrete input data. Algorithms under consideration are imperative pointer-based algorithms. For our purpose, we need to compute invariants which describe the st...

Contexts in source publication

Context 1
... set D = {root, x, ancest[x]} ∪ {left, right}. Both, SD and TD are the graph shown in Figure 3. Thus, S and T are equivalent according to D. If D = ∅, then all shape graphs are collected in one class. ...
Context 2
... will refer to this as a path configuration. The shape graph S of Figure 3 is an example of a path configuration. We denote by C the set of all shape graphs belonging to the loop entrance program point n2 with a path configuration equal to S. Of course, S belongs to C. The shape graphs in C have or do not have subtrees along the path and have or do not have summarised subtrees as children of x. ...
Context 3
... "remove" all shape graphs from C which can be em- bedded in another shape graph from C. In our example, the resulting set consists of only 4 shape graphs: the one of Figure 3, this graph with a summary node for the subtrees of the children of x, the graph of Figure 2, and this graph without the summary node below node x. Quite often, this method reduces the number of shape graphs remarkably. ...
Context 4
... sum- mary nodes are depicted as light-grey ellipses with dashed double boundary lines. If we consider the class C of shape graphs with path configuration as shown in Figure 3, then T is a visualisation graph for this class. We have already seen that all shape graphs of C can be embedded in just 4 (maximal) shape graphs. ...
Context 5
... it and all its incident edges results in a graph in which S can be embedded. If we consider the graph of Figure 3, we have to remove both virtual nodes. This shows that T is actually a tight visualisation graph. ...

Similar publications

Article
Full-text available
The visual system can make highly efficient aggregate judgements about a set of objects, with speed roughly independent of the number of objects considered. While there is a rich literature on these mechanisms and their ramifications for visual summarization tasks, this prior work rarely considers more complex tasks requiring multiple judgements ov...

Citations

... One approach presented by Wilhelm (Wilhelm et al, 2002) uses a static source code analysis to abstractly execute the algorithm on " all possible sets of input data " , and visualize invariants. An extension of this approach was exemplified for binary tree algorithms, see (Johannes et al., 2005). The idea of using multiple levels of abstraction is supported by Petre et al. (1998b) who claim that in general it is hard to determine a single suitable level of abstraction. ...
Article
Full-text available
Purpose The purpose of this paper is to present the development of a system called Structured Hypermedia Algorithm Explanation (SHALEX), as a remedy for the limitations existing within the current traditional algorithm animation (AA) systems. SHALEX provides several novel features, such as use of invariants, reflection of the high‐level structure of an algorithm rather than low‐level steps, and support for programming the algorithm in any procedural or object‐oriented programming language. Design/methodology/approach By defining the structure of an algorithm as a directed graph of abstractions, algorithms may be studied top‐down, bottom‐up, or using a mix of the two. In addition, SHALEX includes a learner model to provide spatial links, and to support evaluations and adaptations. Findings Evaluations of traditional AA systems designed to teach algorithms in higher education or in professional training show that such systems have not achieved many expectations of their developers. One reason for this failure is the lack of stimulating learning environments which support the learning process by providing features such as multiple levels of abstraction, support for hypermedia, and learner‐adapted visualizations. SHALEX supports these environments, and in addition provides persistent storage that can be used to analyze students' performance. In particular, this storage can be used to represent a student model that supports adaptive system behavior. Research limitations/implications SHALEX is being implemented and tested by the authors and a group of students. The tests performed so far have shown that SHALEX is a very useful tool. In the future additional quantitative evaluation is planned to compare SHALEX with other AA systems and/or the concept keyboard approach. Practical implications SHALEX has been implemented as a web‐based application using the client‐server architecture. Therefore students can use SHALEX to learn algorithms both through distance education and in the classroom setting. Originality/value This paper presents a novel algorithm explanation system for users who wish to learn algorithms.
... Visually representing the heap is an existing concern for debuggers [26], heap analysis tools [19], and visualizing profilers in general [21]. Most shape analysis studies, however, concentrate on the analysis more than depicting the analysis results, although there is recent work on defining structural shape properties suitable for visualization [13]. ...
Conference Paper
Analysis of dynamic data structure usage is useful for both program understanding and for improving the accuracy of other program analyses. Static analysis techniques, however, suffer from reduced accuracy in complex situations, and do not necessarily give a clear picture of runtime heap activity. We have designed and implemented a dynamic heap analysis system that allows one to examine and analyze how Java programs build and modify data structures. Using a complete execution trace from a profiled run of the program, we build an internal representation that mirrors the evolving runtime data structures. The resulting series of representations can then be analyzed and visualized, and we show how to use our approach to help understand how programs use data structures, the precise effect of garbage collection, and to establish limits on static data structure analysis. A deep understanding of dynamic data structures is particularly important for modern, object-oriented languages that make extensive use of heapbased data structures.
... Visually representing the heap is an existing concern for debuggers [24], heap analysis tools [18], and visualizing profilers in general [19]. Most shape analysis studies, however, concentrate on the analysis more than depicting the analysis results, although there is recent work on defining structural shape properties suitable for visualization [13]. ...
Article
w w w . s a b l e . m c g i l l . c a Abstract Analysis of dynamic data structure usage is useful for both program understanding and for improving the accuracy of other program analyses. Static shape analysis techniques, however, suffer from reduced accuracy in complex situations. We have designed and implemented a dynamic shape analysis system that allows one to examine and analyze how Java programs build and modify data structures. Using a complete execution trace from a profiled run of the program, we build an internal representation that mir-rors the evolving runtime data structures. The resulting series of representations can then be analyzed and visualized, and we show how to use our approach to help understand how programs use data structures, the precise effect of garbage collection, and to establish limits on static techniques for shape analysis. A deep understanding of dynamic data structures is particularly important for modern, object-oriented languages that make extensive use of heap-based data structures.
Conference Paper
In a selective retrospective of the history of software visualization we discuss examples of applying visualization techniques to analyze the past and present state of software. Based on this retrospective, we make various suggestions for future research. In particular, we argue that the prediction of future aspects of a software system is an important task, but that software visualization research has only scratched the surface of it and that speculative visualization will be one of the major future challenges.
Article
Understanding of algorithms is one of the most challenging aspects of the study of computer science. Over two decades of research has been devoted to improving techniques to learn and teach algorithms. In this work, we present a new approach for explaining algorithms that aims to overcome various pedagogical limitations of the current visualization systems. The main idea is that, at any given time, a learner is able to focus on a single problem. This problem can be explained, studied, understood, and tested before the learner moves on to study another problem. The structured hypermedia algorithm explanation (SHALEX) system is the system we designed and implemented to explain algorithms at various levels of abstraction. In this system, each abstraction is focused on a single operation from the algorithm using various media, including text and an associated visualization. The explanations are designed to help the user to understand basic properties of the operation represented by this abstraction, for example its invariants. SHALEX allows the user to traverse the graph-based algorithm model, using a top-down (from primitive operations to general operations) approach, a bottom-up approach, or a mix of these two approaches. Since the system is implemented using a client-server architecture, it can be used both through distance education and in the classroom setting. To aid and monitor the leaner, we also developed an agent in SHALEX that provides help and monitors the completion rate.
Article
Diese Arbeit behandelt einen Ansatz zur Algorithmenvisualisierung von zeigerbasierten Programmen. Während traditionell die Programmausführung für konkrete Daten visualisiert wird, stützt sich dieser Ansatz auf die abstrakte Programmausführung. Dazu wird vorab mittels Shapeanalyse, einer auf Logik basierenden parametrischen statischen Programmanalysetechnik, eine Beschreibung der an den Programmpunkten auftretenden abstrakten Heapstrukturen berechnet. Diese Shapegraphenmengen sind jedoch in der Regel für eine direkte Visualisierung zu groß. Ein zentrales Thema dieser Arbeit ist die Entwicklung von Methoden, die Analyseausgabe vor der eigentlichen Visualisierung aufzubereiten. Sie führen sowohl zu einer Reduktion der Komplexität als auch zu einer gesteigerten Wirksamkeit der Visualisierung. Im Vordergrund stehen Methoden zur Strukturierung der Analyseausgabe. Ein Ähnlichkeitskonzept gestattet es, bezüglich verschiedener parametrischer Ähnlichkeitsbegriffe zu abstrahieren. Auf diese Weise werden ähnliche Heapstrukturen und ähnliche Programmausführungen identiziert und zusammengefasst. Mit gleicher Absicht wird ein Konzept zur Ausnutzung von Symmetrie eingeführt. Ergänzend werden Methoden vorgestellt, welche die in einer Menge von Shapegraphen enthaltenen Informationen verdichten. Zu den darüber hinaus behandelten Themen gehören Methoden, die Hilfestellungen bei der Traversierung durch die abstrakte Programmausführung bieten.
Conference Paper
Reinhard Wilhelm's career in Computer Science spans more than a third of a cen- tury. During this time, he has made numerous research contributions in the areas of pro- gramming languages, compilers and compiler generators, static program analysis, pro- gram transformation, algorithm animation, and real-time systems; co-founded a com- pany to transfer some of these ideas to industry; held the Chair for Programming Lan- guages and Compiler Construction at Saarland University; and served since its incep- tion as the Scientific Director of the International Conference and Research Center for Computer Science at Schloß Dagstuhl.
Conference Paper
A multimedia programming approach for the generalized graph search (traversal) algorithms is considered. It is based on a concept of cyberFilm, which is a set of multi-media frames defining algorithmic features. Through these frames, the user can represent computational steps and specify "activity" within the steps. Each set of multimedia frames, represented by a special icon, is supported by a set of template programs to generate corresponding executable codes. Such icons and sets of template programs behind them provide powerful repetitive-type constructs for specifying computational algorithms.The main contributions of this paper are an introduction of a cyberFilm developed for the generalized graph search algorithms and a description of the template programs supporting this cyberFilm.