Scratch (programozási nyelv)

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2019. július 31-én felülvizsgált verziótól ; az ellenőrzések 80 szerkesztést igényelnek .
Karcolás
Szemantika eseményvezérelt
Nyelvóra grafikai , oktatási
A végrehajtás típusa tolmács
Megjelent 2007
Szerző Mitchell Resnick _ _  _
Fejlesztő MIT Media Lab
Fájlkiterjesztés _ .sb , .sb2 , .sb3
Kiadás 3.29.1 (2022. február 27. ) ( 2022-02-27 )
Típusrendszer dinamikus
Főbb megvalósítások Karcolás
Dialektusok Snap!
Befolyásolva Logo , Smalltalk , HyperCard , StarLogo , AgentSheets , Etoys , Tweak
befolyásolta Snap! , AppInventor , Catrobat
Engedély módosított BSD licenc [d]
Weboldal scratch.mit.edu
OS Windows , macOS , HTML
 Médiafájlok a Wikimedia Commons oldalon

A Scratch ( angolul  Scratch , IPA [ s k r æ ʧ ]) egy vizuális blokkok eseményvezérelt programozási környezet , amelyet gyermekek és tinédzserek számára hoztak létre. A név a scratching szóból ered  , egy olyan technikát, amelyet a hip-hop DJ-k használnak, akik bakelitlemezeket forgatnak oda-vissza a kezükkel, hogy zenei témákat keverjenek [1] .

A Logo nyelv és a Lego konstruktor ötleteinek folytatásaként jött létre . A Scratch 1.4 Squeak nyelven íródott, a 2.0 és 3.0 pedig az online munkára összpontosít. A Scratch 2.0 át lett írva Flash és ActionScript nyelven . A Scratch 3.0 (jelenlegi verzió) a Scratch 2.0 továbbfejlesztett változata, amely HTML5 -ben készült a WebGL -motor segítségével, lehetővé téve mobileszközökön és táblagépeken való futtatását . A Scratch-et a Massachusetts Institute of Technology egy kis programozói csapata [2] fejleszti gyerekeknek . A jelenlegi verzió a Scratch 3.0, amely 2019 januárjában jelent meg. 2008-ban a Scratch átkerült az Arduino mikrokontroller modulra . A projekt neve S4A [3] .

A Scratch programjai grafikus blokkokból állnak, amelyek feliratai a felülethez választott nyelvtől függenek. Az 50 interfésznyelv egyike választható, beleértve az oroszt is . Az interfész új nyelven történő csatlakoztatásához szabványos gettext fájlokat használnak .

Programozás

A scratch programok fő összetevői a sprite objektumok . A sprite egy grafikus ábrázolásból áll – egy keret- jelmezkészletből ( eng.  costume ) és egy forgatókönyvből . A sprite jelmezeinek szerkesztéséhez egy grafikus szerkesztő ( angol  Paint Editor ) van beépítve a scratch-ba . A Scratch program cselekménye egy 480 × 360 (feltételes) pixel méretű színpadon játszódik , a koordináta középpontjával a jelenet közepén .  

A szkriptek Scratch programozásához fogd és vidd megközelítést alkalmaznak: a blokkpaletta blokkjai a szkriptterületre húzódnak.

Funkcionális céljuk szerint a blokkok 10 csoportra vannak osztva, a blokk egy adott csoporthoz való tartozását a színe jelzi.

Csoport Angol cím Szín jegyzet
Forgalom Mozgás Kék szabályozza a sprite mozgását (nem érvényes a háttérben)
Megjelenés úgy néz ki ibolya szabályozza a sprite megjelenését
Hang Hangok rózsaszín szabályozza a sprite hangját
Fejlesztések Események sárga események ellenőrzése, jelek küldése minden sprite-nak
Ellenőrzés ellenőrzés borostyán vezérlőstruktúrák, eseménykezelő fejlécek
Érzékelők érzékelés kék lekérdezési beviteli eszközök, időzítő és a résztvevő neve
Operátorok [4] Üzemeltetők világos zöld aritmetikai-logikai műveletek
Változók Változók piros és narancssárga szakasz a változók és listák kezeléséhez
Egyéb blokkok Saját blokkok világos rózsaszín blokkok kombinációját egy blokkká alakítja, ami leegyszerűsíti a kódot,

vagy leegyszerűsíti a személyes blokk létrehozását

Hozzáadás

Kiterjesztések

Kiterjesztések zöld bővítse a Scratch lehetőségeit. Különféle bővítmények léteznek, például zene, toll, videofelismerés, szöveg beszédre , fordító , Makey Makey , micro:bit , LEGO MINDSTORMS EV3 és LEGO Education WeDo 2.0

Sok blokkban van egy szerkeszthető fehér mező a scratch programozó által beírt paraméterekhez.

A blokkok három típusa létezik: veremblokkok , fejlécblokkok és linkblokkok .

