Scratch (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é 31. července 2019; kontroly vyžadují 80 úprav .
Poškrábat
Sémantika řízený událostmi
Jazyková třída grafické , vzdělávací
Typ provedení tlumočník
Objevil se v 2007
Autor Mitchell Resnick _ _  _
Vývojář MIT Media Lab
Přípona souboru .sb , .sb2 , .sb3
Uvolnění 3.29.1 (27. února 2022 ) ( 2022-02-27 )
Typový systém dynamický
Hlavní implementace Poškrábat
Dialekty Snap!
Byl ovlivněn Logo , Smalltalk , HyperCard, StarLogo , AgentSheets, Etoys, Tweak
ovlivnil Snap! , AppInventor , Catrobat
Licence upravená licence BSD [d]
webová stránka scratch.mit.edu
OS Windows , macOS , HTML
 Mediální soubory na Wikimedia Commons

Scratch ( anglicky  Scratch , IPA [ s k r æ ʧ ]) je vizuální blokové událostně řízené programovací prostředí vytvořené pro děti a teenagery. Název pochází ze slova scratching  , což je technika používaná hip-hopovými DJs, kteří rukama roztáčí vinylové desky tam a zpět, aby míchali hudební témata [1] .

Vznikl jako pokračování myšlenek jazyka Logo a konstruktoru Lego . Scratch 1.4 byl napsán v jazyce Squeak , 2.0 a 3.0 jsou zaměřeny na online práci. Scratch 2.0 byl přepsán do Flash a ActionScriptu . Scratch 3.0 (aktuální verze) je vylepšená verze Scratch 2.0 a je vytvořena v HTML5 pomocí enginu WebGL , což umožňuje běh na mobilních zařízeních a tabletech . Scratch je vyvíjen malým týmem programátorů pro děti [2] na Massachusetts Institute of Technology . Aktuální verze je Scratch 3.0, vydaná v lednu 2019. V roce 2008 byl Scratch portován na modul mikrokontroléru Arduino . Projekt se nazývá S4A [3] .

Programy na Scratch se skládají z grafických bloků, jejichž popisky závisí na jazyku zvoleném pro rozhraní. Lze vybrat jeden z 50 jazyků rozhraní, včetně ruštiny . Pro připojení rozhraní v novém jazyce se používají standardní soubory gettext .

Programování

Hlavními součástmi škrábacího programu jsou objekty sprite . Skřítek se skládá z grafického znázornění — sady rámů- kostýmů ( angl.  Kostým ) a scénáře . Pro úpravu kostýmů skřítků je do scratch zabudován grafický editor ( anglicky  Paint Editor ) . Akce programu Scratch se odehrává na scéně ( anglicky  stage ) o velikosti 480 × 360 (podmíněných) pixelů se souřadnicovým středem uprostřed scény.

Pro programování skriptů ve Scratch se používá přístup přetažení : bloky z palety bloků se přetahují do oblasti skriptu.

Podle funkčního účelu jsou bloky rozděleny do 10 skupin, příslušnost bloku ke konkrétní skupině je vyznačena jeho barvou.

Skupina anglické jméno Barva Poznámka
Provoz Pohyb Modrý ovládat pohyb sprajtu (neplatí na pozadí)
Vzhled vzhled fialový ovládat vzhled skřítka
Zvuk Zvuky růžový ovládat zvuk skřítka
Vývoj Události žlutá kontrola událostí, posílání signálů všem skřítkům
Řízení řízení jantar řídicí struktury, hlavičky obsluhy událostí
Senzory snímání modrý vstupní zařízení pro dotazování, časovač a jméno účastníka
Operátoři [4] Operátoři světle zelená aritmeticko-logické operace
Proměnné Proměnné červené a oranžové sekce pro manipulaci s proměnnými a seznamy
Jiné bloky Moje bloky světle růžová převést kombinaci bloků do jednoho bloku, což zjednodušuje kód,

nebo zjednoduší vytvoření vašeho osobního bloku

Přidat

Rozšíření

Rozšíření zelená rozšířit možnosti Scratche. Existují různé druhy rozšíření, jako je hudba, pero, rozpoznávání videa, text na řeč , překladač , Makey Makey , micro:bit , LEGO MINDSTORMS EV3 a LEGO Education WeDo 2.0

Mnoho bloků má upravitelné bílé pole pro parametry zadané programátorem scratch.

Existují tři typy bloků: bloky zásobníku , bloky záhlaví a bloky odkazů .

Stack bloky (většina bloků) ( angl.  Stack Blocks ) mají nahoře zářez a dole římsu, s jejich pomocí se spojují do skupiny bloků zvané stack . Stohy lze kopírovat a přesouvat jako jeden blok. Zvláštním druhem bloků zásobníku jsou řídicí konstrukce, jako jsou smyčky  – mají tvar písmene C a mohou překlenout vnořený zásobník škrábacích bloků.

Bloky záhlaví ( také nazývané klobouky) mají konvexní horní okraj a výstupek ke spojení ve spodní části - tvoří záhlaví škrábacích hromádek. Bloky záhlaví zahrnují bloky „když...“ ze skupinyOvládání “, které umožňují organizovat obslužné programy zpráv: externí – z klávesnice a myši a interní – přenášené mezi sprity a umožňující objektově orientované programování ve stylu smalltalk .   

Bloky odkazů ( angl.  Reporters ) jsou určeny k vyplnění vnitřních polí jiných bloků.

Jazyk Scratch (jako Logo ) pracuje s čísly, textovými řetězci, booleany a seznamy , které hrají roli dynamických polí.

Přestože architektura stíracích programů ve formě sady skřítků Scratch, které si navzájem vyměňují události, připomíná objektově orientovanou architekturu , Scratch není objektově orientovaný jazyk: má (v žádné podobě) mechanismy dědičnosti (v nejnovějších verzích rozšířeného BYOB scratch dialektu, prototypová dědičnost ).

Zdrojový kód

Po vydání verze 0.18.1 byl zdrojový kód Scratch otevřen za podmínek licence Scratch Source Code License – což je jednoduchá copyleft licence s dalšími omezeními na nepoužívat originální ochranné známky (v mírnější podobě jsou taková omezení zahrnuta, například v PHP License ).

Kód lze stáhnout z oficiálních stránek [5] . Podmínky pro jeho použití a distribuci jsou následující:

  1. Slovo „Scratch“ nesmíte používat k označení odvozených děl (s výjimkou fráze „založené na kódu Scratch vytvořeném MIT Media Laboratory“),
  2. V odvozených dílech nesmíte používat logo Scratch ani oficiální kočku chráněnou autorským právem Scratch,
  3. Nemůžete implementovat možnost nahrávat projekty na jinou webovou stránku než MIT Scratch (aktuálně http://scratch.mit.edu ),
  4. kopie nebo odvozená díla si musí ponechat autorská práva a upozornění na licenci společnosti Scratch a
  5. zdrojový kód odvozených děl musí zůstat dostupný.
Původní text  (anglicky)[ zobrazitskrýt]
  1. nemůžete použít slovo „Scratch“ k označení odvozených děl (kromě fráze „Na základě Scratch z MIT Media Laboratory“),
  2. nemůžete používat logo Scratch nebo oficiální (autorsky chráněnou) kočku Scratch v odvozených dílech,
  3. nemůžete implementovat možnost nahrávat projekty na jakoukoli webovou stránku MIT Scratch (aktuálně http://scratch.mit.edu ),
  4. kopie nebo odvozená díla musí obsahovat upozornění na autorská práva a licenci Scratch a
  5. musíte zpřístupnit zdrojový kód odvozených děl.

*(přečíst poznámky)

Distribuovaný zdrojový kód již tyto podmínky splňuje: bylo v něm nahrazeno logo a sprite s kočkou a odstraněn kód pro uložení projektu Scratch na web.

Protože je však Scratch (1.4) napsán v jazyce Squeak , existuje přístup k jeho zdrojovému kódu, aniž by byl explicitně poskytnut uživateli – jsou uloženy spolu s výsledkem jejich kompilace v obrazovém souboru systému Smalltalk.

Dne 13. května 2014 byl vydán zdrojový kód pro Scratch 2.0 pod licencí GPLv2 [6] .

Úpravy a další vývoj

Na základě zdrojového kódu Scratch 1.4 byla vytvořena řada jazykových úprav [7] , jako například:

BYOB (Snap!)

Vyvinutý na univerzitě v Berkeley . Hlavním jazykovým rozšířením, které bylo představeno v BYOB, byla schopnost vytvářet kompozitní vlastní bloky – analoga postupů konvenčních programovacích jazyků . Jsou podporovány výrazy rekurze , uzávěry a lambda . Přidaný je také debugger a schopnost kompilovat spustitelné soubory, vnořené sprity, vícerozměrné seznamy, vylepšené posouvání a kompilace spustitelných souborů. Počínaje verzí 3.1 přidal BYOB podporu pro OOP  - BYOB sprity nyní umožňují dědění na základě prototypů . Za tímto účelem jazyk zejména zavedl mechanismus pro klonování skřítků.

Panther

Panther - rozšiřuje Scratch o podporu pro správu sprite drag-n-drop , schopnost klonovat sprity (objekty) a subsystém CYOB (který stejně jako BYOB umožňuje vytvářet vlastní bloky příkazů, ale vyžaduje znalost jazyka Squeak pro toto (moderní dialekt Smalltalk , ve kterém psaný Scratch a jeho modifikace).

Síťový mechanismus

BYOB i Panther zahrnují podporu mechanismu mesh [14] , který umožňuje škrabacím programům interagovat po síti pomocí sdílených proměnných a posílat zprávy vysílání.

Slash

Slash rozšiřuje možnosti BYOB 3.0 o nové schopnosti Panther: klonování a přetahování spritů (objektů).

StarLogo TNG

V roce 2008 vyvinul Massachusetts Institute of Technology také výukový programovací jazyk StarLogo TNG [15] , který rozšiřuje možnosti systému StarLogo o možnosti 3D grafiky a vizuální blokový programovací jazyk podobný škrábancům. Na rozdíl od původního OpenStarLogo [16] a MIT Scratch není StarLogo TNG v současnosti softwarovým produktem s otevřeným zdrojovým kódem.

Scratch 2.0

V únoru 2011 byla vydána první online beta verze Scratch 2.0 [17] , která má podle plánu obsahovat některé funkce BYOB (jako je tvorba vlastních procedur), vektorová grafika, klonování sprite, možnost skupinové práce na projektech , atd. Betaverze byla oficiálně vydána 9. května 2013.

Scratch 3.0

Scratch 3.0 je třetí a aktuální hlavní verze Scratch. Jedná se o kompletní přepracování a reimplementaci Scratch napsané v HTML5 a JavaScriptu . Má nový, moderní vzhled a design. Je kompatibilní s mnoha mobilními zařízeními a nevyžaduje Flash. Vydáno 2. ledna 2019.

App Inventor

App Inventor  , experimentální vizuální programovací systém pro platformu Android , se stal dalším programovacím prostředím, které využívá skládání vizuální logiky ve stylu mozaiky .

Přímější obdobou jazyka Scratch na Androidu je jazyk Catroid, který je vyvíjen v Institutu softwarových technologií Technické univerzity v Grazu v Rakousku [18] .

Viz také

Poznámky

  1. Tvorba od nuly: Nový software od MIT Media Lab uvolňuje kreativitu dětí online . Získáno 14. listopadu 2010. Archivováno z originálu 25. března 2014.
  2. Celoživotní skupina mateřské školy . Získáno 25. července 2008. Archivováno z originálu 8. února 2011.
  3. http://s4a.cat . - Scratch projekt pro Arduino. Získáno 11. dubna 2014. Archivováno z originálu 13. dubna 2014.
  4. Ve verzích starších než 1.4 - čísla ( anglická  čísla )
  5. Scratch Source Code (nedostupný odkaz) . Získáno 25. července 2008. Archivováno z originálu dne 6. července 2008. 
  6. Scratch 2.0 Offline s otevřeným zdrojovým kódem! — Diskutujte o Scratch . Získáno 26. srpna 2014. Archivováno z originálu 12. října 2014.
  7. Scratch Modifikace . Získáno 14. listopadu 2010. Archivováno z originálu 12. března 2016.
  8. Build Your Own Blocks (BYOB) Archivováno 23. srpna 2010 na domovské stránce Wayback Machine
  9. Build Your Own Blocks (BYOB) (Scratch Modification) Archivováno 3. dubna 2016 na Wayback Machine na wiki Scratch
  10. Panther – na základě Scratch Archivováno 19. dubna 2021 na domovské stránce Wayback Machine
  11. Panther (Scratch Modification) Archivováno 30. března 2016 na Wayback Machine na wiki Scratch
  12. Slash Project . Získáno 14. listopadu 2010. Archivováno z originálu 11. srpna 2019.
  13. Slash (Scratch Modification) Archivováno 15. listopadu 2010 na Wayback Machine na wiki Scratch
  14. Síťka . Získáno 26. dubna 2011. Archivováno z originálu 4. dubna 2016.
  15. StarLogo TNG . Získáno 26. dubna 2011. Archivováno z originálu 19. dubna 2015.
  16. OpenStarLogo (odkaz dolů) . Získáno 26. dubna 2011. Archivováno z originálu 17. května 2011. 
  17. Scratch 1.0 . Získáno 26. dubna 2011. Archivováno z originálu 16. srpna 2016.
  18. Web Catroid . Získáno 5. března 2012. Archivováno z originálu 14. února 2022.

Literatura

Odkazy