Logo (programovací jazyk) - Logo (programming language)

Logo
FarfalladiIvanaNiccolai.jpg
Kreativita v hravých aktivitách založená na používání loga
Paradigmata Multi-paradigma : funkční , vzdělávací , procedurální , reflexní
Rodina Lisp
Navrhl Wally Feurzeig , Seymour Papert , Cynthia Solomon
Vývojář Bolt, Beranek a Newman
Poprvé se objevil 1967 ; Před 54 lety ( 1967 )
Disciplína psaní dynamický
Hlavní implementace
UCBLogo , mnoho dalších
Nářečí
StarLogo , NetLogo a AppleLogo
Ovlivněn
Lisp
Ovlivněn
AgentSheets , NetLogo , Smalltalk , Etoys , Scratch , Microsoft Small Basic , KTurtle , REBOL , Boxer
Symetrii kolem bodu lze získat pouze pomocí několika instrukcí, které uživatelům umožňují kreslit hypotrochoidy, jako je zde zobrazený.

Logo je vzdělávací programovací jazyk , který v roce 1967 navrhli Wally Feurzeig , Seymour Papert a Cynthia Solomon . Logo není zkratka: jméno vymyslel Feurzeig, když byl v Boltu, Beranku a Newmanovi , a pochází z řeckého loga , což znamená slovo nebo myšlenka .

Logo pro obecné účely je široce známé pro použití želví grafiky , ve které příkazy pro pohyb a kreslení vytvářejí čárovou nebo vektorovou grafiku , buď na obrazovce, nebo s malým robotem nazývaným želva . Jazyk byl koncipován tak, aby učil koncepty programování související s Lispem a teprve později umožnil to, co Papert nazýval „ tělo-syntonické uvažování“, kde studenti mohli chápat, předpovídat a zdůvodňovat pohyb želvy představou toho, co by dělali, kdyby byli želva. Mezi mnoha dialekty loga existují podstatné rozdíly a situace je zmatena pravidelným výskytem grafických programů pro želvy, které se jmenují Logo.

Logo je multi-paradigma adaptace a dialekt Lispu , je funkční programovací jazyk. Neexistuje žádné standardní logo, ale UCBLogo má nejlepší vybavení pro práci se seznamy, soubory, I/O a rekurzí ve skriptech a lze ho použít k výuce všech konceptů počítačové vědy, jak to přednesl UC Berkeley přednášející Brian Harvey ve svém logu Computer Science Stylová trilogie.

Logo je obvykle interpretovaný jazyk , přestože byly vyvinuty kompilované logické dialekty (například Lhogho a Liogo). Logo nerozlišuje velká a malá písmena, ale zachovává pouzdro použité pro účely formátování.

Dějiny

Logo bylo vytvořeno v roce 1967 v Bolt, Beranek and Newman (BBN), výzkumné firmě Cambridge, Massachusetts , Wally Feurzeig , Cynthia Solomon a Seymour Papert . Její intelektuální kořeny jsou v umělé inteligenci , matematické logice a vývojové psychologii . První čtyři roky výzkumu, vývoje a výuky loga proběhly v BBN. První implementace loga s názvem Ghost byla napsána v LISP na PDP-1 . Cílem bylo vytvořit matematickou zemi, kde by si děti mohly hrát se slovy a větami. Po vzoru LISP obsahovaly cíle loga přístupný výkon a informativní chybové zprávy. Použití virtuálních želv umožnilo okamžitou vizuální zpětnou vazbu a ladění grafického programování.

První funkční robot želvy Logo byl vytvořen v roce 1969. Fyzické podlahové želvě předcházela zobrazovací želva. Modern Logo se od základních konceptů předcházejících první želvě příliš nezměnilo. První želva byla uvázaná podlahovka, která nebyla ovládána rádiem ani bezdrátově . V BBN Paul Wexelblat vyvinul želvu jménem Irving, která měla dotykové senzory a mohla se pohybovat dopředu, dozadu, otáčet se a zvonit. Nejdříve celoroční uživatelé školy Logo byli v letech 1968–69 na Muzzey Jr. High v Lexingtonu, Massachusetts . Virtuální a fyzické želvy poprvé použili žáci pátých tříd na Bridge School ve stejném městě v letech 1970–71.

Želva a grafika

Animovaný gif s želvou v MSWLogo ( Cardioid )

