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. ) |
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 .
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 ).
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:
*(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] .
A Scratch 1.4 forráskódja alapján számos nyelvi módosítást [7] hoztak létre , mint például:
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.
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).
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.
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.
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.
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.
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.
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] .
![]() | |
---|---|
Tematikus oldalak | |
Bibliográfiai katalógusokban |
|
Programozási nyelvek | |
---|---|
|