Programming in pictures.

Johan Georg Raeder · University of Southern California Digital Library · 2014

Programming in conventional languages is awkward because the resulting programs are quite far from how we like to think about them, both conceptionally and representationally. By representing programs as semantically suggestive graphical images we can shorten the cap between mind and medium and thereby make more pleasant, efficient and less error-prone. A rich graphical interface can also aid naive programmers by making abstract concepts concrete. In this thesis we examine the use of pictures in programming. We point out the salient characteristics of pictures vs. text. In particular, the concreteness, random access nature, high transfer rate, namelessness, multi-dimensionality, and possibilities for animation render pictures well qualified for representing programs. We discuss in more detail the best form of a pictorial program display, and arrive at a solution based on data structures as the primary displayed aspect. We also assign other program aspects, like control and hierarchy, to picture dimensions, obtaining a unified view that allows the representation of programs as a single object instead of a series of different views. We develop techniques for reading and writing programs through sequences of pointing actions animated on top of the data structure display, mimicking the way people informally explain programs through handwaving on data structure illustrations. We describe a concrete implementation of our ideas about in pictures. The system is based on a functional model. It allows the creation of functions where the data types of input and output objects are illustrated by the user. The user inputs pictures related to the application domain and inserts them in an algorithmic framework supplied by the system. We show how our style of leads us to a version by example. Finally, we examine what audience would benefit the most from a pictorial system, and what kind of applications these people would be interested in. We define the term programming as the creation of small programs by naive or casual users, and identify this as a useful application area of in pictures. (Copies available exclusively from Micrographics Department, Doheny Library, USC, Los Angeles, CA 90089.)

Read the paper · More papers on PaperTik