Logo (programming language)

Last updated
Logo
KochTurtleAnim.gif
L-system (Koch curve) turtle graphic
Paradigms Multi-paradigm: functional, educational, procedural, reflective
Family Lisp
Designed by Wally Feurzeig, Seymour Papert, Cynthia Solomon
Developer Bolt, Beranek and Newman
First appeared1967;57 years ago (1967)
Typing discipline dynamic
Major implementations
UCBLogo, many others
Dialects
StarLogo, NetLogo and AppleLogo
Influenced by
Lisp
Influenced
AgentSheets, NetLogo, Smalltalk, Etoys, Scratch, Microsoft Small Basic, KTurtle, REBOL, Boxer
Symmetry around a point can be obtained using only a few instructions, allowing users to draw hypotrochoids like the one shown here. Remi turtlegrafik.png
Symmetry around a point can be obtained using only a few instructions, allowing users to draw hypotrochoids like the one shown here.

Logo is an educational programming language, designed in 1967 by Wally Feurzeig, Seymour Papert, and Cynthia Solomon. [1] Logo is not an acronym: the name was coined by Feurzeig while he was at Bolt, Beranek and Newman, [2] and derives from the Greek logos, meaning word or thought.

Contents

A general-purpose language, Logo is widely known for its use of turtle graphics, in which commands for movement and drawing produced line or vector graphics, either on screen or with a small robot termed a turtle. The language was conceived to teach concepts of programming related to Lisp 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 a multi-paradigm adaptation and dialect of Lisp, a functional programming language. [3] There is no standard Logo, but UCBLogo has the best facilities[ according to whom? ] 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. [4]

Logo is usually an interpreted 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.

History

Logo was created in 1967 at Bolt, Beranek and Newman (BBN), a Cambridge, Massachusetts research firm, by Wally Feurzeig, Cynthia Solomon, and Seymour Papert. [5] Its intellectual roots are in artificial intelligence, mathematical logic and developmental psychology. For 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 mathematical land where children could play with words and sentences. [6] Modeled on LISP, the design goals of Logo included accessible power[ clarification needed ] 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 very much from the basic concepts predating 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 in Lexington, Massachusetts. The virtual and physical turtles were first used by fifth-graders at the Bridge School in the same city in 1970–71.

Turtle and graphics

Animated gif with turtle in MSWLogo (Cardioid) Tartapelago Bicicardio 01.gif
Animated gif with turtle in MSWLogo (Cardioid)

Logo's most-known feature is the turtle (derived originally from a 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, support collision detection and allow the user to redefine the appearance of the turtle cursor, essentially allowing the Logo turtles to function as sprites.

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.

Implementations

IBM LCSI Logo welcome screen IBM LCSI Logo Welcome Screen.png
IBM LCSI Logo welcome screen
Source code and output in IBM LCSI Logo IBM LCSI Logo Circles.png
Source 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's StarLogo and Northwestern University Center for Connected Learning's (CCL) NetLogo. They allow exploring 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 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 include MicroWorlds Logo and Imagine Logo.

Legacy and current implementations include:

First released in 1980s
First released in 1990s
First released from 2000 onwards

Influence

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 variant written in Squeak (itself a variant of Smalltalk). Logo influenced the procedure/method model in AgentSheets and AgentCubes to program agents similar to the notion of a turtle in Logo. Logo provided the underlying language for Boxer. Boxer was developed at University of California, Berkeley and MIT and is based on a literacy model, making it easier to use for nontechnical people. [28]

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

Two more results of Logo's influence are Kojo, a variant of Scala, and Scratch, a visual, drag-and-drop language which runs in a web browser.

Related Research Articles

<span class="mw-page-title-main">Seymour Papert</span> MIT mathematician, computer scientist, and educator

Seymour Aubrey Papert was a South African-born American mathematician, computer scientist, and educator, who spent most of his career teaching and researching at MIT. He was one of the pioneers of artificial intelligence, and of the constructionist movement in education. He was co-inventor, with Wally Feurzeig and Cynthia Solomon, of the Logo programming language.

BBC BASIC is an interpreted version of the BASIC programming language. It was developed by Acorn Computers Ltd when they were selected by the BBC to supply the computer for their BBC Literacy Project in 1981.

Programmed Inquiry, Learning, or Teaching (PILOT) is a simple high-level programming language developed in the 1960s. Like its younger sibling LOGO, it was an early foray into the technology of computer-assisted instruction.

<span class="mw-page-title-main">Genera (operating system)</span> Symbolics operating system based on Lisp

Genera is a commercial operating system and integrated development environment for Lisp machines created by Symbolics. It is essentially a fork of an earlier operating system originating on the Massachusetts Institute of Technology (MIT) AI Lab's Lisp machines which Symbolics had used in common with Lisp Machines, Inc. (LMI), and Texas Instruments (TI). Genera was also sold by Symbolics as Open Genera, which runs Genera on computers based on a Digital Equipment Corporation (DEC) Alpha processor using Tru64 UNIX. In 2021 a new version was released as Portable Genera which runs on Tru64 UNIX on Alpha, Linux on x86-64 and Arm64 Linux, and macOS on x86-64 and Arm64. It is released and licensed as proprietary software.

In computer graphics, turtle graphics are vector graphics using a relative cursor upon a Cartesian plane. Turtle graphics is a key feature of the Logo programming language.

<span class="mw-page-title-main">Lego Mindstorms</span> Hardware and software platform by Lego

Lego Mindstorms is a discontinued hardware and software structure which develops programmable robots based on Lego bricks.

Interlisp is a programming environment built around a version of the programming language Lisp. Interlisp development began in 1966 at Bolt, Beranek and Newman in Cambridge, Massachusetts with Lisp implemented for the Digital Equipment Corporation (DEC) PDP-1 computer by Danny Bobrow and D. L. Murphy. In 1970, Alice K. Hartley implemented BBN LISP, which ran on PDP-10 machines running the operating system TENEX. In 1973, when Danny Bobrow, Warren Teitelman and Ronald Kaplan moved from BBN to the Xerox Palo Alto Research Center (PARC), it was renamed Interlisp. Interlisp became a popular Lisp development tool for artificial intelligence (AI) researchers at Stanford University and elsewhere in the community of the Defense Advanced Research Projects Agency (DARPA). Interlisp was notable for integrating interactive development tools into an integrated development environment (IDE), such as a debugger, an automatic correction tool for simple errors, and analysis tools.

<span class="mw-page-title-main">Wally Feurzeig</span> American computer scientist

Wallace "Wally" Feurzeig was an American computer scientist who was co-inventor, with Seymour Papert and Cynthia Solomon, of the programming language Logo, and a well-known researcher in artificial intelligence (AI).

<span class="mw-page-title-main">Constructionism (learning theory)</span> Learning theory involving the construction of mental models

Constructionist learning is the creation by learners of mental models to understand the world around them. Constructionism advocates student-centered, discovery learning where students use what they already know to acquire more knowledge. Students learn through participation in project-based learning where they make connections between different ideas and areas of knowledge facilitated by the teacher through coaching rather than using lectures or step-by-step guidance. Further, constructionism holds that learning can happen most effectively when people are active in making tangible objects in the real world. In this sense, constructionism is connected with experiential learning and builds on Jean Piaget's epistemological theory of constructivism.

<span class="mw-page-title-main">Atari Logo</span>

Atari Logo is ROM cartridge-based version of the Logo programming language for the Atari 8-bit family published by Atari, Inc. in 1983. It was developed by Logo Computer Systems, Inc. (LCSI) in Quebec, Canada. LCSI wrote Apple Logo, and the Atari version maintains strong compatibility with it.

Etoys is a child-friendly computer environment and object-oriented prototype-based programming language for use in education.

MicroWorlds is a family of computer programs developed by Logo Computer Systems Inc. (LCSI) that uses the Logo programming language and a turtle-shaped object to teach language, mathematics, programming, and robotics concepts in primary and secondary education. The program was part of a larger set of dialects and implementations created by Seymour Papert aimed at triggering the development of abstract ideas by children through experimentation.

MicroWorlds JR is a computer program using a simplified version of the Logo programming language to teach non-readers or early readers to program in Logo. It was first launched in 2004 by Logo Computer Systems, Inc. (LCSI), and as in their original line of MicroWorlds programs, the object on the screen begins as a turtle and can be controlled with basic commands to make it move. Differing from the Logo syntax developed by Seymour Papert and teams at MIT, MicroWorlds JR uses images to replace the command names, which are selected by the child to create turtle graphics. The turtle object can be given a variety of shapes that act as a costume for the turtle, and therefore lends itself to a variety of animations and creative stories and projects for younger students.

<span class="mw-page-title-main">Turtle (robot)</span> 1940s class of educational robots

12px|frameless|alt=Shubham|Shubham

<span class="mw-page-title-main">BBC Micro</span> Series of British microcomputers by Acorn

The British Broadcasting Corporation Microcomputer System, or BBC Micro, is a series of microcomputer designed and built by Acorn Computers Limited in the 1980s for the Computer Literacy Project of the BBC. Designed with an emphasis on education, it was notable for its ruggedness, expandability, and the quality of its operating system. The machine was the focus of a number of educational BBC TV programmes on computer literacy, starting with The Computer Programme in 1982, followed by Making the Most of the Micro, Computers in Control in 1983, and finally Micro Live in 1985.

<span class="mw-page-title-main">Acornsoft LISP</span> Lisp dialect for the BBC Micro

Acornsoft LISP is a dialect and commercial implementation of the Lisp programming language, released in the early 1980s for the 8-bit Acorn Atom, BBC Micro and Acorn Electron computers.

<span class="mw-page-title-main">Cynthia Solomon</span> Computer scientist