A veremtömbök (a blokkok többsége) ( angol.  Stack Blocks ) tetején egy bevágás, alul pedig egy párkány van, segítségükkel egyesülnek a stack nevű blokkok csoportjába . A halmok egyetlen blokkként másolhatók és mozgathatók. A veremblokkok egy speciális fajtája a vezérlőkonstrukciók, például a hurkok  – C-alakúak, és átfoghatnak egy egymásba ágyazott kaparóblokkok halomán.

A fejlécblokkok ( más néven kalapok) domború felső éllel és alul összeilleszthető párkányral rendelkeznek – ezek alkotják a karcolásos halmok fejlécét . A fejlécblokkok közé tartoznak a " Control " csoport "when..." blokkjai , amelyek lehetővé teszik az üzenetkezelők rendszerezését: külső - a billentyűzetről és az egérről, valamint belső - a sprite-ok között továbbítva, és lehetővé teszik az objektumorientált programozást Smalltalk stílusban.   

A linkblokkok ( eng.  Reporters ) más blokkok belső mezőinek kitöltésére szolgálnak.

A Scratch nyelv (mint a Logo ) számokkal, szöveges karakterláncokkal, logikai értékekkel és listákkal működik , amelyek dinamikus tömbként szolgálnak.

Bár az egymással eseményeket cserélő Scratch sprite-halmaz formájában megjelenő scratch programok architektúrája egy objektum-orientáltra hasonlít , a Scratch nem egy objektum-orientált nyelv: (nem formában) rendelkezik öröklési mechanizmusokkal (a legújabb verziókban ). a kiterjesztett BYOB scratch dialektus, prototípus öröklődés ).

Forráskód

A 0.18.1-es verzió megjelenése után a Scratch forráskódot a Scratch Source Code License feltételei szerint nyitottuk meg – ez egy egyszerű copyleft licenc, további korlátozásokkal az eredeti védjegyek használatának mellőzésére (enyhébb formában ilyen korlátozások szerepelnek, például a PHP licencben ).

