This Article 
 Bibliographic References 
 Add to: 
Focusing in Algorithm Explanation
January-March 2000 (vol. 6 no. 1)
pp. 1-7

AbstractAlgorithm Animation attempts to explain an algorithm by visualizing interesting events of the execution of the implemented algorithm on some sample input. Algorithm Explanation describes the algorithm on some adequate level of abstraction, states invariants, explains how important steps of the algorithm preserve the invariants, and abstracts from the input data up to the relevant properties. It uses a small focus onto the execution state. This paper is concerned with the explanation of algorithms on linked data structures. The thesis of the paper is that shape analysis of such algorithms produces abstract representations of such data structures, which focus on the “active” parts, i.e., the parts of the data structures, which the algorithm can access during its next steps. The paper presents a concept of visually executing an algorithm on these abstract representations of data.

[1] B. Braune, S. Diehl, A. Kerren, and R. Wilhelm, “Animation of the Generation and Computation of Finite Automata for Learning Software,” Proc. Workshop Implementing Automata, Potsdam, Germany, 1999.
[2] M.H. Brown, “Zeus: A System for Algorithm Animation and Multi-View Editing,” Research Report 75, SRC, Dec. 1992.
[3] M.H. Brown and R. Sedgewick, “A System for Algorithm Animation,” SIGGRAPH, vol. 18, no. 3, pp. 177-186, July 1984.
[4] D. R. Chase, M. Wegman, and F. K. Zadeck,“Analysis of pointers and structures,”inProc. SIGPLAN '90 Conf. Programming Languages Design and Implementation,June 1990, pp. 296–310;SIGPLAN Notices, vol. 25, no. 6.
[5] N. Foo, “Diagrammatic Reasoning about Linked Lists,” Proc. Fifth Pacific Rim Int'l Conf. Artificial Intelligence, 1998.
[6] N. Foo, “Local Extent in Diagrams,” 1998.
[7] H. Gaifman, “On Local and Nonlocal Properties,” Proc. Logic Colloquium '81, 1982.
[8] Diagrammatic Reasoning: Cognitive and Computational Perspective, J.I. Glasgow, N.H. Nayaranan, and B. Chandrasekaran, eds. MIT Press, 1995.
[9] N.D. Jones and S.S. Muchnick, “Flow Analysis and Optimization of Lisp-Like Structures,” Program Flow Analysis: Theory and Applications, S.S. Muchnick and N.D. Jones, eds., chapter 4, pp. 102-131. Englewood Cliffs, N.J.: Prentice Hall, 1981.
[10] N.D. Jones and S.S. Muchnick, “A Flexible Approach to Interprocedural Data Flow Analysis and Programs with Recursive Data Structures,” Proc. Symp. Principles of Programming Languages, pp. 66-74, 1982.
[11] A. Kerren, “Animation of Semantical Analysis,” Proc. 8. GI-Fachtagung Informatik und Schule INFOS '99, Potsdam, Germany (in German), 1999.
[12] J. R. Larus and P. N. Hilfinger,“Detecting conflicts between structure accesses,”inProc. SIGPLAN '88 Conf. Programming Languages Design and Implementation,June 1988, pp. 21–34;SIGPLAN Notices, vol. 23, no. 7.
[13] F. Nielson, H. Riis Nielson, and C. Hankin, Principles of Program Analysis. Springer Verlag, 1999.
[14] J. Plevyak, A.A. Chien, and V. Karamcheti, “Analysis of Dynamic Structures for Efficient Parallel Execution,” Proc. Languages and Compilers for Parallel Computing, U. Banerjee, D. Gelernter, A. Nicolau, and D. Padua, eds., pp. 37-57, Aug. 1993.
[15] B.A. Price, R.M. Baecker, and I.S. Small, “A Principled Taxonomy of Software Visualization,” J. Visual Languages and Computing, vol. 4, no. 3, pp. 211-266, 1993.
[16] G.-C. Roman, K. Cox, C. Wilcox, and J. Plun, “Pavane: A System for Declarative Visualization of Concurrent Computations,” J. Visual Languages and Computing, vol. 3, no. 1, pp. 161-193, Jan. 1992.
[17] M. Sagiv, T. Reps, and R. Wilhelm, “Solving Shape-Analysis Problems in Languages with Destructive Updating,” Proc. ACM SIGACT-SIGPLAN Symp. Priciples of Programming Languages, 1996.
[18] M. Sagiv, T. Reps, and R. Wilhelm, “Solving Shape-Analysis Problems in Languages with Destructive Updating,” ACM Trans. Programming Languages and Systems, vol. 20, no. 1, pp. 1-50, 1998.
[19] L. Shu and M. Young, “A Mixed Locking/Abort Protocol for Hard Real-TimeSystems,” Proc. IEEE 11th Workshop Real-Time Operating Systems and Software, pp. 102-106, May 1994.
[20] G. Sander, “Vcg—Visualization of Compiler Graphs,” Technical Report A01-95, Universität des Saarlandes, 1995.
[21] Software Visualization. J. Stasko, J. Domingo, M.H. Brown, and B.A. Price, eds. MIT Press, 1998.
[22] J.T. Stasko, “The Path-Transition Paradigm: A Practical Methodology for Adding Animation to Program Interfaces,” J. Visual Languages and Computing, vol. 1, no. 3, pp. 213-236, Sept. 1990.
[23] J. Stasko, “Tango: A Framework and System for Algorithm Animation,” Computer, vol. 23, no. 9, pp. 27–39, Sept. 1990.
[24] J.T. Stasko, “Animating Algorithms with Xtango,” SIGACT News, vol. 23, no. 2, pp. 67-71, 1992.
[25] J. Stransky, “A Lattice for Abstract Interpretation of Dynamic (Lisp-Like) Structures,” Inf. and Comp., vol. 101, no. 1, pp. 70-102, Nov. 1992.
[26] E.Y.-B. Wang, “Analysis of Recursive Types in an Imperative Language,” PhD thesis, Univ. of California, Berkeley, 1994.
[27] R. Wilhelm and D. Maurer, Compiler Design. Addison Wesley, 1995.

Index Terms:
Visualization of algorithms, shape analysis, diagrammatic reasoning.
Beatrix Braune, Reinhard Wilhelm, "Focusing in Algorithm Explanation," IEEE Transactions on Visualization and Computer Graphics, vol. 6, no. 1, pp. 1-7, Jan.-March 2000, doi:10.1109/2945.841117
Usage of this product signifies your acceptance of the Terms of Use.