Jump to content

Logo (programming language): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m formatting fix
m Reverted 1 edit by 103.91.122.192 (talk) to last revision by ClueBot NG
 
(16 intermediate revisions by 11 users not shown)
Line 5: Line 5:
| logo caption =
| logo caption =
| screenshot = KochTurtleAnim.gif
| screenshot = KochTurtleAnim.gif
| screenshot caption = [[L-system#Example_4:_Koch_curve|L-system (Koch curve)]] turtle graphic
| screenshot caption = [[L-system#Example 4: Koch curve|L-system (Koch curve)]] turtle graphic
| paradigms = [[Multi-paradigm programming language|Multi-paradigm]]: [[Functional programming|functional]], [[Educational programming language|educational]], [[Procedural programming|procedural]], [[Reflective programming|reflective]]
| paradigms = [[Multi-paradigm programming language|Multi-paradigm]]: [[Functional programming|functional]], [[Educational programming language|educational]], [[Procedural programming|procedural]], [[Reflective programming|reflective]]
| family = [[Lisp (programming language)|Lisp]]
| family = [[Lisp (programming language)|Lisp]]
Line 18: Line 18:
}}
}}
[[File:Remi_turtlegrafik.png|thumb|Symmetry around a point can be obtained using only a few instructions, allowing users to draw [[hypotrochoid]]s like the one shown here.]]
[[File:Remi_turtlegrafik.png|thumb|Symmetry around a point can be obtained using only a few instructions, allowing users to draw [[hypotrochoid]]s like the one shown here.]]
'''Logo''' is an [[educational programming language]], designed in 1967 by [[Wally Feurzeig]], [[Seymour Papert]], and [[Cynthia Solomon]].<ref>{{Cite journal |url=https://dspace.mit.edu/handle/1721.1/6226 |title=Logo Manual |last1=Abelson |first1=Hal |last2=Goodman |first2=Nat |date=December 1974 |website=Artificial Intelligence Lab, Massachusetts Institute of Technology |access-date=August 28, 2016 |last3=Rudolph |first3=Lee |hdl=1721.1/6226 |url-status=live |archive-url=https://web.archive.org/web/20160911020834/https://dspace.mit.edu/handle/1721.1/6226 |archive-date=September 11, 2016 }}</ref> ''Logo'' is not an acronym: the name was coined by Feurzeig while he was at [[Bolt, Beranek and Newman]],<ref name="goldenberg198208">{{cite news |url=https://archive.org/stream/byte-magazine-1982-08/1982_08_BYTE_07-08_Logo#page/n209/mode/2up |title=Logo – A Cultural Glossary |last=Goldenberg |first= E. Paul |date=August 1982 |work=Byte |access-date=19 October 2013|pages=218}}</ref> and derives from the Greek ''logos'', meaning ''word'' or ''thought''.
'''Logo''' is an [[educational programming language]], designed in 1967 by [[Wally Feurzeig]], [[Seymour Papert]], and [[Cynthia Solomon]].<ref>{{Cite journal |url=https://dspace.mit.edu/handle/1721.1/6226 |title=Logo Manual |last1=Abelson |first1=Hal |last2=Goodman |first2=Nat |date=December 1974 |website=Artificial Intelligence Lab, Massachusetts Institute of Technology |access-date=August 28, 2016 |last3=Rudolph |first3=Lee |hdl=1721.1/6226 |url-status=live |archive-url=https://web.archive.org/web/20160911020834/https://dspace.mit.edu/handle/1721.1/6226 |archive-date=September 11, 2016 }}</ref> ''Logo'' is not an acronym: the name was coined by Feurzeig while he was at [[Bolt, Beranek and Newman]],<ref name="goldenberg198208">{{cite news |url=https://archive.org/stream/byte-magazine-1982-08/1982_08_BYTE_07-08_Logo#page/n209/mode/2up |title=Logo – A Cultural Glossary |last=Goldenberg |first= E. Paul |date=August 1982 |work=Byte |access-date=19 October 2013|pages=218}}</ref> and derives from the Greek ''logos'', meaning 'word' or 'thought'.


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 (robot)|turtle]]. The language was conceived to teach concepts of programming related to [[Lisp (programming language)|Lisp]] and only later to enable what Papert called "[[kinesthetic|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.
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 (robot)|turtle]]. The language was conceived to teach concepts of programming related to [[Lisp (programming language)|Lisp]] and only later to enable what Papert called "[[kinesthetic|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.
Line 27: Line 27:


