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ů.
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“).
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.
V ruské verzi jazyka loga:
NA POZDRAVY PIŠTE [Ahoj světe!] KONECK č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] .
Lisp | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Charakteristika |
| ||||||||||||||
Implementace |
| ||||||||||||||
Hardware |
| ||||||||||||||
Společenství |
| ||||||||||||||
|
Programovací jazyky | |
---|---|
|