saraswat@roo.uucp (Vijay Saraswat) (05/27/90)
Ken Kahn, Volker Haarslev and I have been working (among other things) on a completely visual programming notation for the (possibly concurrent) Herbrand languages (read: logic programming languages). A summary of the work is to appear in the IEEE Workshop on Visual Languages at Skokie, Il. in a few months, and papers etc are available from Ken. (I will also give a presentation at ICLP in Jerusalem.) Papers contain back pointers to a lot of the literature on pictorial notations for logic programming languages. Vijay Saraswat --------- Complete Visualizations of Concurrent Programs and their executions Ken Kahn Vijay Saraswat Xerox PARC 3333 Coyote Hill Road Palo Alto Ca 94304 kahn@parc.xerox.com We present a {\em methodological stance} for what we call a {\em completely visual} formalism for programs and their executions. These commitments push programming from its current weakly visual form, limited by a common commitment to ASCII characters, to an extreme where pictures, through their appearance---and not their construction---completely describe programs, data, and states of execution. We require that programs, their model of execution, and traces of their execution be visualized in the same pictorial terms. We also require that there be a way of animating the state transitions in a smooth manner to facilitate the perception of object coherence and the causal connections between events. We present a list of advantages which derive from this extreme stance. Further advantages ensue from basing a pictorial syntax only upon topological relations. The structure of programs can be captured more effectively by well-designed two-dimensional layouts than is possible with the essentially one-dimensional sequences of lines of code. A well-designed pictorial syntax enables programmers to visually detect various kinds of program anomalies. Perhaps more importantly, a means of perceiving the dynamic structure of a computation greatly aids in understanding how programs work. This improved understanding will ease the task of constructing, debugging, modifying, enhancing, and documenting programs. Our methodological commitments are so strong that it is not obvious that such a pictorial syntax can be constructed for a general-purpose programming language. We present a syntax for a general-purpose concurrent constraint programming language called \janus, which demonstrates the feasibility and benefits of complete visualizations. Our task was greatly facilitated by the conceptual simplicity of \Janus\ and it is an open question whether a completely visual syntax can be designed for other languages, especially large and complex ones.