Journal of V isual L anguages and Computing (2000) 11, 27 }48 doi:10.1006/ jvlc.1999.0152, available online at http:// www.idealibrary.com on A Visual Interface for E ffortless Animation of C/ C Programs PAUL LAF OLLETTE ,* J AME S K ORSH* AND RAGHVINDER SANG WAN * Department of Computer and Information Sciences, Temple University, Philadelphia, PA 19122, U.S. A . and Shared Medical Systems, Malvern, PA 19355, U.S. A . Received 16 March 1998; revised 13 N ovember 1998; accepted 2 June 1999 This paper introduces a software visualization system that (i) creates animations of programs without the programmer writing any animation code, and (ii) provides a window interface that automatically displays program information, explicitly showing the scope and context of its data, and allowing considerable control over animation displays. Programs are specified in textual form but the system creates high-level dynamic displays using bit-mapped graphics and window-interface technology. The dynamics of the displays make a program come to life. The current system was designed primarily for use in CS-I and CS-II courses. Therefore, it assumes that programs will use acyclic linked data structures and relatively small data sets. It provides the programmer no control over the animations and only limited control over the layout. However, we feel this is a reasonable trade-off for the ease of use the system provides. 2000 Academic Press 1. Introduction PROGRAM DEBUGGING AND UNDERSTANDING using conventional programming envi- ronments can be an involved and laborious process. Once a syntactically correct program is specified, a programmer can use a debugger to monitor variable values and step through program instructions. Visual debuggers and program development systems such as Incense [1], Pascal Genie [2], Provide [3], Pecan [4], Garden [5], and Prograph [6] provide a window interface and graphic displays of data structures along with other useful information about a program. However, much of this information is static and does not provide an overall view of the program behavior. It can be more instructive to display the dynamics of a program rather than static snapshots of data structure values that are constantly updated as a programmer steps through the program instructions. Software visualization systems [7 ] display the dynamics of programs specified in textual form through their graphical presentation, monitoring and exploration facilities. Based on the technique used for specifying the visualizations of programs, these systems are classified as either annotative or declarative. Annotative software visualization systems, such as Balsa [8], Zeus [9] and Tango [10], annotate a program with ‘interesting events’ that indicate program states of interest. Animation scenes are then written corresponding to these events. E xecution of an 1045-926X / 00/ 020027 # 22 $35.00/ 0 2000 Academic Press