==History==
==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]].<ref name="mit.edu">{{cite web |url=http://el.media.mit.edu/logo-foundation/index.html |title=Logo Foundation |website=el.media.mit.edu |url-status=dead |archive-url=https://web.archive.org/web/20110721122057/http://el.media.mit.edu/logo-foundation/index.html |archive-date=2011-07-21 |access-date=2011-04-07 }}</ref> 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.<ref>{{cite web |url=https://logothings.wikispaces.com/ |title=logothings |website=logothings.wikispaces.com |url-status=live |archive-url=https://web.archive.org/web/20111207111525/http://logothings.wikispaces.com/ |archive-date=2011-12-07 }}</ref> Modeled on LISP, the design goals of Logo included accessible power{{Clarify |date=March 2008}} <!-- what kinda of power? --> and informative error messages. The use of virtual [[Turtle (robot)|Turtles]] allowed for immediate visual feedback and debugging of graphic programming.
Logo was created in 1967 at [[Bolt, Beranek and Newman]] (BBN), a [[Cambridge, Massachusetts]], research firm, by [[Wally Feurzeig]], [[Cynthia Solomon]], and [[Seymour Papert]].<ref name="mit.edu">{{cite web |url=http://el.media.mit.edu/logo-foundation/index.html |title=Logo Foundation |website=el.media.mit.edu |url-status=dead |archive-url=https://web.archive.org/web/20110721122057/http://el.media.mit.edu/logo-foundation/index.html |archive-date=2011-07-21 |access-date=2011-04-07 }}</ref> 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.<ref>{{cite web |url=https://logothings.wikispaces.com/ |title=logothings |website=logothings.wikispaces.com |url-status=live |archive-url=https://web.archive.org/web/20111207111525/http://logothings.wikispaces.com/ |archive-date=2011-12-07 }}</ref> Modeled on LISP, the design goals of Logo included accessible power{{Clarify |date=March 2008}} <!-- what kinda of power? --> and informative error messages. The use of virtual [[Turtle (robot)|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-control]]led 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.
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-control]]led 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.
Line 55: Line 55:
* Apple Logo for the [[Apple II Plus]] and Apple Logo Writer for the [[Apple 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.
* Apple Logo for the [[Apple II Plus]] and Apple Logo Writer for the [[Apple 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 by Mattel for the [[Mattel Aquarius|Aquarius]] home computer.
* Aquarius LOGO was released in 1982 on cartridge by Mattel for the [[Mattel Aquarius|Aquarius]] home computer.
* [[Atari Logo]] was released on cartridge by Atari for the [[Atari 8-bit family]].
* [[Atari Logo]] was released on cartridge by Atari, Inc. for the [[Atari 8-bit computers]].
* Color Logo was released in 1983 on cartridge (26-2722) and disk (26-2721) by Tandy for the [[TRS-80 Color Computer]].
* Color Logo was released in 1983 on cartridge (26–2722) and disk (26–2721) by Tandy for the [[TRS-80 Color Computer]].
* Commodore Logo was released, with the subtitle "A Language for Learning", by [[Commodore International]]. It was based on MIT Logo and enhanced by Terrapin, Inc. The [[Commodore 64]] version (C64105) was released on diskette in 1983; the [[Commodore Plus/4|Plus/4]] version (T263001) was released on cartridge in 1984.<ref>{{cite web |url=http://www.zimmers.net/commie/docs/cbm-products.txt |title=Canonical List of Commodore Products |date=2017-10-30 |access-date=2017-12-03 |last1=Brain |first1=Jim |last2=Zimmerman |first2=Bo |url-status=live |archive-url=https://web.archive.org/web/20171220005631/http://www.zimmers.net/commie/docs/cbm-products.txt |archive-date=2017-12-20 }}</ref><ref>{{cite web |url=http://plus4world.powweb.com/software/Logo |title=Logo – Software Details |website=Plus/4 World |access-date=2017-12-03 |url-status=live |archive-url=https://web.archive.org/web/20171204171250/http://plus4world.powweb.com/software/Logo |archive-date=2017-12-04 }}</ref>
* Commodore Logo was released, with the subtitle "A Language for Learning", by [[Commodore International]]. It was based on MIT Logo and enhanced by Terrapin, Inc. The [[Commodore 64]] version (C64105) was released on diskette in 1983; the [[Commodore Plus/4|Plus/4]] version (T263001) was released on cartridge in 1984.<ref>{{cite web |url=http://www.zimmers.net/commie/docs/cbm-products.txt |title=Canonical List of Commodore Products |date=2017-10-30 |access-date=2017-12-03 |last1=Brain |first1=Jim |last2=Zimmerman |first2=Bo |url-status=live |archive-url=https://web.archive.org/web/20171220005631/http://www.zimmers.net/commie/docs/cbm-products.txt |archive-date=2017-12-20 }}</ref><ref>{{cite web |url=http://plus4world.powweb.com/software/Logo |title=Logo – Software Details |website=Plus/4 World |access-date=2017-12-03 |url-status=live |archive-url=https://web.archive.org/web/20171204171250/http://plus4world.powweb.com/software/Logo |archive-date=2017-12-04 }}</ref>
* ExperLogo was released in 1985 on floppy by Expertelligence Inc. for the [[Macintosh 128K]].
* ExperLogo was released in 1985 on diskette by Expertelligence Inc. for the [[Macintosh 128K]].
* Hot-Logo was released in the mid-1980s by EPCOM for the [[MSX]] 8-bit computers with its own set of commands in Brazilian Portuguese.
* Hot-Logo was released in the mid-1980s by EPCOM for the [[MSX]] 8-bit computers with its own set of commands in Brazilian Portuguese.
* TI Logo (for the [[TI-99/4A]] computer) was used in primary schools, emphasizing Logo's usefulness in teaching computing fundamentals to novice programmers.
* TI Logo (for the [[TI-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.
* 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.
* 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 with [[object-oriented programming]] extensions and lexical scoping. Version 2.7 was sold by Digitool, Inc.<ref>[http://www.digitool.com/ol-specs.html Object Logo] {{webarchive|url=https://web.archive.org/web/20080430083030/http://www.digitool.com/ol-specs.html |date=2008-04-30 }} page on the Digitool website (accessed 4 March 2008)</ref> It is no longer being developed or supported, and does not run on versions of the Mac operating system later than version 7.5.<ref>[http://www.digitool.com/ol-purchase.html Object Logo ordering page] on the Digitool website (accessed 4 March 2008)</ref>
* [[ObjectLOGO]] is a variant of Logo with [[object-oriented programming]] extensions and lexical scoping. Version 2.7 was sold by Digitool, Inc.<ref>[http://www.digitool.com/ol-specs.html Object Logo] {{webarchive|url=https://web.archive.org/web/20080430083030/http://www.digitool.com/ol-specs.html |date=2008-04-30 }} page on the Digitool website (accessed 4 March 2008)</ref> It is no longer being developed or supported, and does not run on versions of the Mac operating system later than 7.5.<ref>[http://www.digitool.com/ol-purchase.html Object Logo ordering page] on the Digitool website (accessed 4 March 2008)</ref>
* Dr. Logo was developed by [[Digital Research]] and distributed in computers including the [[IBM PCjr]],<ref name="DRI_1984_MicroNotes2"/> Atari ST and the [[Amstrad CPC]].<ref>{{Cite web|url=https://www.computerhistory.org/collections/search/|title=Catalog Search &#124; Computer History Museum|website=www.computerhistory.org}}</ref><ref>{{Cite web|url=http://www.computinghistory.org.uk/det/2666/Amstrad-CPC-6128/|title=Amstrad CPC 6128 - Computer - Computing History|website=www.computinghistory.org.uk}}</ref><ref>{{Cite web|url=https://www.habisoft.com/pcwwiki/doku.php?id=es:manual_del_amstrad_pcw_8256_8512_ingl%C3%A9s|title=es:manual_del_amstrad_pcw_8256_8512_ingles [PcwWiki]|website=www.habisoft.com}}</ref>{{anchor|DrLogo}}<!--The page Dr. Logo redirects here-->
* Dr. Logo was developed by [[Digital Research]] and distributed with computers including the [[IBM PCjr]],<ref name="DRI_1984_MicroNotes2"/> Atari ST and the [[Amstrad CPC]].<ref>{{Cite web|url=https://www.computerhistory.org/collections/search/|title=Catalog Search &#124; Computer History Museum|website=www.computerhistory.org}}</ref><ref>{{Cite web|url=http://www.computinghistory.org.uk/det/2666/Amstrad-CPC-6128/|title=Amstrad CPC 6128 - Computer - Computing History|website=www.computinghistory.org.uk}}</ref><ref>{{Cite web|url=https://www.habisoft.com/pcwwiki/doku.php?id=es:manual_del_amstrad_pcw_8256_8512_ingl%C3%A9s|title=es:manual_del_amstrad_pcw_8256_8512_ingles [PcwWiki]|website=www.habisoft.com}}</ref>{{anchor|DrLogo}}<!--The page Dr. Logo redirects here-->
* [[Acornsoft Logo]] was released in 1985. It is a commercial implementation of Logo for the 8-bit [[BBC Micro]] and [[Acorn Electron]] computers.<ref name="field">{{cite book | title=LOGO on the BBC computer and Acorn Electron | publisher=[[Macmillan Publishers|Macmillan]] | author=Field, Graham | year=1985 | isbn=0-333-39566-2}}</ref> It was developed for [[Acorn Computers]] as a full implementation of Logo. It features multiple screen [[turtle (robot)|turtle]]s and four-channel sound. It was provided on two 16kB [[Read-only memory|ROMs]], with utilities and [[device driver|driver]]s as accompanying software.<ref name="tmu four logos">{{cite news | url=http://www.nostalgia8.nl/logo/docs/mudeel1.jpg | title=Four Logos for the BBC Micro | publisher=[[The Micro User]] | work=The Micro User Education Special | access-date=February 20, 2012 | author=Radburn, Derek}}</ref>
* [[Acornsoft Logo]] was released in 1985. It is a commercial implementation of Logo for the 8-bit [[BBC Micro]] and [[Acorn Electron]] computers.<ref name="field">{{cite book | title=LOGO on the BBC computer and Acorn Electron | publisher=[[Macmillan Publishers|Macmillan]] | author=Field, Graham | year=1985 | isbn=0-333-39566-2}}</ref> It was developed for [[Acorn Computers]] as a full implementation of Logo. It features multiple screen [[turtle (robot)|turtle]]s and four-channel sound. It was provided on two 16kB [[Read-only memory|ROMs]], with utilities and [[device driver|driver]]s as accompanying software.<ref name="tmu four logos">{{cite news | url=http://www.nostalgia8.nl/logo/docs/mudeel1.jpg | title=Four Logos for the BBC Micro | publisher=[[The Micro User]] | work=The Micro User Education Special | access-date=February 20, 2012 | author=Radburn, Derek}}</ref>


Line 70: Line 70:
* In February 1990, ''Electron User'' published Timothy Grantham's simple implementation of Logo for the [[Acorn Electron]] under the article "Talking Turtle".<ref>{{cite web|url=http://www.acornelectron.co.uk/mags/eu/ills/7_05/s-p20.jpg|title=Talking Turtle|date=February 1990|pages=20–21|archiveurl=https://web.archive.org/web/20170328011620/http://www.acornelectron.co.uk/mags/eu/ills/7_05/s-p20.jpg |archivedate=28 March 2017}}</ref>
* In February 1990, ''Electron User'' published Timothy Grantham's simple implementation of Logo for the [[Acorn Electron]] under the article "Talking Turtle".<ref>{{cite web|url=http://www.acornelectron.co.uk/mags/eu/ills/7_05/s-p20.jpg|title=Talking Turtle|date=February 1990|pages=20–21|archiveurl=https://web.archive.org/web/20170328011620/http://www.acornelectron.co.uk/mags/eu/ills/7_05/s-p20.jpg |archivedate=28 March 2017}}</ref>
* Comenius Logo is an implementation of Logo developed by [[Comenius University Faculty of Mathematics, Physics and Informatics|Comenius University Faculty of Mathematics and Physics]]. It started development in December 1991, and is also known in other countries as SuperLogo, MultiLogo and MegaLogo.<ref>{{Cite web |date=2002-12-09 |title=History of Comenius Logo |url=http://www.input.sk/slogo/history.htm |access-date=2022-10-12 |archive-url=https://web.archive.org/web/20021209200055/http://www.input.sk/slogo/history.htm |archive-date=2002-12-09 }}</ref>
* Comenius Logo is an implementation of Logo developed by [[Comenius University Faculty of Mathematics, Physics and Informatics|Comenius University Faculty of Mathematics and Physics]]. It started development in December 1991, and is also known in other countries as SuperLogo, MultiLogo and MegaLogo.<ref>{{Cite web |date=2002-12-09 |title=History of Comenius Logo |url=http://www.input.sk/slogo/history.htm |access-date=2022-10-12 |archive-url=https://web.archive.org/web/20021209200055/http://www.input.sk/slogo/history.htm |archive-date=2002-12-09 }}</ref>
*Lego Logo is a version of Logo that can manipulate robotic [[Lego]] bricks attached to a computer.<ref>{{cite journal|journal=[[Communications of the ACM]]|volume=36|number=7|date=July 1993|first=Mitchel|last=Resnick|title=Behavior Construction Kits|pages=64–71|doi=10.1145/159544.159593|s2cid=9263998|url=https://web.media.mit.edu/~mres/papers/BCK/BCK.html|accessdate=5 January 2022|doi-access=free}}</ref> It was implemented on the [[Apple II series|Apple II]] computing platform and was used in American and other grade schools in the late 1980s and early 1990s.<ref>{{cite web|url=http://www.ucls.uchicago.edu/students/projects/1994-95/Lego-Logo/ProjectDescription.html|archiveurl=https://web.archive.org/web/20110720072907/http://www.ucls.uchicago.edu/students/projects/1994-95/Lego-Logo/ProjectDescription.html |archivedate=20 July 2011|title=The Laboratory Schools LEGO-LOGO Project|website=[[University of Chicago Laboratory Schools]]}}</ref> Lego Logo is a precursor to [[Scratch (programming language)|Scratch]].<ref>{{citation|last1=Bull|first1=G.|last2=Garofalo|first2=J.|last3=Hguyen|first3=N.|year=2020|title=Thinking about computational thinking: Origins of computational thinking in educational computing|journal=Journal of Digital Learning in Teacher Education|volume=36|number=1|pages=6–18|doi=10.1080/21532974.2019.1694381|s2cid=214563715}}</ref>
*Lego Logo is a version of Logo that can manipulate robotic [[Lego]] bricks attached to a computer.<ref>{{cite journal|journal=[[Communications of the ACM]]|volume=36|number=7|date=July 1993|first=Mitchel|last=Resnick|title=Behavior Construction Kits|pages=64–71|doi=10.1145/159544.159593|s2cid=9263998|url=https://web.media.mit.edu/~mres/papers/BCK/BCK.html|accessdate=5 January 2022|doi-access=free}}</ref> It was implemented on the [[Apple II]] and used in American and other grade schools in the late 1980s and early 1990s.<ref>{{cite web|url=http://www.ucls.uchicago.edu/students/projects/1994-95/Lego-Logo/ProjectDescription.html|archiveurl=https://web.archive.org/web/20110720072907/http://www.ucls.uchicago.edu/students/projects/1994-95/Lego-Logo/ProjectDescription.html |archivedate=20 July 2011|title=The Laboratory Schools LEGO-LOGO Project|website=[[University of Chicago Laboratory Schools]]}}</ref> Lego Logo is a precursor to [[Scratch (programming language)|Scratch]].<ref>{{citation|last1=Bull|first1=G.|last2=Garofalo|first2=J.|last3=Hguyen|first3=N.|year=2020|title=Thinking about computational thinking: Origins of computational thinking in educational computing|journal=Journal of Digital Learning in Teacher Education|volume=36|number=1|pages=6–18|doi=10.1080/21532974.2019.1694381|s2cid=214563715}}</ref>
* [[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 for [[MSWLogo]] 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.<ref>{{cite web|url=https://softronix.com/logo.html|accessdate=5 January 2022|title=MSWLogo, An Educational programming language|first=Jim|last=Muller|date=November 2001}}</ref> MSWLogo has evolved into [[FMSLogo]].
* [[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 for [[MSWLogo]] 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.<ref>{{cite web|url=https://softronix.com/logo.html|accessdate=5 January 2022|title=MSWLogo, An Educational programming language|first=Jim|last=Muller|date=November 2001}}</ref> MSWLogo has evolved into [[FMSLogo]].


Line 86: Line 86:
== Influence ==
== Influence ==


Logo was a primary influence on the [[Smalltalk]] programming language. It is also the main influence on the [[Etoys (programming language)|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.{{citation needed |date=September 2015}}
Logo was a primary influence on the [[Smalltalk]] programming language. It is also the main influence on the [[Etoys (programming language)|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.<ref>{{Cite web |title=Boxer - EduTech Wiki |url=https://edutechwiki.unige.ch/en/Boxer |access-date=2024-04-10 |website=edutechwiki.unige.ch}}</ref>


KTurtle is a variation of Logo implemented at [[Qt (software)|Qt]] for the [[KDE]] environment loosely based on Logo.<ref>{{cite web |url=http://edu.kde.org/kturtle/ |title=The KDE Education Project – KTurtle |website=edu.kde.org |url-status=live |archive-url=https://web.archive.org/web/20060827165231/http://edu.kde.org/kturtle/ |archive-date=2006-08-27 }}</ref>
KTurtle is a variation of Logo implemented at [[Qt (software)|Qt]] for the [[KDE]] environment loosely based on Logo.<ref>{{cite web |url=http://edu.kde.org/kturtle/ |title=The KDE Education Project – KTurtle |website=edu.kde.org |url-status=live |archive-url=https://web.archive.org/web/20060827165231/http://edu.kde.org/kturtle/ |archive-date=2006-08-27 }}</ref>
Line 105: Line 105:
* 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
* 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
* {{cite magazine|magazine=Byte|year=1982|volume=7|issue=8|publisher=McGraw-Hill|title=Logo|url=https://ia600605.us.archive.org/14/items/byte-magazine-1982-08/1982_08_BYTE_07-08_Logo.pdf}} (''Byte'' magazine special 1982 issue featuring multiple Logo articles).
* {{cite magazine|magazine=Byte|year=1982|volume=7|issue=8|publisher=McGraw-Hill|title=Logo|url=https://ia600605.us.archive.org/14/items/byte-magazine-1982-08/1982_08_BYTE_07-08_Logo.pdf}} (''Byte'' magazine special 1982 issue featuring multiple Logo articles).
{{refend}}{{Commons category}}
{{refend}}

{{wikibooks|Logo Programming}}
==External links==
* {{commons category-inline}}
* {{Wikibooks inline|Logo Programming}}

{{Logo programming}}
{{Logo programming}}
{{Lisp programming language}}
{{Lisp programming language}}
Line 112: Line 116:


[[Category:1967 in robotics]]
[[Category:1967 in robotics]]
[[Category:Apple_II_software]]
[[Category:Apple II software]]
[[Category:Dynamically typed programming languages]]
[[Category:Dynamically typed programming languages]]
[[Category:Domain-specific programming languages]]
[[Category:Domain-specific programming languages]]

Latest revision as of 11:46, 4 December 2024

Logo
L-system (Koch curve) turtle graphic
ParadigmsMulti-paradigm: functional, educational, procedural, reflective
FamilyLisp
Designed byWally Feurzeig, Seymour Papert, Cynthia Solomon
DeveloperBolt, Beranek and Newman
First appeared1967; 57 years ago (1967)
Typing disciplinedynamic
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.

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'.

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

[edit]

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

[edit]
Animated gif with turtle in MSWLogo (Cardioid)[7]

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

[edit]

IBM LCSI Logo welcome screen
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
  • Apple Logo for the Apple II Plus and Apple Logo Writer for the Apple 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 by Mattel for the Aquarius home computer.
  • Atari Logo was released on cartridge by Atari, Inc. for the Atari 8-bit computers.
  • Color Logo was released in 1983 on cartridge (26–2722) and disk (26–2721) by Tandy for the TRS-80 Color Computer.
  • Commodore Logo was released, with the subtitle "A Language for Learning", by Commodore International. It was based on MIT Logo and enhanced by Terrapin, Inc. The Commodore 64 version (C64105) was released on diskette in 1983; the Plus/4 version (T263001) was released on cartridge in 1984.[9][10]
  • ExperLogo was released in 1985 on diskette by Expertelligence Inc. for the Macintosh 128K.
  • Hot-Logo was released in the mid-1980s by EPCOM for the MSX 8-bit computers with its own set of commands in Brazilian Portuguese.
  • TI Logo (for the TI-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 with object-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]
  • Dr. Logo was developed by Digital Research and distributed with computers including the IBM PCjr,[13] Atari ST and the Amstrad CPC.[14][15][16]
  • Acornsoft Logo was released in 1985. It is a commercial implementation of Logo for the 8-bit BBC Micro and Acorn Electron computers.[17] It was developed for Acorn Computers as a full implementation of Logo. It features multiple screen turtles and four-channel sound. It was provided on two 16kB ROMs, with utilities and drivers as accompanying software.[18]
First released in 1990s
  • In February 1990, Electron User published Timothy Grantham's simple implementation of Logo for the Acorn Electron under the article "Talking Turtle".[19]
  • Comenius Logo is an implementation of Logo developed by Comenius University Faculty of Mathematics and Physics. It started development in December 1991, and is also known in other countries as SuperLogo, MultiLogo and MegaLogo.[20]
  • Lego Logo is a version of Logo that can manipulate robotic Lego bricks attached to a computer.[21] It was implemented on the Apple II and used in American and other grade schools in the late 1980s and early 1990s.[22] Lego Logo is a precursor to Scratch.[23]
  • 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 for MSWLogo 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 into FMSLogo.
First released from 2000 onwards
  • aUCBLogo is a rewrite and enhancement of UCBLogo.
  • 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 in Python. 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 on Microsoft Windows. A simplified, cross-platform environment is available for systems supporting .NET Framework.
  • QLogo is an open-source and cross-platform rewrite of UCBLogo 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 on CodeMirror
  • LbyM is an open-source online Logo interpreter based on JavaScript, created and actively developed (as of 2021) for Sonoma State University's Learning by Making program.[27] It features traditional Logo programming, connectivity with a customized microcontroller and integration with a modern code editor.

Influence

[edit]

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.

References

[edit]
  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. ^ a b "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. […] [1]
  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

[edit]
  • To Artificial Intelligence (1976) 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
  • "Logo" (PDF). Byte. Vol. 7, no. 8. McGraw-Hill. 1982. (Byte magazine special 1982 issue featuring multiple Logo articles).
[edit]