Scratch (limbaj de programare)

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 31 iulie 2019; verificările necesită 80 de modificări .
Zgârietură
Semantică condus de evenimente
Clasa de limba grafic , educativ
Tipul de execuție interpret
Aparut in 2007
Autor Mitchell Resnick _ _  _
Dezvoltator MIT Media Lab
Extensie de fișier .sb , .sb2 , .sb3
Eliberare 3.29.1 (27 februarie 2022 ) ( 27.02.2022 )
Tip sistem dinamic
Implementări majore Zgârietură
Dialectele Snap!
A fost influențat Logo , Smalltalk , HyperCard, StarLogo , AgentSheets, Etoys, Tweak
influențat Snap! , AppInventor , Catrobat
Licență licență BSD modificată [d]
Site-ul web zgârietură.mit.edu
OS Windows , macOS , HTML
 Fișiere media la Wikimedia Commons

Scratch ( în engleză  Scratch , IPA [ s k r æ ʧ ]) este un mediu de programare bazat pe evenimente cu bloc vizual, creat pentru copii și adolescenți. Numele provine de la cuvântul scratch  , o tehnică folosită de DJ-ii hip-hop care rotesc discuri de vinil înainte și înapoi cu mâinile pentru a amesteca teme muzicale [1] .

A fost creat ca o continuare a ideilor limbajului Logo și a constructorului Lego . Scratch 1.4 a fost scris în limbajul Squeak , 2.0 și 3.0 sunt axate pe munca online. Scratch 2.0 a fost rescris în Flash și ActionScript . Scratch 3.0 (versiunea actuală) este o versiune îmbunătățită a Scratch 2.0 și este realizată în HTML5 folosind motorul WebGL , permițându-i să ruleze pe dispozitive mobile și tablete . Scratch este dezvoltat de o echipă mică de programatori pentru copii [2] de la Institutul de Tehnologie din Massachusetts . Versiunea actuală este Scratch 3.0, lansată în ianuarie 2019. În 2008, Scratch a fost portat pe modulul de microcontroler Arduino . Proiectul se numește S4A [3] .

Programele pe Scratch constau din blocuri grafice, ale căror subtitrări depind de limba aleasă pentru interfață. Una dintre cele 50 de limbi ale interfeței poate fi selectată, inclusiv rusă . Pentru a conecta interfața într-o nouă limbă, sunt utilizate fișiere gettext standard .

Programare

Componentele principale ale unui program scratch sunt obiectele sprite . Un sprite constă dintr-o reprezentare grafică — un set de cadre- costume ( ing.  costum ) și un scenariu- scenariu . Pentru a edita costumele sprite-urilor, un editor grafic ( Editor de vopsea engleză  ) este încorporat de la zero . Acțiunea programului Scratch are loc pe o scenă ( scena engleză  ) cu dimensiunea de 480 × 360 (condiționați) pixeli cu centrul de coordonate în mijlocul scenei.

Pentru programarea scripturilor în Scratch, se folosește o abordare drag-and-drop : blocurile din paleta de blocuri sunt trase în zona de script.

După scopul funcțional, blocurile sunt împărțite în 10 grupuri, apartenența blocului la un anumit grup este indicată de culoarea acestuia.

grup titlu englezesc Culoare Notă
Trafic Mişcare Albastru controlați mișcarea sprite-ului (nu se aplică în fundal)
Aspect arata violet controlează aspectul sprite-ului
Sunet Sunete roz controlează sunetul sprite-ului
Evoluții Evenimente galben verificarea evenimentelor, trimiterea semnalelor tuturor sprite-urilor
Control Control chihlimbar structuri de control, anteturi de gestionare a evenimentelor
Senzori simțind albastru dispozitive de intrare de sondare, temporizator și numele participantului
Operatori [4] Operatori verde deschis operatii aritmetico-logice
Variabile Variabile roșu și portocaliu secțiune pentru manipularea variabilelor și listelor
Alte blocuri Blocurile mele roz deschis convertiți o combinație de blocuri într-un singur bloc, ceea ce simplifică codul,

sau simplifică crearea blocului personal

Adăuga

Extensii

Extensii verde extinde posibilitățile Scratch. Există diferite tipuri de extensii, cum ar fi muzică, creion, recunoaștere video, text to speech , translator , Makey Makey , micro:bit , LEGO MINDSTORMS EV3 și LEGO Education WeDo 2.0

Multe blocuri au un câmp alb editabil pentru parametrii introduși de programatorul scratch.

Există trei tipuri de blocuri: blocuri de stivă , blocuri de antet și blocuri de linkuri .

