131 lines
5.2 KiB
HTML
131 lines
5.2 KiB
HTML
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||
|
<HTML>
|
||
|
<HEAD>
|
||
|
<TITLE>Galapagos - Background</TITLE>
|
||
|
<META NAME="Author" CONTENT="">
|
||
|
<META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (Win95; I) [Netscape]">
|
||
|
</HEAD>
|
||
|
<BODY background=stone.jpg>
|
||
|
|
||
|
<P>
|
||
|
<CENTER>
|
||
|
<A href="index.html"><IMG border=0 src=prev.gif ALT=" [PREV] "></A>
|
||
|
<A href="extensions.html"><IMG border=0 src=next.gif ALT=" [PREV] "></A>
|
||
|
<A href="index.html#toc"><IMG border=0 src=toc.gif ALT=" [PREV] "></A>
|
||
|
</CENTER>
|
||
|
<HR width=80% align=right color=blue>
|
||
|
<P>
|
||
|
<H2 ALIGN=CENTER><A NAME="top"></A><FONT SIZE=+4>Background</FONT></H2>
|
||
|
|
||
|
<UL>
|
||
|
<LI><A HREF="background.html#SCHEME">SCHEME</A></LI>
|
||
|
<LI><A HREF="background.html#LOGO AND TURTLE">LOGO and Turtle Geometry</A></LI>
|
||
|
<LI><A HREF="background.html#OBJECTIVES">Objectives</A></LI>
|
||
|
<LI><A HREF="background.html#AVAILABILITY">Avaliability</A></LI>
|
||
|
</UL>
|
||
|
|
||
|
<H2>
|
||
|
<HR WIDTH="100%"></H2>
|
||
|
|
||
|
<H2><A NAME="SCHEME"></A>SCHEME</H2>
|
||
|
|
||
|
<P>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".<BR>
|
||
|
</P>
|
||
|
|
||
|
<P>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.<BR>
|
||
|
</P>
|
||
|
|
||
|
<P>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].<BR>
|
||
|
</P>
|
||
|
|
||
|
<P>Galapagos is built over the SCM interpreter version 4e4 written by Aubrey
|
||
|
Jaffer <jaffer@ai.mit.edu>.<BR>
|
||
|
<BR>
|
||
|
<BR>
|
||
|
</P>
|
||
|
|
||
|
<H2><A NAME="LOGO AND TURTLE"></A>LOGO AND TURTLE GEOMETRY<BR>
|
||
|
</H2>
|
||
|
|
||
|
<P>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.<BR>
|
||
|
</P>
|
||
|
|
||
|
<P>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 <B>forward</B>,
|
||
|
turn right 90 <B>degrees</B>, 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."<BR>
|
||
|
</P>
|
||
|
|
||
|
<P><A NAME="OBJECTIVES"></A><B><FONT SIZE=+2>OBJECTIVES</FONT></B><BR>
|
||
|
</P>
|
||
|
|
||
|
<P>The two major goals behind Galapagos were:<BR>
|
||
|
</P>
|
||
|
|
||
|
<P>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.<BR>
|
||
|
</P>
|
||
|
|
||
|
<P>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.<BR>
|
||
|
</P>
|
||
|
|
||
|
<P><A NAME="AVAILABILITY"></A><B><FONT SIZE=+2>AVAILABILITY</FONT></B><BR>
|
||
|
</P>
|
||
|
|
||
|
<P>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 <A href="index.html#download">available</A> at the
|
||
|
homepage:<BR>
|
||
|
</P>
|
||
|
|
||
|
<CENTER><P><TT>
|
||
|
<A HREF="http://www.cs.bgu.ac.il/~elad/GALAPAGOS">http://www.cs.bgu.ac.il/~elad/GALAPAGOS</A>
|
||
|
</TT>
|
||
|
</P></CENTER>
|
||
|
|
||
|
|
||
|
<P>
|
||
|
<HR width=80% align=left color=blue>
|
||
|
<CENTER>
|
||
|
<A href="#top"><IMG border=0 src=back.gif ALT=" [TOP] "></A>
|
||
|
<A href="index.html"><IMG border=0 src=prev.gif ALT=" [PREV] "></A>
|
||
|
<A href="extensions.html"><IMG border=0 src=next.gif ALT=" [PREV] "></A>
|
||
|
<A href="index.html#toc"><IMG border=0 src=toc.gif ALT=" [PREV] "></A>
|
||
|
</CENTER>
|
||
|
</BODY>
|
||
|
</HTML>
|