VIPR, or Visual Imperative PRogramming, developed by Citrin et. al at the University of Colorado represents
a unique approach to completely visual general purpose programming. Rather than relying on icons,
forms, or other traditional graphical representations, VIPR uses nested series of concentric rings to visualize
programs, as shown in Figure 4. Each step in a computation involves merging two rings in the presence of
a state object which is connected to the outermost ring. One can visualize program execution as walking
down a network of pipes which branches off in different directions while changing the state based on actions
written on the inside of the pipes [Citrin et al. 1994].
The ongoing development of VIPR has been motivated, in part by a desire to create an object-oriented
language which is relatively easy to learn and use. As a result, VIPR includes most of the common attributes
of object-oriented languages, including inheritance, polymorphism, and dynamic dispatch. The language’s
semantics have been defined to be similar to C++in order to make it easier for experienced programmers
to read and understand VIPR programs. However, the language is entirely visual, so the semantics of a