Blocurile de stivă (majoritatea blocurilor) ( ing.  Blocuri de stivă ) au o crestătură în partea de sus și o margine în partea de jos, cu ajutorul lor sunt combinate într-un grup de blocuri numit stivă . Stivele pot fi copiate și mutate ca un singur bloc. Un tip special de blocuri de stivă sunt construcții de control, cum ar fi bucle  - ele sunt în formă de C și se pot întinde pe un teanc imbricat de blocuri scratch.

Blocurile de antet ( numite și pălării) au o margine superioară convexă și o margine de unire în partea de jos - formează anteturile stivelor de zgârieturi. Blocurile de antet includ blocuri „când...” din grupulControl ”, care permit organizarea de gestionare a mesajelor: extern - de la tastatură și mouse, și intern - transmis între sprite și permițând programarea orientată pe obiect în stil smalltalk .   

Blocurile de legături ( ing.  Reporteri ) sunt destinate să completeze câmpurile interne ale altor blocuri.

Limbajul Scratch (cum ar fi Logo ) operează cu numere, șiruri de text, booleeni și liste care joacă rolul de tablouri dinamice.

Deși arhitectura programelor scratch sub forma unui set de sprite-uri Scratch care schimbă evenimente între ele seamănă cu una orientată pe obiecte , Scratch nu este un limbaj orientat pe obiecte: are (sub nicio formă) mecanisme de moștenire (în ultimele versiuni ). a dialectului scratch extins BYOB, moștenire prototip ).

Cod sursă

După lansarea versiunii 0.18.1, codul sursă Scratch a fost deschis în conformitate cu termenii Licenței Scratch Source Code - care este o licență copyleft simplă cu restricții suplimentare privind neutilizarea mărcilor comerciale originale (într-o formă mai blândă, astfel de restricții sunt incluse, de exemplu, în licența PHP ).