Nejznámější funkcí loga je želva (původně odvozená od stejnojmenného robota ), „ kurzor “ na obrazovce, který ukazoval výstup z pohybových příkazů a malé zatahovací pero, které společně vytvářely řádkovou grafiku. Tradičně se zobrazoval buď jako trojúhelník nebo jako ikona želvy (i když může být reprezentován jakoukoli ikonou). Želví grafika byla přidána do jazyka Logo Seymourem Papertem na konci šedesátých let minulého století na podporu Papertovy verze želvího robota , jednoduchého robota ovládaného z pracovní stanice uživatele, který je navržen tak, aby prováděl kreslící funkce, které mu byly přiřazeny, pomocí malé zatahovací sady per do nebo připojeného k tělu robota.

Prakticky jde o to, že použití geometrie želv namísto tradičnějšího modelu napodobuje skutečnou logiku pohybu želvího robota. Želva se pohybuje pomocí příkazů, které jsou relativní k její vlastní poloze, LEFT 90 znamená otočení doleva o 90 stupňů. Některé implementace loga, zejména ty, které umožňují použití souběžnosti a více želv, podporují detekci kolizí a umožňují uživateli předefinovat vzhled kurzoru želvy, což v podstatě umožňuje želvám loga fungovat jako skřítci .

MSWLogo a 3D grafika podporují více želv . Vstup z COM portů a LPT portů je povolen také MSWLogo prostřednictvím Windows GUI. Přerušení lze spustit pomocí událostí klávesnice a myši. Jednoduché animace GIF lze také vytvářet na MSWLogo verze 6.5 pomocí příkazu gifsave .

Geometrie želvy se také někdy používá v jiných prostředích než Logo jako alternativa k grafickému systému s přísně souřadnicovou adresou. Myšlenka grafiky želv je například užitečná také v systému Lindenmayer pro generování fraktálů .

Implementace

Uvítací obrazovka loga IBM LCSI
Zdrojový kód a výstup v logu IBM LCSI běžícím v DOSBoxu

Některé moderní deriváty loga umožňují tisíce nezávisle se pohybujících želv. Tam jsou dvě populární implementace: Massachusetts Institute of Technology s StarLogo a Northwestern University Center for připojen Learning (CCL) NetLoga . Umožňují zkoumat vznikající jevy a přicházejí s mnoha experimenty v sociálních studiích, biologii, fyzice a dalších oblastech. NetLogo je široce používán v simulaci založené na agentech v biologických a sociálních vědách.

Ačkoli neexistuje žádný dohodnutý standard, existuje široká shoda v základních aspektech jazyka. V březnu 2020 bylo napočítáno 308 implementací a dialektů loga, z nichž každá měla své vlastní silné stránky. Většina z těchto 308 již není v širokém používání, ale mnohé jsou stále ve vývoji. Mezi komerční implementace široce používané ve školách patří logo MicroWorlds a logo Imagine .

