Enhancing program readability and comprehensibility with tools for program visualization

To make computer programs for comprehensible, the presentation of program source text, program documentation, and program execution needs to be enhanced. A number of techniques and tools developed to achieve these ends are described. One of these is a design for the effective presentation of source text in the C programming language using high-quality digital typography; a processor which implements the design is also given. Some experimental evidence is summarized to demonstrate that the resulting source text presentation is significantly more readable and comprehensible than the presentation conventionally used today. Brief descriptions are given of two other techniques, the development of a system of structured program documentation incorporating both text and graphics and the portrayal of program execution with colored computer animation.<<ETX>>

[1]  Dennis W. Leinbaugh,et al.  Indenting for the compiler , 1980, SIGP.

[2]  Thomas O. Sidebottom,et al.  The C Programming Tutor , 1984 .

[3]  A. Nico Habermann,et al.  Software Development Environments , 1987, Computer.

[4]  F. T. Baker,et al.  Chief Programmer Team Management of Production Programming , 1972, IBM Syst. J..

[5]  Georg Raeder A Survey of Current Graphical Programming Techniques , 1985, Computer.

[6]  N. Falconer Structured Programming , 1973, Nature.

[7]  P. Henderson Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments Held at Pittsburgh, Pennsylvania on 23-25 April 1984, , 1984 .

[8]  Brian W. Kernighan,et al.  Software tools , 1976, SOEN.

[9]  Steven P. Reiss,et al.  Graphical program development with PECAN program development systems , 1984, SDE 1.

[10]  Peter Grogono,et al.  On layout, identifiers and semicolons in Pascal programs , 1979, SIGP.

[11]  David A. Higgins,et al.  Program design and construction , 1979 .

[12]  Elliott I. Organick,et al.  Conputer-Generated Semantics Displays , 1974, IFIP Congress.

[13]  Scott R. Smith,et al.  Holophrasted Displays in an Interactive Environment , 1984, Int. J. Man Mach. Stud..

[14]  Shi-Kuo Chang,et al.  Visual Languages: A Tutorial and Survey , 1986, IEEE Software.

[15]  G. G. Gustafson,et al.  Some practical experiences formatting Pascal programs , 1979, SIGP.

[16]  Niklaus Wirth,et al.  Modula: A language for modular multiprogramming , 1977, Softw. Pract. Exp..

[17]  Anthony I. Wasserman,et al.  Tutorial: Software Development Environments , 1981 .

[18]  Robert Sedgewick,et al.  SYSTEM FOR ALGORITHM ANIMATION. , 1984 .

[19]  Steven P. Reiss Working in the Garden Environment for Conceptual Programming , 1987, IEEE Software.

[20]  Brian W. Kernighan,et al.  The C Programming Language , 1978 .

[21]  Victor Weinberg,et al.  Structured Analysis , 1978 .

[22]  Robert Sedgewick,et al.  Techniques for Algorithm Animation , 1985, IEEE Software.

[23]  Henry Ledgard,et al.  An automatic formatting program for PASCAL , 1977, SIGP.

[24]  Thomas W. Reps,et al.  Language Processing in Program Editors , 1987, Computer.

[25]  David Lorge Parnas,et al.  Active design reviews: principles and practices , 1985, ICSE '85.

[26]  Victor R. Basili,et al.  Viewing maintenance as reuse-oriented software development , 1990, IEEE Software.

[27]  A. Marcus,et al.  Design principles for the enhanced presentation of computer program source text , 1986, CHI '86.

[28]  Ben Shneiderman,et al.  Display strategies for program browsing , 1986 .

[29]  Brian W. Kernighan,et al.  A typesetter independent troff , 1981 .

[30]  Ben Shneiderman,et al.  Program indentation and comprehensibility , 1983, CACM.

[31]  James Martin,et al.  Diagramming techniques for analysts and programmers , 1984 .

[32]  Guy L. Steele,et al.  C, a reference manual , 1984 .

[33]  R. A. Duisberg,et al.  Animated graphical interfaces using temporal constraints , 1986, CHI '86.

[34]  Warren Teitelman,et al.  A Display Oriented Programmer's Assistant , 1977, IJCAI.

[35]  Ben Shneiderman,et al.  Display Strategies for Program Browsing: Concepts and Experiment , 1986, IEEE Software.

[36]  Marilyn M. Mantei,et al.  Human factors in computing systems : CHI '86 conference proceedings, April 13-17, Boston , 1986 .

[37]  Lisa F. Rubin Syntax-Directed Pretty Printing—A First Step Towards a Syntax-Directed Editor , 1983, IEEE Transactions on Software Engineering.

[38]  B. A. Myers,et al.  Visual programming, programming by example, and program visualization: a taxonomy , 1986, CHI '86.

[39]  Anthony I. Wasserman,et al.  Personal Development Systems for the Professional Programmer , 1981, Computer.

[40]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[41]  Donald E. Knuth,et al.  Literate Programming , 1984, Comput. J..

[42]  Aaron Marcus,et al.  Graphic design of program text , 1982 .

[43]  Niklaus Wirth,et al.  Program development by stepwise refinement , 1971, CACM.

[44]  Aaron Marcus,et al.  On enhancing the interface to the source code of computer programs , 1983, CHI '83.

[45]  B. Shneiderman,et al.  Flowchart techniques for structured programming , 1973, SIGP.

[46]  Niklaus Wirth,et al.  Modula: A language for modular multiprogramming , 1977, Softw. Pract. Exp..

[47]  Christopher F. Herot,et al.  Program visualization: Graphics support for software development , 1983, DAC.

[48]  Victor A. Riley,et al.  Manipulating source code in DynamicDesign , 1987, Hypertext.

[49]  Steven P. Reiss,et al.  PECAN: Program Development Systems that Support Multiple Views , 1984, IEEE Transactions on Software Engineering.

[50]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[51]  Ron Baecker Two systems which produce animated representations of the execution of computer programs , 1975, SIGCSE '75.

[52]  David R. Barstow,et al.  Artificial intelligence and software engineering , 1987, ICSE '87.

[53]  Edward Yourdon,et al.  Structured walkthroughs , 1978 .

[54]  Warren Teitelman,et al.  A Tour Through Cedar , 1984, IEEE Transactions on Software Engineering.

[55]  Robert Duisberg,et al.  Animating Programs Using Smalltalk , 1985, Computer.

[56]  Robert Sedgewick,et al.  A system for algorithm animation , 1984, SIGGRAPH.

[57]  Christopher F. Herot,et al.  Program Visualization: Graphics Support for Software Development , 1983, 20th Design Automation Conference Proceedings.

[58]  J. Welsh,et al.  Formatted programming languages , 1981, Softw. Pract. Exp..

[59]  Douglas T. Ross,et al.  Structured Analysis (SA): A Language for Communicating Ideas , 1977, IEEE Transactions on Software Engineering.

[60]  G. W. Furnas,et al.  Generalized fisheye views , 1986, CHI '86.