A general-purpose language, Logo is widely known for its use ofturtle graphics, in which commands for movement and drawing produced line orvector graphics, either on screen or with a small robot termed aturtle. The language was conceived to teach concepts of programming related toLisp and only later to enable what Papert called "body-syntonic reasoning", where students could understand, predict, and reason about the turtle's motion by imagining what they would do if they were the turtle. There are substantial differences among the many dialects of Logo, and the situation is confused by the regular appearance of turtle graphics programs that are named Logo.
Logo is amulti-paradigm adaptation and dialect of Lisp, afunctional programming language.[3] There is no standard Logo, butUCBLogo has the facilities for handling lists, files, I/O, andrecursion in scripts, and can be used to teach all computer science concepts, asUC Berkeley lecturerBrian Harvey did in hisComputer Science Logo Style trilogy.[4]
Logo is usually aninterpreted language, although compiled Logo dialects (such as Lhogho and Liogo) have been developed. Logo is not case-sensitive but retains the case used for formatting purposes.
The first working Logo turtle robot was created in 1969. A display turtle preceded the physical floor turtle. Modern Logo has not changed very much from the basic concepts predating the first turtle. The first turtle was a tethered floor roamer, notradio-controlled orwireless. 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 inLexington, Massachusetts. The virtual and physical turtles were first used by fifth-graders at the Bridge School in the same city in 1970–71.
Logo's most-known feature is the turtle (derived originally froma robot of the same name),[5] an on-screen "cursor" that shows 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, supportcollision detection and allow the user to redefine the appearance of the turtle cursor, essentially allowing the Logo turtles to function assprites.
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 inLindenmayer system for generatingfractals.
"Apple Logo" redirects here. For the logo of Apple Inc., seeApple logo.
IBM LCSI logo welcome screenSource code and output in IBM LCSI Logo
Some modern derivatives of Logo allow thousands of independently moving turtles. There are two popular implementations:Massachusetts Institute of Technology'sStarLogo andNorthwestern University Center for Connected Learning's (CCL)NetLogo. They allow exploringemergent 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 agreed-upon standard, there is a broad consensus on core aspects of the language. In March 2020, there were counted 308 implementations and dialects of Logo, each with its own strengths.[8] Most of those 308 are no longer in wide use, but many are still under development. Commercial implementations widely used in schools includeMicroWorlds Logo andImagine Logo.
Legacy and current implementations include:
First released in 1980s
Apple Logo for theApple II Plus and Apple Logo Writer for theApple IIe, developed by Logo Computer Systems, Inc. (LCSI), were the most broadly used and prevalent early implementations of Logo that peaked in the early to mid-1980s.
Aquarius LOGO was released in 1982 on cartridge byMattel for theAquarius home computer.
Color Logo was released in 1983 on cartridge (26–2722) and disk (26–2721) byTandy for theTRS-80 Color Computer.
Commodore Logo was released, with the subtitle "A Language for Learning", byCommodore International. It was based on MIT Logo and enhanced by Terrapin, Inc. TheCommodore 64 version (C64105) was released on diskette in 1983; thePlus/4 version (T263001) was released on cartridge in 1984.[9][10]
SmartLOGO was released on cassette byColeco for theADAM home computer in 1984. It was developed by LCSI and included a primer,Turtle Talk, by Seymour Papert.
ExperLogo was released in 1985 on diskette by Expertelligence Inc. for theMacintosh 128K.
Hot-Logo was released in the mid-1980s by EPCOM for theMSX 8-bit computers with its own set of commands in Brazilian Portuguese.
TI Logo (for theTI-99/4A computer) was used in primary schools, emphasizing Logo's usefulness in teaching computing fundamentals to novice programmers.
Sprite Logo, also developed by Logo Computer Systems Inc., had ten turtles that could run as independent processes. It ran on Apple II computers, with the aid of a Sprite Card inserted in one of the computer's slots.
IBM marketed their own version of Logo (P/N 6024076), developed jointly by Logo Computer Systems, Inc. (LCSI), for their then-new IBM PC.
ObjectLOGO is a variant of Logo withobject-oriented programming extensions and lexical scoping. Version 2.7 was sold by Digitool, Inc.[11] It is no longer being developed or supported, and does not run on versions of the Mac operating system later than 7.5.[12]
Acornsoft Logo was released in 1985. It is a commercial implementation of Logo for the 8-bitBBC Micro andAcorn Electron computers.[17] It was developed forAcorn Computers as a full implementation of Logo. It features multiple screenturtles and four-channel sound. It was provided on two 16kBROMs, with utilities anddrivers as accompanying software.[18]
Lego Logo is a version of Logo that can manipulate roboticLego bricks attached to a computer.[19] It was implemented on theApple II and used in American and other grade schools in the late 1980s and early 1990s.[20] Lego Logo is a precursor toScratch.[21]
First released in 1990s
In February 1990,Electron User published Timothy Grantham's simple implementation of Logo for theAcorn Electron under the article "Talking Turtle".[22]
UCBLogo, also known as Berkeley Logo, is a free, cross-platform implementation of standard Logo last released in 2009. George Mills at MIT used UCBLogo as the basis forMSWLogo which is more refined and also free. Jim Muller wrote a book,The Great Logo Adventure, which was a complete Logo manual and which used MSWLogo as the demonstration language.[24] MSWLogo has evolved intoFMSLogo.
Imagine Logo is a successor of Comenius Logo, implemented in 2000.[25] The English version was released by Logotron Ltd. in 2001.[26]
LibreLogo is an extension to some versions of LibreOffice. Released in 2012, it is written inPython. It allows vector graphics to be written in Writer.
Logo3D is a tridimensional version of Logo.
POOL is a dialect of Logo with object-oriented extensions, implemented in 2014. POOL programs are compiled and run in the graphical IDE onMicrosoft Windows. A simplified, cross-platform environment is available for systems supporting.NET Framework.
QLogo is an open-source and cross-platform rewrite ofUCBLogo with nearly full UCB compatibility that uses hardware-accelerated graphics.
Lynx is an online version of Logo developed by Logo Computer Systems Inc. It can run a large number of turtles, supports animation, parallel processes, colour and collision detection.
LogoMor is an open-source online 3D Logo interpreter based on JavaScript and p5.js. It supports 3D drawings, animations, multimedia, 3D models and various tools. It also includes a fully-featured code editor based onCodeMirror
LbyM is an open-source online Logo interpreter based on JavaScript, created and actively developed (as of 2021) forSonoma State University'sLearning by Making program.[27] It features traditional Logo programming, connectivity with a customized microcontroller and integration with a modern code editor.
Logo was a primary influence on theSmalltalk programming language. It is also the main influence on theEtoys educational programming environment and language, which is essentially a Logo variant written inSqueak (itself a variant of Smalltalk). Logo influenced the procedure/method model inAgentSheets andAgentCubes to program agents similar to the notion of a turtle in Logo. Logo provided the underlying language for Boxer. Boxer was developed atUniversity of California, Berkeley and MIT and is based on aliteracy model, making it easier to use for nontechnical people.[28]
KTurtle is a variation of Logo implemented atQt for theKDE environment loosely based on Logo.[29]
Two more results of Logo's influence areKojo, a variant of Scala, andScratch, a visual, drag-and-drop language which runs in a web browser.
^Abelson, Hal; Goodman, Nat; Rudolph, Lee (December 1974)."Logo Manual".Artificial Intelligence Lab, Massachusetts Institute of Technology.hdl:1721.1/6226.Archived from the original on September 11, 2016. RetrievedAugust 28, 2016.
^"DRI ships 128K version of Dr. Logo"(PDF).Micro Notes - Technical information on Digital Research products. Vol. 2, no. 2. Pacific Grove, CA, USA:Digital Research, Inc. May 1984. p. 4. NWS-106-002.Archived(PDF) from the original on 2020-02-11. Retrieved2020-02-11.[…]Dr. Logo first appeared on the retail market in fall of 1983 for theIBM PC and climbed to the top of theSoftsel Hot List. The retail release includedSpeedStart CP/M, an abridged version ofCP/M that boots automatically when the system is turned on. […][1]
^Bull, G.; Garofalo, J.; Hguyen, N. (2020), "Thinking about computational thinking: Origins of computational thinking in educational computing",Journal of Digital Learning in Teacher Education,36 (1):6–18,doi:10.1080/21532974.2019.1694381,S2CID214563715
Children Designers, Idit Harel Caperton, Ablex Publishing CorporationISBN0893917885. Availableonline
Learning With Logo, Daniel Watt, McGraw Hill,ISBN0-07-068570-3. Available Through Amazon
Teaching With Logo: Building Blocks For Learning, Molly Watt and Daniel Watt, Addison Wesley (now Pearson) 1986,ISBN0-201-08112-1 Available through Amazon
"Logo"(PDF).Byte. Vol. 7, no. 8. McGraw-Hill. 1982. (Byte magazine special 1982 issue featuring multiple Logo articles).