|
Turing is an interactive graphical embodiment of an abstract computational model developed by Alan Turing. It was created in conjunction with James Tichenor at Interaction Design Institute Ivrea as part of the graphical user interface course taught by Walter Aprile and Britta Boland during the fall of 2004. Implied physicality plays a major role in this software since it promotes explorative tinkering and learning by discovery. Focusing on visualization of turing machine operations over time, this software has value for those already familiar with turing machines since patterns and trends of operation can be more easily identified.
Audience
Novices unfamiliar with turing machines. Amateurs frusterated by traditional syntax-based turing machines. Experts wanting to enhance their understanding of turing machine behavior.
Objectives
To develop a visualization and a graphical programming interface for the turing machine that communicates the essential concepts of computation and is able to be programmed by a novice. To show a historical record of machine operations so that a better understanding of the inherent operational patterns can be attained.
Interface
Modeled in a minimalist style that borrows heavily from mid 1980s video game concepts, the proposed representation is designed to appeal to those attracted to exploratory interaction with software. The minimalist interface allows for the complexity of displaying operations over time via buildup of graphics.
The interface was organized to show the various components of the machine as causally related independent visual entities. The tape, the head states, the program logic, and the alphabet are all represented without the use of alphanumeric symbols. It was decided that use of such symbols implies lingual and mathematical meanings not normally intended when those symbols are used in a turing machine.
The Space
The turing machine space is organized in a tripartite structure to the right of the control panel. The lower section of the screen, organized by a darker band suggesting a stationary base, is devoted to the programming rules of the machine. The middle space of the screen below the tape is devoted to displaying the current read/write action of the machine along with prior read and write actions. The top of the screen is used for the turing tape. By giving a spatial organization to the turing machine the user is able to quickly discern the conceptual components and how they are related.
Tape
At the top of the window is a row of evenly spaced rectangles. This collection of rectangles represents the ordered set of values on the infinite turing tape. Each value on the turing tape is indicated by the color of each rectangle. The output of the machine is communicated by the set of colored rectangles on the tape when the machine halts. The user enters input by repeatedly clicking a turing tape vaule, changing its color, until the desired value is indicated.
One of the turing tape values extends lower than the others. This is the indication of where the turing tape head is currently located. During machine operation, this elongation shifts to either neighboring left or right tape value in accordance with the programmed rules. This is just as any traditional representation of the turing machine except, the tape itself does not move. Instead of moving the tape as off-screen values are encountered, the tape moves backward in space along the z-axis to reveal additional values as required. This emphasizes the infinitude of the tape without resorting to scrolling techniques that obscure the previously encountered tape values. This dynamic view of the entirety of the tape allows experts writing "busy-beaver" style programs to gain a macro-level view of the program's operations. Since the view remains close-up until additional values are required, amateurs are able to focus on individual machine operations.
States
A row of platform-like structures is located in the lower section of the screen. These platforms represent the available states of the turing machine. As the machine changes state, the current state is indicated by the darkest platform. Each platform is comprised of four parts; a read portion, a write portion, "on read" decisions and "on write" actions. The read and write portions of the state platform are the located just above the stationary base / surface (the darker brown region). Positioned in this way, they bridge the gap between the moving portions of the turing machine (the tape and the history lines) and the stationary programming rules beneath the surface.
The read portion of the state platform is represented by the slightly taller left region that is marked with a downward facing arrow. When the machine is running, the read head receives information from the tape (from across the history space) into a receptacle notch. The "on read" decision is represented as a post running downward from the read portion. This post protrudes beneath the surface, the darker brown region. Along this post is a sequence of colors representing the alphabet that the machine has available. Each color of the "on read" decision post, combined with the particular state, represented by the platform the post is connected to, forms the "if" portion of each turing rule. For example, a traditional turing rule that begins with "if in state '2' and reading 'A'" could be thought of as "whenever on the second platform and reading blue".
The rightmost region of the state platform, marked with an upward facing arrow, is the write portion of the state platform. It contains two small turret-like stuctures, each with an associated post running downward, decending beneath the surface. The two turret structures, resembling canons or hoses, represent the component of turing rules that "writes and moves left" or "writes and moves right". Both the "write and move left" and the "write and move right" turrets have posts below them with the alphabet of colors. Here the colors represent what color will be written to the tape during the "on write" action the left or right post represents which direction the read / write head will move. This write portion forms the "then" half of a turing rule.
Listing all available turing alphabet options (colors) in the columns beneath each platform enables the user to understand exactly how many possible rules there could be. This aids novices and amateurs with understanding the implications imposed by different alphabet sizes and relieves experts of tedious checks to ensure that they have covered all possible options.
|
 |

Rules
The "if" portion of a rule, as described in the previous section, is tied to the associated "then" portion by way of a patch cable (a bowed connecting line) from state platform to state platform. The patch cables originate from the intended color in the post under the intended platform and end at the intended head movement control area under the intended platform. In other words, the cables run from the "if reading" color swatches of the "current state" platform to the "move head" area under the "new state" platform. The color of the patch cable is the color that will be written to the tape for that rule.
It was important in the design of the patch cables that have "good feel" so they encourage new users to play with them. To achieve "good feel" the cables model the physical weight and springiness of cables. When the machine runs the current cable decision bounces to draw the users attention to what rule is currently being used.
Control Panel
Against the left edge of the screen sits a control panel for the turing Machine. This panel contains buttons that alter the behavior of the turing machine and the allow for the loading of sample programs. The set of control panel actions were carefully chosen so that all buttons are active all of the time. Using the play and stop buttons the user is able to start, pause and unpause the machine. A step button is also provided to enable the user to view each action of the machine singularly. Completing the four control buttons, the reset button removes the all the program rules, clears the read/write history, sets the same value to the entire turing tape, and sets the leftmost turing state to be active. The remaining buttons in the control panel resemble floppy disks. These buttons represent example programs that can be loaded into the turing machine. Pressing a floppy disk resets the machine, creates turing rules, and will enter turing tape values onto the tape if neccessary.
History
The open space between the tape and rules displays the current read / write operation and a historical record of these operations. Each read and write operation of the machine results in a colored line drawn between the location of the head on the tape and the active state platform. The color of each line indicates the value of each read or write operation. If the machine reads red, a red line is drawn. If the machine writes blue, a blue line is drawn. Displaying the color of each operation as a composited line, an informative and intriguing multicolor line-art graphic is created over time. In order to maintain clarity, the lines fade as they age so that no more than five hundred lines are visible at once.
The resulting collection of colored lines often becomes unevenly distributed, with more lines connecting to some state platforms than others. This uneven build-up surfaces how often specific states are used. Often there are states that are only visited near the beginning or end of a long series of operations, these states are clearly discernable from this visualization.
Adding a line to a growing collection during each operation also enables the novice user to grasp two important concepts of computation. The first of these concepts being the machine's ability to perform a large number of operations from a small number of instructions. Secondly, and perhaps most importantly, the large number of machine operations required to perform a seemingly simple task like addition of two integers. These two foundational concepts are communicated just by casual observation by the novice user.
Future Work
Further development is focused upon increased flexibility. Ideally, the user should be able to add more then five states and expand the alphabet beyond six if necessary. This would require more than just allowing more states to appear on the screen since the limited size of the display causes the states to become illegible if increased beyond five. Future versions of the interface would also allow the user to specify the number of history lines showing at any given moment.
|