Berkeley Logo (UCBLogo) 5.5 released (freeware)

Skip to first unread message

Brian Harvey

Aug 10, 2005, 2:51:17 PM8/10/05

Release 5.5 of Berkeley Logo is now available by anonymous FTP or Web.
Versions are available for Unix, Windows, and MacOS X. (The DOS and
MacOS Classic versions are frozen at 5.3, still online.)
Berkeley Logo (a/k/a UCBLogo) is FREE SOFTWARE, with source code included.

Logo is the educational programming language best known for its "turtle
graphics" but also featuring easy and powerful facilities for computing
with words and sentences. Sample projects included with the Berkeley
Logo distribution range from a tic-tac-toe game to a Pascal compiler and
a Logo implementation of Student, Daniel Bobrow's program that solves
algebra word problems.

Berkeley Logo is distributed under the terms of the GNU General Public
License: You may redistribute it freely, and you may use it as a base
for developing additional free software, but you may not use it as a base
for commercial software products. The exact details are included in the
distribution, in the file named GPL.

Advantages of Berkeley Logo:

* It's free.
* It comes with source files (in C).
* Logo programs are completely compatible among Unix, PC, and Mac.

Disadvantages of Berkeley Logo:

* It's relatively slow.
* It doesn't do anything fancy about graphics. (One turtle.)

This announcement has five more parts:
* How to get Berkeley Logo.
* Installation instructions.
* Details about this release.
* Pointers to other people's Berkeley-Logo-related distributions.
* Instructions for DOS and MacOS Classic.


To use a web browser, go to

Or, FTP to and get any of the following files:

pub/ucblogo/ucblogo.tar.gz Unix sources and documentation (gzip format)

pub/ucblogo/ucbwlogosetup.exe Windows version, self-installing, with
executable UCBWLOGO.EXE

Mac OS X version, BinHexed installer

pub/ucblogo/usermanual Just the documentation file.

(The filenames above are links to filenames that include the version number,
e.g., ucblogo-5.5.tar.gz; either name is okay. Anything other than these
versions, if still online, is in the subdirectory pub/ucblogo/old.)


The Windows and Mac versions include a SOURCE subdirectory containing
the C source files used to compile Berkeley Logo. If you don't want to play
with the code, you can delete this directory and all its contents. You can
also delete some or all of the contents of the DOCS directory, which has the
usermanual in various formats (Postscript, PDF, HTML, INFO, TEXI). The
HTML files are particularly huge, if you're looking for something to delete.
(In the Unix version, the source files are in the top-level directory of the

In the source directory, the file plm is a Program Logic Manual that
documents some of the inner mysteries of this interpreter. You should read
_Structure and Interpretation of Computer Programs_ before you read plm.
Also included is, a beautiful one-page simplified flowchart
of the evaluator to admire while reading plm.

In the Unix version, if you want to save space, you can delete the entire
ucblogo directory created by tar once you've done "make install".


The Unix version is a compressed tar file. To install it, copy to your
machine, then say
gunzip ucblogo.tar
tar -xf ucblogo.tar
cd ucblogo

The makefile compiles with optimization turned off. This is necessary to
avoid mysterious garbage collection failures. (NOTE: On my HP 712, for
reasons I don't understand, I had to compile the entire interpreter without
optimization. But on other platforms, such as PCs running Linux and FreeBSD,
it's sufficient merely to un-optimize mem.c. If that works on your machine,
you can remove the "-O0" at the end of the CFLAGS line at the beginning of the
makefile, after running configure.)

A real UI project is in the works, but meanwhile, you might be interested in
rlwrap, a program that "wraps" the GNU Readline library around an arbitrary
command, so that by saying "rlwrap logo" you'll be able to get line editing,
command history, etc:


The Windows version is in the form of an installer, with the usual options
for desktop icons and the like.

The Logo interpreter, named UCBWLOGO.EXE, requires Windows 95/98/Me/NT/2000/XP
or later (not 3.1; sorry). It is distributed as a self-installing setup file.


There is a separate installer for the Mac OS X version. This is the same
as the Unix version, but precompiled for the Mac. You must also install
the X11 package from the Developer Tools CD-ROM in the OS X distribution.
(The Logo installer will warn you if you don't have X11 installed.) You
need an administrator account to install Logo.

If you're installing Logo at a school at which nobody uses X11 for anything
else, you can make it so clicking the X11 icon in the dock will start Logo
as it's starting X11. To do that, in the file /etc/X11/xinit/xinitrc,
change the lines at the end that now say
# start some nice programs
xterm &
# start the window manager
exec quartz-wm
so that they instead say
/usr/X11R6/bin/quartz-wm &
/usr/X11R6/bin/xterm +sb -n Logo -e logo
I actually put more xterm arguments on that last line, to control the
appearance of the window to suit my preferences, like this:
/usr/X11R6/bin/xterm +sb -n Logo -bg black -fg white -ms orange
-fn -adobe-courier-medium-r-normal--20--75-75-m-0-iso8859-1
-geometry 80x25-5+124 -e logo
(That's actually one long line in the file.) Say "man xterm" in the shell
to learn all the options.

A real UI project is in the works, but meanwhile, you might be interested in
rlwrap, a program that "wraps" the GNU Readline library around an arbitrary
command, so that by saying "rlwrap logo" you'll be able to get line editing,
command history, etc:


All platforms:

The turtle is drawn one step behind its actual "hot spot" position,
so that after drawing a polygon it doesn't obscure part of the
resulting figure. (This is a heuristic; it will still obscure parts
of really dense figures.)

PRINTOUT un-abbreviates PO.

A valid procedure name followed by a string of digits, with no space
in between, e.g., FD100, is recognized as if there were a space, with
a warning message.

BUTTONP outputs TRUE if a mouse button is down and the mouse is
over the graphics window. Once the button is down, BUTTONP remains
true until the button is released, even if the mouse is dragged out
of the graphics window.

BUTTON outputs 0 if BUTTONP would output FALSE; otherwise, it
outputs an integer between 1 and 3 indicating which button was
pressed. Ordinarily 1 means left, 2 means right, and 3 means
center, but operating systems may reconfigure these.

MOUSEPOS outputs the coordinates of the mouse, provided that it's
within the graphics window, in turtle coordinates.

SETPC/SETBG now accept either a color number as before or an RGB list;
PC/BG output whichever form was most recently given to SETPC/SETBG.

SETPENSIZE accepts a single positive integer n meaning [n n].

ARC reduces angles greater than 360 to 360 + (angle mod 360) so that
long uninterruptable arcs don't happen when kids type in huge angles.

CLEARTEXT flushes output so it happens right away.

Backquotes (`) can now be nested.

New demo programs (in CSLS folder even though not from CSLS):
MINES (minesweeper), MASTER (mastermind), DOTGAME (dots).
Also STREAMS (inelegant implementation of lazy lists) and
BUTTONS (simple GUI with clickable buttons in graphics window).
The file GAMEDOC in the UCBLOGO directory (Mac version: installed
into /usr/doc/logo/gamedoc) documents these new projects.

Turtle moves with distance greater than 2^31 get an error message
instead of wrong results.

Error message for extra procedure inputs inside parens now includes
the procedure name.

Fixed parsing in LOAD of lines with both ; and ~.

Fixed buffer overrun in copydef of procedure with long title line.

Buried variable LogoVersion has as its value a floating point
number equal to the current UCBLogo version number.

Buried variable LogoPlatform has as its value one of these words:

Better error message when the expression returned by a macro uses
an undefined procedure.

Most file I/O error messages include the filename.


The MAXIMIZE.WINDOW command takes one input. If TRUE, maximize
the Logo window to fill the screen; if FALSE, return the window to
its ordinary size. (I added this just for Windows because I needed
it to let the new game examples fit! Soon there'll be a uniform
cross-platform UI, I promise.)

The installer lets you choose between Jove (the mini-Emacs that has
always been included with UCBLogo) and Notepad (M$ stripped-down
editor for beginners) as the default editor.


Installer allows TextEdit or Emacs as the default editor.



MSWLogo is a free port of Berkeley Logo to Microsoft Windows done by George
Mills. He has added a lot of Windows-specific capability to the language,
so you can do cool multimedia stuff with it. Look in


Adaptation francaise pour MSWLogo et UCBLogo:

A startup file and documentation for UCBLogo in French is at

Thanks to Francis Leboutte.


To use a web browser, go to

Or, FTP to and get any of the following files:

pub/ucblogo/blogo.exe DOS version, PKZIP format, including
executables BL.EXE and UCBLOGO.EXE

pub/ucblogo/ucblogo.sea Mac Classic version, StuffIt format,
w/executable Logo
pub/ucblogo/ucblogo.sea.hqx Mac Classic version, BinHexed StuffIt format,
including executable Logo

Be sure to use BINARY transfer mode when retrieving the archive files!


The DOS 5.3 version is in the form of a self-extracting PKZIP archive.
Run BLOGO.EXE ; it will create two files, INSTALL.BAT and INSTALLU.EXE. Then
run INSTALL to create a C:\UCBLOGO directory with the complete
distribution. If you want to install
Logo somewhere other than C:\UCBLOGO, you can say
installu -d d:\foo\
to put it in d:\foo\ucblogo. DON'T FORGET THE "-d" PART!

The DOS distribution includes two executable programs. BL.EXE runs on any
DOS PC, but is limited to 640K of memory. UCBLOGO.EXE requires a
286-or-better processor, but is able to take advantage of extended memory if
you have it. Read the README file for technical details.

The BL.EXE version, for really old 8086 PCs, is frozen at version 3.6,
because the garbage collection algorithm introduced in version 4.0
doesn't work well with really small memory.


The Mac Classic 5.3 version is in the form of a BinHex-converted
self-extracting StuffIt archive. To install it, just copy to your hard disk,
un-BinHex it (this may be done automatically by your file transfer program),
and double-click on it.

submissions: post to k12.ed.math or e-mail to
private e-mail to the k12.ed.math moderator:
newsgroup website:
newsgroup charter:

Reply all
Reply to author
0 new messages