Codul poate fi descărcat de pe site-ul oficial [5] . Condițiile de utilizare și distribuire a acestuia sunt următoarele:

  1. Nu puteți folosi cuvântul „Scratch” pentru a vă referi la lucrări derivate (cu excepția expresiei „bazat pe codul Scratch creat de MIT Media Laboratory”),
  2. Nu puteți utiliza sigla Scratch sau pisica oficială Scratch protejată prin drepturi de autor în lucrări derivate,
  3. Nu puteți implementa capacitatea de a încărca proiecte pe orice alt site web decât MIT Scratch (în prezent http://scratch.mit.edu ),
  4. copiile sau lucrările derivate trebuie să păstreze notificările Scratch privind drepturile de autor și licența și
  5. codul sursă al operelor derivate trebuie să rămână disponibil.
Text original  (engleză)[ arataascunde]
  1. nu puteți folosi cuvântul „Scratch” pentru a face referire la lucrări derivate (cu excepția expresiei „Based on Scratch din MIT Media Laboratory”),
  2. nu puteți folosi sigla Scratch sau pisica oficială (cu drepturi de autor) Scratch în lucrări derivate,
  3. nu puteți implementa capacitatea de a încărca proiecte pe niciun site web MIT Scratch (în prezent, http://scratch.mit.edu ),
  4. copiile sau lucrările derivate trebuie să păstreze notificarea privind drepturile de autor și licența Scratch și
  5. trebuie să puneți la dispoziție codul sursă pentru lucrările derivate.

*(citește notele)

Codul sursă distribuit îndeplinește deja aceste condiții: logo-ul și sprite-ul cu pisica au fost înlocuite în el, iar codul pentru salvarea proiectului Scratch pe site a fost eliminat.

Cu toate acestea, deoarece Scratch (1.4) este scris în Squeak , accesul la codul său sursă există fără a le furniza în mod explicit utilizatorului - ele sunt stocate împreună cu rezultatul compilării lor în fișierul imagine al sistemului Smalltalk.

Pe 13 mai 2014, codul sursă pentru Scratch 2.0 a fost lansat sub licența GPLv2 [6] .

Modificări și dezvoltare ulterioară

Pe baza codului sursă Scratch 1.4, au fost create o serie de modificări de limbaj [7] , cum ar fi:

BYOB (Snap!)

Dezvoltat la Universitatea din Berkeley . Extensia principală de limbaj care a fost introdusă în BYOB a fost capacitatea de a construi blocuri personalizate compozite - un analog al procedurilor limbajelor de programare convenționale . Recursiunea , închiderile și expresiile lambda sunt acceptate . De asemenea, este adăugat un depanator și capacitatea de a compila în executabile, sprite imbricate, liste multidimensionale, defilare îmbunătățită și compilare executabile. Începând cu versiunea 3.1, BYOB a adăugat suport pentru OOP  - sprite-urile BYOB permit acum moștenirea bazată pe prototipuri . Pentru a face acest lucru, limbajul, în special, a introdus un mecanism pentru clonarea sprite-urilor.

Panther

Panther - extinde Scratch cu suport pentru gestionarea sprite-urilor drag-n-drop , capacitatea de a clona sprite-uri (obiecte) și subsistemul CYOB (care, la fel ca BYOB, vă permite să vă creați propriile blocuri de comandă, dar necesită cunoașterea limbajului Squeak ). pentru aceasta (un dialect modern de Smalltalk , în care scris de Scratch și modificările sale).

Mecanism de plasă

Atât BYOB, cât și Panther includ suport pentru mecanismul mesh [14] , care permite programelor scratch să interacționeze prin rețea folosind variabile partajate și trimițând mesaje difuzate.

Slash

Slash extinde capacitățile BYOB 3.0 cu noi capabilități Panther: clonarea și tragerea de sprite (obiecte).

StarLogo TNG

În 2008, Institutul de Tehnologie din Massachusetts a dezvoltat și limbajul de programare educațional StarLogo TNG [15] , care extinde capacitățile sistemului StarLogo cu capabilități grafice 3D și un limbaj de programare bloc vizual asemănător zgârieturilor. Spre deosebire de OpenStarLogo [16] și MIT Scratch original, StarLogo TNG nu este în prezent un produs software open source.

Scratch 2.0

În februarie 2011, a fost lansată prima versiune beta online a Scratch 2.0 [17] , care este planificată să includă unele dintre caracteristicile BYOB (cum ar fi crearea de proceduri personalizate), grafică vectorială, clonarea sprite-urilor, posibilitatea de a lucra în grup pe proiecte. , etc. Versiunea beta a fost lansată oficial pe 9 mai 2013.

Scratch 3.0

Scratch 3.0 este a treia și actuala versiune majoră a Scratch. Aceasta este o reluare și o reimplementare completă a Scratch scrisă în HTML5 și JavaScript . Are un aspect și un design nou, modern. Este compatibil cu multe dispozitive mobile și nu necesită Flash. Lansat pe 2 ianuarie 2019.

App Inventor

App Inventor  , un sistem experimental de programare vizuală pentru platforma Android , a devenit un alt mediu de programare care utilizează stivuirea logicii vizuale în stil mozaic .

Un analog mai direct al limbajului Scratch pe Android este limbajul Catroid, care este dezvoltat la Institutul de Tehnologie Software al Universității de Tehnologie Graz din Austria [18] .

Vezi și

Note

  1. Crearea de la zero: Noul software de la MIT Media Lab dezlănțuie creativitatea copiilor online . Consultat la 14 noiembrie 2010. Arhivat din original pe 25 martie 2014.
  2. Grupul de grădiniță pe tot parcursul vieții . Consultat la 25 iulie 2008. Arhivat din original la 8 februarie 2011.
  3. http://s4a.cat . - Proiect Scratch pentru Arduino. Consultat la 11 aprilie 2014. Arhivat din original pe 13 aprilie 2014.
  4. În versiunile anterioare 1.4 - numere ( numere în engleză  )
  5. Cod sursă Scratch (link indisponibil) . Consultat la 25 iulie 2008. Arhivat din original la 6 iulie 2008. 
  6. Scratch 2.0 Offline Open Source Code! — Discutați despre Scratch . Preluat la 26 august 2014. Arhivat din original la 12 octombrie 2014.
  7. Modificări la zgârietură . Consultat la 14 noiembrie 2010. Arhivat din original la 12 martie 2016.
  8. Build Your Own Blocks (BYOB) Arhivat 23 august 2010 pe pagina de pornire Wayback Machine
  9. Build Your Own Blocks (BYOB) (Modificare Scratch) Arhivat 3 aprilie 2016 la Wayback Machine în wiki Scratch
  10. Panther - bazat pe Scratch Arhivat la 19 aprilie 2021 pe pagina de pornire Wayback Machine
  11. Panther (Modificare Scratch) Arhivat la 30 martie 2016 la Wayback Machine în wiki Scratch
  12. Proiect Slash . Consultat la 14 noiembrie 2010. Arhivat din original la 11 august 2019.
  13. Slash (Modificare Scratch) Arhivat 15 noiembrie 2010 la Wayback Machine în wiki Scratch
  14. Mesh . Consultat la 26 aprilie 2011. Arhivat din original pe 4 aprilie 2016.
  15. StarLogo TNG . Consultat la 26 aprilie 2011. Arhivat din original pe 19 aprilie 2015.
  16. OpenStarLogo (link descendent) . Consultat la 26 aprilie 2011. Arhivat din original pe 17 mai 2011. 
  17. Scratch 1.0 . Preluat la 26 aprilie 2011. Arhivat din original la 16 august 2016.
  18. Site-ul Catroid . Preluat la 5 martie 2012. Arhivat din original la 14 februarie 2022.

Literatură

Link -uri