*** Welcome to piglix ***

UCBLogo

UCBLogo
Ubclogo spiral.png
UCBLogo allows for recursion, the process where a procedure calls itself. On the image a spiral produced by a recursive script.
Paradigm multi-paradigm:functional educational, procedural, reflective
Designed by Brian Harvey
Developer Dan van Blerkom, Michael Katz, and Doug Orleans.
Substantial contributions also by Freeman Deutsch, Khang Dao, Fred Gilham, Yehuda Katz, George Mills, Sanford Owings, and Randy Sargent.
First appeared 1992
Typing discipline dynamic
Website www.cs.berkeley.edu/~bh/logo.html
Influenced by
Lisp
Influenced
Smalltalk, Etoys, Scratch, NetLogo, KTurtle, REBOL

UCBLogo, also known as Berkeley Logo, is closest to a de facto standard Logo programming language with its facilities for handling lists, files, I/O, and recursion in scripts, and can be used to teach most computer science concepts, as UC Berkeley lecturer Brian Harvey did in his Computer Science Logo Style trilogy. For tertiary level teaching, however, Logo has been superseded by Scheme, and scripting languages.

UCBLogo has only a rudimentary graphical user interface, so several projects exist that provide a better interface. MSWLogo and its successor FMSLogo, for Microsoft Windows, are commonly used in schools in the United Kingdom and Australia.

Logo was designed in spirit of low threshold and no ceiling, which enables easy entry by novices and yet meet the needs of high-powered users. Animations require both the ability to draw shapes and to erase shapes. The process is the same, except that in the former a line is deposited on the display device and in the latter a line is removed. Using the turtle analogy, the turtle's pen must paint, and the turtle's pen must erase. The turtle can be set to erase anything below it, using the command PENERASE (PE), while the pen can be set to start drawing again with the command PENPAINT (PPT), in UCBLogo.

The analogy of a turtle with a pen attached to its tail is often used. The turtle's pen can be lifted and lowered, thus drawing a rudimentary dotted line.

An example code:

There are three datatypes in UCBLogo:

A number is a special case of word.

There is no static typing. The interpreter detects the datatype by context.

There are two important symbols:

A number is a special case of self-evaluation—it really could be written with a quote. 2 is really "2

Variable assignment (e.g. x := y + 3) is handled in Logo with the make command, as exemplified by these two equivalent statements:


...
Wikipedia

...