“INCENSE: A system for displaying data structures” by Myers

  • ©Brad A. Myers




    INCENSE: A system for displaying data structures



    Many modern computer languages allow the programmer to define and use a variety of data types. Few programming systems, however, allow the programmer similar flexibility when displaying the data structures for debugging, monitoring and documenting programs. Incense is a working prototype system that allows the programmer to interactively investigate data structures in actual programs. The desired displays can be specified by the programmer or a default can be used. The default displays provided by Incense present the standard form for literals of the basic types, the actual names for scalar types, stacked boxes for records and arrays, and curved lines with arrowheads for pointers. In addition to displaying data structures, Incense also allows the user to select, move, erase and redimension the resulting displays. These interactions are provided in a uniform, natural manner using a pointing device (mouse) and keyboard.


    1. Ahlberg, J. H., Nilson, E. N., and Walsh, J. L. The Theory of Splines and their Applications. New York: Academic Press (1967).
    2. Baecker, Ron. Two Systems which Produce Animated Representations of the Execution of Computer Programs. ACM SIGCSE Bulletin. Vol. 7, No. 1 (Feb. 1975). pp. 158-167.
    3. Baecker, Ron. Sorting Out Sorting. 16mm color, sound, film. 25 minutes. Dynamic Graphics Project, Computer Systems Research Group, University of Toronto, Toronto, Ontario (1981). Presented at ACM SIGGRAPH Conference, Dallas, Texas (Aug., 1981).
    4. Balzer, R. M. EXDAMS — EXtendable Debugging and Monitoring System. Proceedings AFIPS Spring Joint Computer Conference. 34 (1969). pp 567-580.
    5. Christensen, Carlos. An Example of the Manipulation of Directed Graphs in the AMBIT/G Programming Language. Proceedings of the ACM Symposium on Interactive Systems for Experimental Applied Mathematics, Washington, D.C. (August, 1967).
    6. Dijkstra, Edsger W. The Humble Programmer. Communications of the ACM. Vol. 15, No. 10 (Oct 1972). pp 859-866.
    7. Dionne, M. S. and Mackworth, A. K. ANTICS: A System for Animating LISP Programs. Computer Graphics and Image Processing. Vol. 7 (1978). pp. 105-119.
    8. English, W. K., Engelbart, D. C. and Berman, M. L. Display Selection Techniques for Text Manipulation. IEEE Transactions on Human Factors in Electronics. Vol. HFE-8, No. 1 (March 1967).
    9. Goldberg, A. and Robson, D. A Metaphor for User Interface Design. Proceedings of the 12th Hawaii International Conference on System Sciences 1979. Vol. 1 (1979). pp. 148-157.
    10. Hain, G. and Hain, K. A general purpose automatic flowcharter. Proc. Fourth Annual Meeting of UAIDE, New York (Oct. 1965). pp. IV-1 to IV-12.
    11. Henderson, D. Austin. A Description and Definition of Simple AMBIT/G—a Graphical Programming Language. Wakefield, MA: Massachusetts Computer Associates CA-6904-2811 (April 28, 1969). 32 pages.
    12. Herot, Christopher P., Brown, Gretchen P., Carling, Richard T., Friedell, Mark, Kramlich, David, and Baecker, Ronald M. An Integrated Environment for Program Visualization. Proceedings of the IFIP WG 8.1 Working Conference on Automated Tools for Information System Design and Development. New Orleans, LA (January 26-28, 1982). H. J. Schneider and A. I. Wasserman (eds). North Holland, Amsterdam, 1982.
    13. Hopgood, F, R. A. Computer Animation Used as a Tool in Teaching Computer Science. Proceedings of the 1974 IFIP Congress, Applications Volume. (1974) pp 889-892.
    14. Jensen, K. and Wirth, N. PASCAL User Manual and Report. Englewood Cliffs, N.J.:Prentice-Hall (1975).
    15. Knowlton, K. C. L6: Bell Telephone Laboratories Low Level Linked List Language. Two black and white films, sound. Bell Telephone Laboratories, Murray Hill, New Jersey (1966).
    16. Knuth, Donald E. Computer Drawn Flowcharts. Communications of the ACM. Vol. 6 No. 9 (Sept, 1963). pp. 555-563.
    17. Laaser, William. Private conversation with the author (Nov. 9, 1979). System was built using DLISP which is described in Warren Teitelman. Display Oriented Programmer’s Assistant. Palo Alto: Xerox PARC CSL-77-3 (March 8, 1977).
    18. Liskov, Barbara, Snyder, Alan, Atkinson, Russell, and Schaffert, Craig. Abstraction Mechanisms in CLU Communications of the ACM. Vol. 20, No. 8 (Aug, 1977). pp. 564-576.
    19. Mitchell, James, et al. Mesa Language Manual, Version 5.0. Palo Alto: Xerox PARC CSL-79-3 (1979).
    20. Myers, Brad A. Displaying Data Structures for Interactive Debugging. Palo Alto: Xerox PARC CSL-80-7 (June, 1980). 97 pages.
    21. Rosen, Brian. PERQ: A Commercially Available Personal Scientific Computer. IEEE CompCom Digest (Spring, 1980).
    22. Shoch, John F. An Overview of the Programming Language Smalltalk-72. ACM Sigplan Notices. Vol. 14, No. 9 (Sept 1979). pp. 64-73.
    23. Sweet, Richard. Appendix B: Implementation Description. Empirical Estimates of Program Entropy. Palo Alto: Xerox PARC CSL-78-3 (1978). pp. 85-96.
    24. Thacker, C. P., McCreight, E. M., Lampson, B. W., Sproull, R, F., and Boggs, D.R. Palo Alto: A Personal Computer. Palo Alto: Xerox PARC CSL-79-11 (August 7, 1979). 50 pages. Paper also appears in Siewiorek, Bell and Newell, Computer Structures: Readings and Examples, second edition.
    25. van Tassel, Dennie. Program Style Design, Efficiency, Debugging and Testing. Englewood Cliffs, NJ: Prentice-Hall, Inc. (1974). 256 pages.
    26. Yarwood, Edward. Toward Program Illustration. University of Toronto Computer Systems Research Group Technical Report CSRG-84 (M. Sc. Thesis) (October 1977).

ACM Digital Library Publication:

Overview Page: