World Library  
Flag as Inappropriate
Email this Article

Logo (programming language)


Example Logo output
Paradigm multi-paradigm:functional educational, procedural, reflective
Designed by Wally Feurzeig, Seymour Papert
Developer Wally Feurzeig, Seymour Papert
First appeared 1967 (1967)
Typing discipline dynamic
Major implementations
UCBLogo, many others
StarLogo, NetLogo
Influenced by
Smalltalk, Etoys, Scratch, NetLogo, KTurtle, REBOL, Boxer

Logo is an educational programming language, designed in 1967 by Daniel G. Bobrow, Wally Feurzeig, Seymour Papert and Cynthia Solomon. Today the language is remembered mainly for its use of "turtle graphics", in which commands for movement and drawing produced line graphics either on screen or with a small robot called a "turtle". The language was originally conceived to teach concepts of programming related to LISP and only later to enable what Papert called "body-syntonic reasoning" where students could understand (and predict and reason about) the turtle's motion by imagining what they would do if they were the turtle. There are substantial differences between the many dialects of Logo, and the situation is confused by the regular appearance of turtle graphics programs that mistakenly call themselves Logo.

Logo is a multi-paradigm adaptation and dialect of Lisp, a functional programming language.[1] There is no standard Logo, but UCBLogo has best facilities for handling lists, files, I/O, and recursion in scripts, and can be used to teach all computer science concepts, as UC Berkeley lecturer Brian Harvey did in his Computer Science Logo Style trilogy.[2] For tertiary level teaching, however, Logo has been superseded by Scheme, and scripting languages.


  • History 1
  • Name 2
  • Design 3
    • Turtle and graphics 3.1
  • Implementations 4
  • Influence 5
  • See also 6
  • References 7
  • Further reading 8
  • External links 9


Logo was created in 1967 at Bolt, Beranek and Newman (BBN), a Cambridge, Massachusetts research firm, by Wally Feurzeig and Seymour Papert.[3] Its intellectual roots are in artificial intelligence, mathematical logic and developmental psychology. The first four years of Logo research, development and teaching work was done at BBN. The first implementation of Logo, called Ghost, was written in LISP on a PDP-1. The goal was to create a math land where kids could play with words and sentences.[4] Modeled on LISP, the design goals of Logo included accessible power and informative error messages. The use of virtual Turtles allowed for immediate visual feedback and debugging of graphic programming.

The first working Logo turtle robot was created in 1969. A display turtle preceded the physical floor turtle. Modern Logo has not changed too much from the basic concepts before the first turtle. The first turtle was a tethered floor roamer, not radio-controlled or wireless. At BBN Paul Wexelblat developed a turtle named Irving that had touch sensors and could move forwards, backwards, rotate, and ding its bell. The earliest year-long school users of Logo were in 1968-69 at Muzzey Jr High, Lexington MA. The virtual and physical turtles were first used by fifth graders at the Bridge School in Lexington, MA in 1970-71.


"Logo" is not an acronym. It was derived from the Greek logos meaning word or "thought" by Feurzeig,[5] to distinguish itself from other programming languages that were primarily numbers, not graphics or logic, oriented.


Logo is usually an interpreted language, although there have been developed compiled Logo dialects—such as Lhogho or Liogo. Logo is not case-sensitive but retains the case used for formatting. It is a compromise between a sequential programming language with block structures, and a functional programming language.

Turtle and graphics

Logo's most-known feature is the turtle (derived originally from a robot of the same name),[6] an on-screen "cursor" that showed output from commands for movement and small retractable pen, together producing line graphics. It has traditionally been displayed either as a triangle or a turtle icon (though it can be represented by any icon). Turtle graphics were added to the Logo language by Seymour Papert in the late 1960s to support Papert's version of the turtle robot, a simple robot controlled from the user's workstation that is designed to carry out the drawing functions assigned to it using a small retractable pen set into or attached to the robot's body.

As a practical matter, the use of turtle geometry instead of a more traditional model mimics the actual movement logic of the turtle robot. The turtle moves with commands that are relative to its own position, LEFT 90 means spin left by 90 degrees. Some Logo implementations, particularly those that allow the use of concurrency and multiple turtles, support collision detection and allow the user to redefine the appearance of the turtle cursor, essentially allowing the Logo turtles to function as sprites.

Multiple turtles are supported by MSWLogo, as well as 3D graphics. Input from COM ports and LPT ports are also allowed by MSWLogo through windows GUI. Interrupts can be triggered via keyboard and mouse events. Simple GIF animations may also be produced on MSWLogo version 6.5 with the gifsave command.

Turtle geometry is also sometimes used in environments other than Logo as an alternative to a strictly coordinate-addressed graphics system. For instance, the idea of turtle graphics is also useful in Lindenmayer system for generating fractals.


Some modern derivatives of Logo allow thousands of independently moving turtles. There are two popular implementations: MIT's StarLogo and Northwestern University CCL's NetLogo. They allow for the exploration of emergent phenomena and come with many experiments in social studies, biology, physics, and other areas. NetLogo is widely used in agent-based simulation in the biological and social sciences.

Although there is no single agreed-upon standard, there is a broad consensus on core aspects of the language. As of March 2009 there were 197 implementations and dialects of Logo, each with its own strengths.[7] Most of those 197 are no longer in wide use, but many are still under active development. Commercial Logos that are still widely used in schools include MicroWorlds Logo and Imagine Logo.

Apple Logo, developed by LCSI, was the most broadly used and prevalent early implementation of Logo that peaked in the early to mid-1980s, largely due to marketing by Apple's Apple II computer. TI Logo (for the TI 99/4A computer) was also used in primary schools, emphasizing Logo's usefulness in teaching computing fundamentals to novice programmers. IBM marketed their own version of Logo (P/N 6024076), also developed by LCSI (Logo Computer Systems, Inc), for their then-new IBM PC.

MSWLogo which is more refined and also free. After that, Jim Muller wrote The Great Logo Adventure which was a complete Logo manual and which used MSWLogo as the demonstration language. The book is now out of print, but Jim has released all the files in pdf format. (Check the Logo Foundation website for details.) MSWLogo has evolved into FMSLogo: An Educational Programming Environment.

Most Logos are 2D, but the Elica interpreter is notable for supporting 3D graphics. Most Logo implementations are interpreted, but some compilers have been built, including the Lhogho compiler, by the same author as Elica. Although most often used for graphics, Logo can also control robots. It was interfaced with Lego bricks, although Lego decided later to use another language in the commercial Lego Mindstorms products. An interface also exists for Cricket robots.

VRMath 2.0 (VRMath2) is an online learning community and another 3D Logo implementation. VRMath2's Logo Editor (VRMath2 Editor) is an online application, which runs in browsers that support WebGL (see WebGL). It is implemented using HTML5, JavaScript, X3D, and X3DOM technologies. Its Logo interpreter is based on Joshua Bell's JavaScript Logo Interpreter with a set of 3D extension. The VRMath2 online learning community empowers members to design, create, and share their 3D virtual worlds.

ObjectLOGO is a variant with object-oriented extensions.

aUCBLogo a rewrite and enhancement of UCBLogo.

Logo3D is a tridimensional version of Logo and can be found at Logo (programming language) on

TurtleTracks, an open source Logo implementation in Java, was designed and implemented by Daniel Azuma, based on BSD Logo (with various extensions). It was later ported to .NET / J# by George Birbilis.

E-Slate Logo is an enhancement of TurtleTracks Logo with object-oriented programming (OOP) primitives (TELL, ASK, EACH and TELLALL). It was designed and implemented by George Birbilis.

In 1990 a version appeared for the Acorn Electron, Electron User in February 1990 published Timothy Grantham's simple implementation of this programming language under the article "Talking Graphics", a first glimpse most electron users ever saw of this simple but intuitive programming language.

Work continues to be done in writing Logo implementaions. In 2012, the LibreOffice team developed LibreLogo as an extension to some LibreOffice versions. Libre-Logo is written in Python and allows vector graphics to be written in Writer.

In 2014, a new web based logo interpreter was introduced: Surf Your Logo Code, designed and implemented using HTML5, CSS3 and JQuery. This modern web platform offers the possibility to run the logo code with turtle animation. Its Logo interpreter is based on Joshua Bell's JavaScript Logo Interpreter with an animation extension script.


Logo was a primary influence on the Smalltalk programming language. It is also the main influence on the Etoys educational programming environment and language, which is essentially a Logo written in Squeak (a variant of Smalltalk).

Logo provided the underlying language for Boxer. Boxer was developed at Berkeley and MIT and is based on a 'literacy model', making it easier to use for everyday people.

KTurtle is a variation of Logo implemented at Qt for the KDE environment loosely based on Logo.[8]

The latest results of Logo's influence is the Kojo, a variant of Scala and Scratch educational programming language, which runs on Squeak, a variant of Smalltalk, which was inspired by Logo.

See also


  1. ^ CSLS Vol 1, Preface .pxvi, Harvey 1997
  2. ^ Computer Science Logo Style, Brian Harvey, MIT Press (3 volumes) ISBN 0-262-58148-5, ISBN 0-262-58149-3, ISBN 0-262-58150-7. Available online
  3. ^ Logo Foundation (link broken)
  4. ^ Cynthia Solomon
  5. ^
  6. ^ Logo Foundation
  7. ^ The Logo Tree Project
  8. ^ The programming language used in KTurtle is loosely based on Logo.

Further reading

  • 1997 Computer Science Logo Style, Brian Harvey, MIT Press (3 volumes) ISBN 0-262-58148-5, ISBN 0-262-58149-3, ISBN 0-262-58150-7. Available online
  • How to Think Like a Computer Scientist: Logo Version (Paperback), Allen Downey & Guido Gay, Lulu .
  • The Great Logo Adventure, Jim Muller, Doone Publications ISBN 0-9651934-6-2 (Now out of print, but downloadable free of charge in pdf form from The MSWLogo website - from where you can also download the freeware MSWLogo program)
  • (1976)To Artificial Intelligence Early AI textbook where Logo is used extensively. (Using the Edinburgh University dialect, AI2LOGO)
  • Turtle Geometry Abelson and diSessa
  • Children Designers, Idit Harel Caperton, Ablex Publishing Corporation ISBN 0893917885. Available online
  • Learning With Logo, Daniel Watt, McGraw Hill, ISBN 0-07-068570-3. Available Through Amazon
  • Teaching With Logo: Building Blocks For Learning, Molly Watt and Daniel Watt, Addison Wesley (now Pearson) 1986, ISBN 0-201-08112-1 Available through Amazon

External links

  • Logo (programming language) at DMOZ
  • Logo Interpreter
  • papert: logo in your browser
  • Online PHP-based Logo Interpreter
  • TurtleAcademy (Learn Logo for free)
  • VRMath 2.0
  • XLogo is a Logo interpreter written in Java.
  • XLogo4Schools is a revised version of XLogo.
  • Surf Your Logo Code! is a modern (HTML5, CSS3, JQuery and more) web based online logo interpreter.
  • Visual Logo Contact here for Visual Logo
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.