A kód letölthető a hivatalos oldalról [5] . Felhasználásának és forgalmazásának feltételei a következők:

  1. Nem használhatja a "Scratch" szót származékos művekre (kivéve a "az MIT Media Laboratory által létrehozott Scratch kódon alapuló" kifejezést),
  2. Nem használhatja a Scratch logót vagy a hivatalos Scratch szerzői joggal védett macskát származékos művekben,
  3. Az MIT Scratch webhelyen kívül (jelenleg http://scratch.mit.edu ) nem lehet projekteket feltölteni más webhelyekre ,
  4. a másolatoknak vagy származékos műveknek meg kell őrizniük a Scratch szerzői jogi és licencjegyeit, és
  5. a származékos művek forráskódjának elérhetőnek kell maradnia.
Eredeti szöveg  (angol)[ showelrejt]
  1. nem használhatja a „Scratch” szót származékos művekre (kivéve a „Scratch alapján az MIT Media Laboratory-ból” kifejezést),
  2. nem használhatja a Scratch logót vagy a hivatalos (jogvédett) Scratch macskát származékos munkákban,
  3. nem tudja megvalósítani a projektek feltöltésének lehetőségét egyetlen MIT Scratch webhelyre sem (jelenleg http://scratch.mit.edu ),
  4. a másolatoknak vagy származékos műveknek meg kell őrizniük a Scratch szerzői jogi megjegyzését és licencét, és
  5. elérhetővé kell tennie a származékos művek forráskódját.

*(olvasd el a megjegyzéseket)

A terjesztett forráskód már megfelel ezeknek a feltételeknek: kicserélték benne a logót és a sprite-ot a macskával, valamint eltávolították a Scratch projekt webhelyre mentéséhez szükséges kódot.

Mivel azonban a Scratch (1.4) Squeak nyelven íródott , a forráskódhoz való hozzáférés anélkül is létezik, hogy azokat kifejezetten megadná a felhasználónak – a fordítás eredményével együtt a Smalltalk rendszer képfájljában

2014. május 13-án megjelent a Scratch 2.0 forráskódja a GPLv2 licenc alatt [6] .

Módosítások és továbbfejlesztés

A Scratch 1.4 forráskódja alapján számos nyelvi módosítást [7] hoztak létre , mint például:

BYOB (Snap!)

A Berkeley Egyetemen fejlesztették ki . A BYOB-ban bevezetett fő nyelvi bővítmény az összetett egyedi blokkok létrehozásának képessége volt – a hagyományos programozási nyelvek eljárásainak analógja . A rekurzió , a lezárások és a lambda kifejezések támogatottak . Emellett egy hibakereső, valamint a végrehajtható fájlok, beágyazott sprite-ok, többdimenziós listák, továbbfejlesztett görgetés és végrehajtható fájlok fordításának képessége. A 3.1-es verziótól kezdve a BYOB támogatta az OOP -ot  – a BYOB sprite-ok mostantól lehetővé teszik a prototípusokon alapuló öröklést . Ennek érdekében a nyelv különösen bevezetett egy mechanizmust a sprite klónozására.

Párduc

Panther – kiterjeszti a Scratch-et a drag-n-drop sprite-kezelés támogatásával, a sprite-ok (objektumok) klónozásának lehetőségével és a CYOB alrendszerrel (amely a BYOB-hoz hasonlóan lehetővé teszi saját parancsblokkok létrehozását, de ehhez szükséges a Squeak nyelv ismerete erre (a Smalltalk modern dialektusa , amelyben Scratch írta és annak módosításai).

Hálós mechanizmus

Mind a BYOB, mind a Panther támogatja a mesh [14] mechanizmust , amely lehetővé teszi a scratch programok számára, hogy a hálózaton keresztül kommunikáljanak a megosztott változók és a broadcast üzenetek küldésével.

Slash

A Slash új Panther képességekkel bővíti a BYOB 3.0 képességeit: klónozást és sprite-ok (objektumok) húzását.

StarLogo TNG

2008- ban a Massachusetts Institute of Technology kifejlesztette a StarLogo TNG oktatási programozási nyelvet is [15] , amely a StarLogo rendszer képességeit 3D grafikus képességekkel és karcszerű vizuális blokk programozási nyelvvel bővíti. Az eredeti OpenStarLogo-tól [16] és az MIT Scratch-től eltérően a StarLogo TNG jelenleg nem nyílt forráskódú szoftvertermék.

Scratch 2.0

2011 februárjában jelent meg a Scratch 2.0 [17] első online béta verziója , amely a tervek szerint tartalmazza majd a BYOB néhány funkcióját (például egyedi eljárások létrehozását), vektorgrafikát, sprite klónozást, csoportmunka lehetőségét projekteken stb. A béta verzió hivatalosan 2013. május 9-én jelent meg.

Scratch 3.0

A Scratch 3.0 a Scratch harmadik és jelenlegi fő verziója. Ez a Scratch teljes átdolgozása és újbóli megvalósítása HTML5 -ben és JavaScript -ben . Új, modern megjelenéssel és dizájnnal rendelkezik. Számos mobileszközzel kompatibilis, és nem igényel Flash-t. Megjelenés: 2019. január 2.

App Inventor

Az App Inventor  , egy kísérleti vizuális programozási rendszer Android platformhoz , egy újabb programozási környezet lett, amely mozaik stílusú vizuális logikai halmozást használ .

Az Androidon futó Scratch nyelv közvetlenebb analógja a Catroid nyelv, amelyet az osztrák Grazi Műszaki Egyetem Szoftvertechnológiai Intézetében fejlesztenek [18] .

Lásd még

Jegyzetek

  1. Létrehozás a semmiből: Az MIT Media Lab új szoftvere szabadjára engedi a gyerekek kreativitását az interneten . Letöltve: 2010. november 14. Az eredetiből archiválva : 2014. március 25..
  2. Élethosszig tartó óvodai csoport . Letöltve: 2008. július 25. Az eredetiből archiválva : 2011. február 8..
  3. http://s4a.cat . - Scratch projekt az Arduino számára. Letöltve: 2014. április 11. Az eredetiből archiválva : 2014. április 13..
  4. Az 1.4 - számoknál korábbi verziókban ( angol  számok )
  5. Scratch Source Code (nem elérhető link) . Letöltve: 2008. július 25. Az eredetiből archiválva : 2008. július 6.. 
  6. Scratch 2.0 Offline nyílt forráskód! — Beszélje meg a Scratch-et . Letöltve: 2014. augusztus 26. Az eredetiből archiválva : 2014. október 12..
  7. Karcok módosításai . Letöltve: 2010. november 14. Az eredetiből archiválva : 2016. március 12.
  8. Build Your Own Blocks (BYOB) archiválva : 2010. augusztus 23. a Wayback Machine kezdőlapján
  9. Build Your Own Blocks (BYOB) (Scratch Modification) Archiválva : 2016. április 3. a Wayback Machine -en a Scratch wikiben
  10. Panther – a Scratch alapján archiválva 2021. április 19-én a Wayback Machine kezdőlapján
  11. Panther (Scratch módosítás) archiválva : 2016. március 30. a Wayback Machine -en a Scratch wikiben
  12. Slash Project . Letöltve: 2010. november 14. Az eredetiből archiválva : 2019. augusztus 11.
  13. Slash (Scratch módosítás) archiválva 2010. november 15-én a Wayback Machine -en a Scratch wikiben
  14. Háló . Letöltve: 2011. április 26. Az eredetiből archiválva : 2016. április 4..
  15. StarLogo TNG . Letöltve: 2011. április 26. Az eredetiből archiválva : 2015. április 19..
  16. OpenStarLogo (downlink) . Letöltve: 2011. április 26. Az eredetiből archiválva : 2011. május 17.. 
  17. Scratch 1.0 . Letöltve: 2011. április 26. Az eredetiből archiválva : 2016. augusztus 16..
  18. Catroid webhely . Letöltve: 2012. március 5. Az eredetiből archiválva : 2022. február 14.

Irodalom

Linkek