Logo (programovací jazyk)

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 24. dubna 2021; kontroly vyžadují 5 úprav .
Logo
Jazyková třída výukový programovací jazyk , funkcionální programovací jazyk a programovací jazyk
Objevil se v 1967
Autor Hrají: Seymour Papert , Cynthia Solomon ,
Vývojář Papert, Seymour , Harel, Idita a Cynthia Solomon [d] [1]
Byl ovlivněn Lisp
 Mediální soubory na Wikimedia Commons

Logo ( anglicky  Logo ) je programovací jazyk na vysoké úrovni vyvinutý v roce 1967 Wally Förzeg , Seymour Papert a Cynthia Solomon pro vzdělávací účely pro výuku dětí předškolního a základního školního věku základní pojmy programování ( rekurze , rozšiřitelnost, atd..).

První vědecký důkaz úspěchu používání loga jako učebního nástroje předvedl Idit Harel , student Papert, který použil Logo k výuce programování dětí a zlomků v roce 1988 [2] .

Logo poskytuje prostředí, ve kterém mohou děti rozvíjet své dovednosti uvažování a řešení problémů.

Obecné informace

Typickou a očekávanou součástí programovacího jazyka a prostředí Logo jsou želví grafické nástroje , které na jedné straně umožňují vizualizaci výuky programování a na druhé straně jsou velmi organicky kombinovány s rozšířeným používáním rekurze . .

Interpreti loga existují pro různé platformy a operační systémy : Windows , DOS , Linux , Mac OS , Unix atd. Existuje také mnoho objektově orientovaných dialektů loga, jako je Object Logo , vydané v roce 1986 . V roce 1997 byla vydána ruská verze - LogoMira .

Brian Harvey, autor třídílného stylu Computer Science Logo Style, vytvořil logo Berkeley . Multiagentní verze loga - StarLogo a NetLogo .

Typické implementace loga (například od LCSI ) poskytují programátorovi knihovnu vestavěných příkazů, textovou interpretační konzoli a „programový list“, na který lze umístit instrukce pro registraci nových funkcí. Je také poskytnuta alespoň jedna grafická obrazovka s alespoň jednou želvou.

Mnoho implementací podporuje multithreading  - na úrovni provádění příkazů želvami a na úrovni schopnosti spustit příkaz asynchronně a později zkontrolovat, zda byl dokončen. Programově generovaný seznam slov je možné předat interpretu k provedení.

Logo je pokročilejší než procedurální programovací jazyky BASIC a Fortran , které se běžně používají k výuce programování. Implementace Logo však obecně nemají dobře navržené souborové programy, což brání tomu, aby bylo široce přijato jako programovací jazyk.

Jazyk Logo je v podstatě adaptací jazyka Lisp (někteří mu dokonce říkají „Lisp bez závorek“).

Syntaxe a interpretace

V Logo je program seznamem „slov“.

Implementace loga zpravidla mírně omezují seznam povolených znaků ve slově, takže příkazy lze volat i v ruštině. Mnoho ruskojazyčných implementací loga má navíc ruské příkazy nebo vestavěná ruská synonyma pro všechny vestavěné příkazy.

Slova v seznamu jsou oddělena mezerami.

Slovo může být buď příkaz, nebo literál jednoho ze tří typů – řetězcový, číselný nebo listový literál. Příkaz může vrátit hodnotu, v takovém případě je považován za funkci. Literály vracejí svou hodnotu přímo. Řetězcový literál je formátován jako slovo, kterému předchází dvojitá uvozovka. Slova sestávající z číslic jsou interpretována jako číselné literály. Aby se vytvořil seznam slov v textu programu, jsou ohraničena hranatými závorkami.

Existují také příkazy pro uložení a získání hodnoty podle názvu, ale mnoho implementací to doplňuje konceptem proměnné - zavádí kompaktní syntaxi příkazů pro získání hodnoty proměnné. Pro získání hodnoty proměnné tedy obvykle stačí napsat její název s předponou s dvojtečkou.

Existuje speciální syntaxe pro předávání nepevného počtu parametrů některým vestavěným příkazům. K tomu se navrhuje uzavřít příkaz a všechny jeho parametry do závorek, například: (СПИСОК :A :Б :В :Г 1 2 3 4)Pro uživatelské příkazy tato syntaxe není použitelná, protože neexistuje žádná syntaxe pro popis zpracování takto předávaných parametrů.

Postupně se provádí seznam příkazů předávaných interpretu. Další slovo je interpretováno jako příkaz z aktuálního slovníku systému. Pokud to vyžaduje parametry, pak interpret provede další slovo v seznamu, aby získal hodnotu, která se má předat jako první parametr.