Cynthia Solomon is an American computer scientist known for her work in popularizing computer science for students. She is a pioneer in the fields of computer science, and educational computing. While working as a researcher at Massachusetts Institute of Technology (MIT), Solomon took it upon herself to understand and program in the programming language Lisp. As she began learning this language, she realized the need for a programming language that was more accessible and understandable for children. Throughout her research studies in education, Solomon worked full-time as a computer teacher in elementary and secondary schools. Her work has mainly focused on research on human-computer interaction and children as designers. While working at Bolt, Beranek and Newman, she worked with Wally Feurzeig and Seymour Papert, to create the first programming language for children, named Logo. The language was created to teach concepts of programming related to Lisp. Solomon has attained many accomplishments in her life such as being the vice president of R&D for Logo Computer Systems, Inc., when Apple Logo was developed and was the Director of the Atari Cambridge Research Laboratory. Solomon worked on the program committee of Constructing Modern Knowledge and the Marvin Minsky Institute for Artificial Intelligence in 2016. Further, she has published many writings based on research in the field of child education and technology in the classroom. Solomon has conducted workshops in elementary schools, high schools, and colleges regarding academic research and writing. She continues to contribute to the field by speaking at conferences and working with the One Laptop per Child Foundation.

<span class="mw-page-title-main">UCBLogo</span> Logo programming language dialect

UCBLogo, also termed Berkeley Logo, is a programming language, a dialect of Logo, which derived from Lisp. It is a dialect of Logo intended to be a "minimum Logo standard".

References

  1. 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. Retrieved August 28, 2016.
  2. Goldenberg, E. Paul (August 1982). "Logo – A Cultural Glossary". Byte. p. 218. Retrieved 19 October 2013.
  3. CSLS Vol 1, Preface .pxvi, Harvey 1997
  4. 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 Archived 2013-07-04 at the Wayback Machine
  5. 1 2 "Logo Foundation". el.media.mit.edu. Archived from the original on 2011-07-21. Retrieved 2011-04-07.
  6. "logothings". logothings.wikispaces.com. Archived from the original on 2011-12-07.
  7. Pietrocola, Giorgio (2005). "Tartapelago". Maecla.
  8. "The Logo Tree Project" (PDF). elica.net. Archived from the original (PDF) on 2009-03-06. Retrieved 2020-03-25.
  9. Brain, Jim; Zimmerman, Bo (2017-10-30). "Canonical List of Commodore Products". Archived from the original on 2017-12-20. Retrieved 2017-12-03.
  10. "Logo – Software Details". Plus/4 World. Archived from the original on 2017-12-04. Retrieved 2017-12-03.
  11. Object Logo Archived 2008-04-30 at the Wayback Machine page on the Digitool website (accessed 4 March 2008)
  12. Object Logo ordering page on the Digitool website (accessed 4 March 2008)
  13. "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. Retrieved 2020-02-11. […] Dr. Logo first appeared on the retail market in fall of 1983 for the IBM PC and climbed to the top of the Softsel Hot List. The retail release included SpeedStart CP/M, an abridged version of CP/M that boots automatically when the system is turned on. […]
  14. "Catalog Search | Computer History Museum". www.computerhistory.org.
  15. "Amstrad CPC 6128 - Computer - Computing History". www.computinghistory.org.uk.
  16. "es:manual_del_amstrad_pcw_8256_8512_ingles [PcwWiki]". www.habisoft.com.
  17. Field, Graham (1985). LOGO on the BBC computer and Acorn Electron. Macmillan. ISBN   0-333-39566-2.
  18. Radburn, Derek. "Four Logos for the BBC Micro". The Micro User Education Special. The Micro User . Retrieved February 20, 2012.
  19. "Talking Turtle". February 1990. pp. 20–21. Archived from the original on 28 March 2017.
  20. "History of Comenius Logo". 2002-12-09. Archived from the original on 2002-12-09. Retrieved 2022-10-12.
  21. Resnick, Mitchel (July 1993). "Behavior Construction Kits". Communications of the ACM . 36 (7): 64–71. doi: 10.1145/159544.159593 . S2CID   9263998 . Retrieved 5 January 2022.
  22. "The Laboratory Schools LEGO-LOGO Project". University of Chicago Laboratory Schools . Archived from the original on 20 July 2011.
  23. 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, S2CID   214563715
  24. Muller, Jim (November 2001). "MSWLogo, An Educational programming language" . Retrieved 5 January 2022.
  25. Andrej, Kalas; Blaho, Ivan (2000). Imagine... a new generation of Logo : programmable pictures. OCLC   854959806.
  26. "Imagine | Press Release". 2001-04-17. Archived from the original on 2001-04-17. Retrieved 2022-10-12.
  27. "Learning by Making ¦ Make@SSU". 14 August 2017. Retrieved 8 January 2022.
  28. "Boxer - EduTech Wiki". edutechwiki.unige.ch. Retrieved 2024-04-10.
  29. "The KDE Education Project – KTurtle". edu.kde.org. Archived from the original on 2006-08-27.

Further reading