You are on page 1of 2

Visualizing Computation

Visualizing Computation
3 Contributing
A Compendium of Visual Techniques for Understanding
the Execution of Software
Policy: If a diagram you draw or see isn't dened in this
text, please add it (or have your student add it). Refer to
Diagrams play a central role in communication in many the style guide for ideas of what belongs in a page, or the
elds, and computer science is no exceptionour class- quick-start guide if you have never added to a Wikibooks
room lectures, research talks, textbooks, and Wikipedia or Wikipedia entry before.
pages are full of visual material to complements to our Note to authors of papers and textbooks: According to
words. The forms of these diagrams are typically dened the answer I got in the reading room, uploading your
vaguely if at all. While this may be appropriate in a lec- content constitutes a non-exclusive grant to copy. As I
ture setting, uncertainty about the diagram can lead to understand things, this means you can still use the verconfusion as students study their notes or books. Visu- sion you uploaded however you like (as long as you don't
alizing Computation is an archive of denitions of use- grant someone else an exclusive copyright), so you can
ful visualization techniques that are often used in lectures still include your original material in non-GFDL docuwithout extensive discussion.
ments (though you should probably make a traditional

publisher aware of the GFDL version thats out there). If

you are unsure about the legal status of material you are
using, it should be sucient to pick a dierent example
and draw a fresh diagram thats not covered by someone
elses copyright.


Each page of this book covers a particular approach to visualizing some aspect of the execution of software. Each
page should serve as a stand-alone denition of the diagram style, but not a complete description of the system being visualized. For example, Visualizing Computation describes diagrams that can be used to illustrate stack frame layout or evolving stack frame layouts,
but leaves the denition and use of stack frames for the
Wikipedia call stack entry or professors lectures. The visualizations themselves may be static illustrations of static
entities, techniques for capturing evolution-over-time in a
static image, or (in principle) animations.

4 The Visualizations
Memory layout and memory evolution diagrams
Drawings of call trees
Drawing graphs of data-ow among statements of a
function or among dierent executions of statements
Function Machine

Why a Wikibook?

This book is designed to collect topics too specialized

even for Wikipedias notability policy (Wikipedia is not
a directory of everything in existence). In particular, descriptions of interesting local variations in drawing style
are encouraged, not discouraged. This project itself stems
from repeated observations by Wonnacotts students at
Haverford College, who pointed out the diculties of
taking good notes when the professor keeps erasing and
overwriting the same diagram.


Text and image sources, contributors, and licenses



Visualizing Computation Source: Contributors: Adrignola,

Davew haverford, MariaDroujkova and Harrybrowne1986



File:00_percents.svg Source: License: CC0 Contributors: File:

00%.svg Original artist: Siebrand
File:Information_icon4.svg Source: License: Public domain Contributors: modied versions from below, which were modies of Original artist: penubag (color adjustments)


Content license

Creative Commons Attribution-Share Alike 3.0