Pokud příkaz nahradí parametr, očekává se, že příkaz vrátí hodnotu. A pokud hodnota vrácená dalším příkazem není určena k předání jinému příkazu, systém ohlásí chybu, pokud se takové volání objeví v textu programu, nebo zobrazí hodnotu, pokud byl příkaz vyvolán v interaktivním režimu.

Je podporováno použití obvyklé infixové formy výrazů matematiky a logiky na známých operátorech, jako je "(2 + 3) * 5" a "2 > 5". Ale vzhledem k tomu, že podle základních pravidel jazyka je na prvním místě příkaz a poté jeho parametry, pro základní aritmetické a logické operace v některých dialektech (např. LCSI LogoWorlds a LogoWriter) existují i ​​příkazy, pomocí které výrazy mají tvar „násobit přičti 2 3 5“ a „více? 2 5".

Existuje příkaz pro rozšíření slovníku o vlastní příkazy, přijímá nový název příkazu, seznam parametrů a seznam příkazů.

Existují dva hlavní mechanismy pro řízení provádění programu: příkaz smyčky s pevným počtem opakování a rekurze.

Ahoj světe!

NA AHOJ TISKNOUT [Ahoj světe!] KONEC

V ruské verzi jazyka loga:

NA POZDRAVY PIŠTE [Ahoj světe!] KONEC

Implementace

K červnu 2010 bylo od vytvoření jazyka vytvořeno nejméně 246 implementací loga [3] .

V současné době neexistuje jednotný standard pro jazyk Logo, ačkoli některé konvence týkající se základních aspektů jazyka jsou široce přijímány. Dialekty Logo mají značné rozdíly. Situaci komplikuje přítomnost řady želvích grafických programů, které se mylně nazývají „Logo“.

Nejrozšířenější a dominantní implementací jazyka v té době byl systém Apple Logo , vyvinutý společností LCSI pro počítač Apple II a distribuovaný v 80. letech 20. století . V Bulharsku byl tento produkt lokalizován do bulharštiny a ruštiny pro počítače kompatibilní s Apple II řady Pravets 8 , distribuovaný pod názvem „Logo 2.0“ a široce používaný ve vzdělávacím procesu v Bulharsku a SSSR . Následně byla v Rusku vydána ruská lokalizace produktu LCSI pro MS-DOS s názvem LogoWriter .

Bezplatná multiplatformní implementace UCBLogo [4] , známá také jako Berkeley Logo , je dnes široce používána , ale postrádá základní grafické uživatelské rozhraní .

MSWLogo [5] a jeho novější verze FMSLogo [6] [7] jsou dostupné pro Microsoft Windows a jsou široce používány ve školách ve Velké Británii a Austrálii . V západních školách se také používají komerční implementace MicroWorlds Logo [8] a Imagine Logo [9] .

MSWLogo a FMSLogo podporují více želv a 3D grafiku, stejně jako pokročilé I/O a další rozšíření.

Pro MacOS X je k dispozici bezplatná implementace ACSLogo [10] , která má poměrně pokročilé grafické rozhraní, lokalizaci do více jazyků a umožňuje přidávat vlastní lokalizace.

V Rusku se ve vzdělávacím procesu používají ruské lokalizace LCSI MicroWorlds pro Windows a Mac OS X s názvem „LogoMira“ a „PervoLogo“ [11] .

Viz také

Poznámky

  1. 1 2 3 https://www.ncwit.org/profile/cynthia-solomon
  2. Bob Johnstone. Nevadí notebooky: Děti, počítače a transformace učení . - iUniverse, 2003-08-17. - S. 130. - 362 s.
  3. The Logo Tree Project (downlink) . Datum přístupu: 4. července 2009. Archivováno z originálu 6. března 2009. 
  4. Logo Berkeley (UCBLogo) . Získáno 2. února 2010. Archivováno z originálu 25. ledna 2010.
  5. MSWLogo, Vzdělávací programovací jazyk . Získáno 2. února 2010. Archivováno z originálu 12. října 2015.
  6. FMSLlogo . Získáno 2. února 2010. Archivováno z originálu 15. září 2015.
  7. Plány archivované 4. října 2009 na Developer Wayback Machine obsahují multiplatformní verzi
  8. Vítejte v LCSI . Získáno 2. února 2010. Archivováno z originálu 8. října 2015.
  9. Logo Imagine – Hodnocení vzdělávacího softwaru – TEEM (odkaz není k dispozici) . Získáno 2. února 2010. Archivováno z originálu 29. srpna 2009. 
  10. ACSLogo pro Mac OS X. Získáno 2. února 2010. Archivováno z originálu 23. března 2010.
  11. Logo produktů v ruském jazyce (nepřístupný odkaz) . Získáno 4. července 2009. Archivováno z originálu dne 3. srpna 2009. 

Odkazy

Literatura