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 ) |
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 .
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 grupul „ Control ”, 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 ).
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:
*(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] .
Pe baza codului sursă Scratch 1.4, au fost create o serie de modificări de limbaj [7] , cum ar fi:
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 - 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).
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 extinde capacitățile BYOB 3.0 cu noi capabilități Panther: clonarea și tragerea de sprite (obiecte).
Î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.
Î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 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 , 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] .
În rețelele sociale | |
---|---|
Site-uri tematice | |
În cataloagele bibliografice |
|
Limbaje de programare | |
---|---|
|