[PREV]  [PREV]  [PREV]

Background


SCHEME

Scheme is a dialect of Lisp that stresses conceptual elegance and simplicity. It is specified in R4RS and IEEE standard P1178. Scheme is much smaller than Common Lisp; the specification is about 50 pages, compared to Common Lisp's 1300 page draft standard. (See the Lisp FAQ for details on standards for Common Lisp.) Advocates of Scheme often find it amusing that the entire Scheme standard is shorter than the index to Guy Steele's "Common Lisp: the Language, 2nd Edition".

Scheme is often used in computer science curricula and programming language research, due to its ability to represent many programming abstractions with its simple primitives.

There are a lot of traditional SCHEME interpreter available such as Chez, ELK 2.1, GAMBIT, MITScheme, scheme->C, Scheme48, T3.1, VSCM and Scm4e. Many free Scheme implementations (as well as SCM) are available from swiss-ftp.ai.mit.edu [18.43.0.246].

Galapagos is built over the SCM interpreter version 4e4 written by Aubrey Jaffer <jaffer@ai.mit.edu>.


LOGO AND TURTLE GEOMETRY

LOGO is a programming language designed for use by learners, including children. It is a dialect of LISP which has a more natural syntax, using infix arithmetics and (almost) no parentheses. LOGO features a "turtle" which can be instructed to move across the screen and draw shapes. This became known as "Turtle Graphics" or "Turtle Geometry" - a geometry that describes paths "from within" rather than "from outside" or "from above." For example, "turn right" means turn right relative to whatever direction you were heading before; by contrast, "turn east" specifies an apparently absolute direction. A Logo user or program manipulates the graphical turtle by telling it to move forward or back some number of steps, or by telling it to turn left or right some number of degrees.

Turtle geometry has two major advantages. One is that many paths are more simply described in relative than in absolute terms. For example, it's easy to indicate the absolute coordinates of the corners of a square with vertical and horizontal sides, but it's not so easy to find the corners of an inclined square. In turtle geometry the same commands (go forward, turn right 90 degrees, etc.) work for squares with any orientation. The second advantage is pedagogic rather than computational: turtle geometry is compatible with a learner's own experience of moving in the world - it's "body syntonic."

OBJECTIVES

The two major goals behind Galapagos were:

First, we wanted to create an environment suitable for teaching programming, patterned after Logo's environment and its easy-to-understand, easy-to-use turtle geometry. We chose Scheme as the programming language because of its educational value, as noted before. We added Turtle Graphics because of its ability to visualize computations, and thus help understanding them better.

Second, we wanted to add parallel programming. The importance of multiprocessor machines and of multithreading is becoming more apparent every day, and so is the need for tools to help understanding parallel programming paradigms. By extending Scheme to be multithreaded, we wanted to create such a tool.

AVAILABILITY

Galapagos was developed to run under Windows 95, and should work under Window NT as well. (It uses 32-bit specific code so Win32s is not enough to run Galapagos). Both binary and source are available at the homepage:

http://www.cs.bgu.ac.il/~elad/GALAPAGOS


 [TOP]  [PREV]  [PREV]  [PREV]