Starší a aktuální implementace zahrnují:

  • Logo Apple pro Apple II Plus a Apple Logo Writer pro Apple IIe , vyvinuté společností Logo Computer Systems, Inc. (LCSI), byly nejrozšířenější a nejrozšířenější rané implementace loga, které vyvrcholily na počátku až polovině 80. let minulého století.
  • Aquarius LOGO byl vydán v roce 1982 na kazetě Mattel pro domácí počítač Aquarius .
  • Atari Logo bylo vydáno na kazetě společností Atari pro 8bitovou rodinu Atari .
  • Barevné logo vyšlo v roce 1983 na kazetě (26-2722) a disku (26-2721) od Tandy pro barevný počítač TRS-80 .
  • Logo Commodore vydalo Commodore Electronics s podtitulem „Jazyk pro učení“ . Bylo založeno na logu MIT a vylepšeno společností Terrapin, Inc. Verze Commodore 64 (C64105) byla vydána na disketě v roce 1983; Plus / 4 verze (T263001) byla vydána v roce 1984 kazety.
  • ExperLogo byl vydán v roce 1985 na disketě společností Expertelligence Inc. pro Macintosh 128K .
  • Hot-Logo vydal v polovině 80. let EPCOM pro 8bitové počítače MSX s vlastní sadou příkazů v brazilské portugalštině.
  • Logo TI (pro počítač TI 99/4A ) se používalo na základních školách a zdůrazňovalo užitečnost loga při výuce základů výpočetní techniky pro začínající programátory.
  • IBM uvedla na trh svou vlastní verzi loga (P/N 6024076), vyvinutou společně společností Logo Computer Systems, Inc. (LCSI), pro svůj tehdy nový počítač IBM PC.
  • UCBLogo , také známé jako Berkeley Logo, je bezplatná implementace standardního loga napříč platformami, která byla naposledy vydána v roce 2009. George Mills z MIT použil UCBLogo jako základ pro MSWLogo, který je propracovanější a také zdarma. Jim Muller napsal knihu The Great Logo Adventure , což byl kompletní manuál k logu a který jako ukázkový jazyk používal MSWLogo. Nyní je mimo tisk, ale Jim vydal všechny soubory ve formátu pdf. (Podrobnosti najdete na webu Logo Foundation.) MSWLogo se vyvinulo do FMSLogo: prostředí vzdělávacího programování .
  • ObjectLOGO je varianta loga s objektově orientovanými programovacími rozšířeními a lexikálním rozsahem. Verzi 2.7 prodala společnost Digitool, Inc. Již se nevyvíjí ani nepodporuje a nespouští se na verzích operačního systému Mac od verze 7.5.
  • aUCBLogo přepis a vylepšení UCBLogo .
  • Logo3D je trojrozměrná verze loga a najdete ji v části Logo (programovací jazyk) na SourceForge .
  • Logo Dr. bylo vyvinuto společností Digital Research a distribuováno v počítačích včetně IBM PCjr , Atari ST a Amstrad CPC .
  • Logo Acornsoft bylo vydáno v roce 1985. Jedná se o komerční implementaci loga pro 8bitové počítače BBC Micro a Acorn Electron . Byl vyvinut pro Acorn Computers jako úplná implementace loga. Je vybaven více želvami obrazovky a čtyřkanálovým zvukem. Byl poskytnut na dvou 16kB ROM , s nástroji a ovladači jako doprovodným softwarem.
  • V únoru 1990 publikoval uživatel Electron pod článkem „Talking Turtle“ jednoduchou implementaci loga pro Acorn Electron Timothyho Granthama .
  • LibreLogo je rozšířením některých verzí LibreOffice. Vydáno v roce 2012, je napsáno v Pythonu . Umožňuje vektorovou grafiku zapisovat do Writeru.
  • Logo Lego je verze loga, která dokáže manipulovat s robotickými kostkami Lego připevněnými k počítači. Byl implementován na výpočetní platformě Apple II a byl použit v amerických a dalších základních školách na konci 80. a na počátku 90. let. Logo Lego je předchůdcem hry Scratch .
  • Lze nalézt alespoň dvě webové implementace využívající Berkeley Logo, HTML5, CSS3 a JQuery .
  • POOL je dialekt loga s objektově orientovanými rozšířeními, implementovaný v roce 2014. Programy POOL jsou kompilovány a spuštěny v grafickém IDE v systému Microsoft Windows . Pro systémy podporující .NET Framework je k dispozici zjednodušené prostředí napříč platformami .
  • QLogo je open-source a multiplatformní přepis UCBLogo s téměř plnou kompatibilitou UCB, která využívá hardwarově akcelerovanou grafiku.

Vliv

Logo mělo hlavní vliv na programovací jazyk Smalltalk . Je to také hlavní vliv na vzdělávací programovací prostředí a jazyk Etoys , což je v podstatě varianta s logem napsaná ve Squeaku (sama varianta Smalltalk ). Logo ovlivnilo model postupu/metody v AgentSheets a AgentCubes na programové agenty podobné pojmu želva v Logo. Logo poskytlo základní jazyk pro Boxer. Boxer byl vyvinut na Kalifornské univerzitě, Berkeley a MIT a je založen na modelu gramotnosti , což usnadňuje použití netechnickým lidem.

KTurtle je variací loga implementovaného v Qt pro prostředí KDE volně založené na logu.

Dva další výsledky vlivu loga jsou Kojo , varianta Scala, a Scratch , vizuální, drag-and-drop jazyk, který běží ve webovém prohlížeči.

Viz také

Reference

Další čtení

  • The Great Logo Adventure , Jim Muller, Doone Publications ISBN  0-9651934-6-2 ; nyní vypršel tisk; zdarma ke stažení ve formátu pdf z webových stránek MSWLogo spolu s freewarovým programem MSWLogo
  • To Artificial Intelligence (1976) Early učebnice AI, kde se ve velké míře používá logo. (Použitídialektu Edinburghské univerzity , AI2LOGO)
  • Želví geometrie Abelson a diSessa
  • Dětští designéři , Idit Harel Caperton, Ablex Publishing Corporation ISBN  0893917885 . K dispozici online
  • Učení s logem , Daniel Watt, McGraw Hill, ISBN  0-07-068570-3 . K dispozici prostřednictvím Amazonu
  • Výuka s logem: Stavební bloky pro učení, Molly Watt a Daniel Watt, Addison Wesley (nyní Pearson) 1986, ISBN  0-201-08112-1 Dostupné prostřednictvím Amazonu

externí odkazy