E and E-Run

E is a simple programming language designed for making visual images by means of numerical algorithms. Because the language is specialized it lacks the rich collection of features typical of a general-purpose programming language, and yet to achieve its special purpose it has some features not found in more general languages. E derives in part from Logo, a deceptively powerful language that is more often associated in people's minds with teaching kids than with sophisticated computer graphics. The key concept in Logo of turtle geometry is simple and the world it opens up is vast. Imagine a tiny robot turtle one pixel big crawling across your computer screen, responding to your commands. You can make the turtle go forward or back, or rotate in place to the left or to the right. You can make it leave its trail as a line of light on your screen or you can bid it move invisibly. You can make it change the color of its light. That's all the turtle can do. But embedding those commands in a program that can loop and branch and strut and soar can really make that turtle dance.

I'll mention two advanced books that show how sophisticated turtle exploration can be. Turtle Geometry by Abelson and diSessa (MIT Press, 1980) lives up to its subtitle, The Computer as a Medium for Exploring Mathematics. They begin with the simplest of turtle dances and end up in the General Theory of Relativity. Along the way they show how to generate some nifty graphics.

The Algorithmic Beauty of Plants by Prusinkiewicz and Lindenmayer (Springer-Verlag, 1990) employs turtle geometry for simulating growth patterns and morphological development in plants. They take this idea quite a distance.

Turtle geometry differs from the more familiar coordinate geometry where algebraic equations can be plotted in the real number plane. In turtle geometry coordinates are ignored and all motion is relative to the starting point, expressed in terms of forward, back, left and right.

E contains the turtle graphics functionality of Logo, but also permits the plotting of points in the plane, as well as combining coordinate geometry with turtle geometry in the same images. The E turtle is a "coordinate-aware turtle". It knows its way around the plane when that's useful, but it can also close its eyes and just move along obeying turtle commands.

In addition, there are facilities in E for performing transformations on already created images. Like translating a color image to a pseudo- halftone for printing on a black and white laser printer. Like simulating a double exposure of two images. Like floating an image onto a wave.

The Image Buffer and the Screen

There are two places in the computer where an E program can build an image, one is on the screen (computer monitor) and the other is a region of memory called the image buffer. E programs know nothing about the image buffer and the screen. They use the real number plane as the playing field. E-Run, as it interprets an E program, builds the image in the image buffer or on the screen or both.

The point of the buffer is to overcome the size limitations of the screen when generating an image that's meant to be saved in a file or sent to a printer or other output device. The size of the image in the buffer is in no way constrained by the resolution of the screen, but only by the amount of memory on the computer. This means that very high resolution images can be created and sent to very high resolution output devices. E-Run directly supports only black and white laser printers. However, images can be saved as PCX files and this provides a way of bringing your images into other programs that support other output devices, including color printers and film recorders.

Back to Home Page