Scratch (programmeringsspråk)

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 31 juli 2019; kontroller kräver 80 redigeringar .
Repa
Semantik händelsestyrd
Språkklass grafisk , pedagogisk
Utförandetyp tolk
Framträdde i 2007
Författare Mitchell Resnick _ _  _
Utvecklaren MIT Media Lab
Filtillägg _ .sb , .sb2 , .sb3
Släpp 3.29.1 (27 februari 2022 ) ( 2022-02-27 )
Typ system dynamisk
Stora implementeringar Repa
Dialekter Knäppa!
Blivit påverkad Logotyp , Smalltalk , HyperCard, StarLogo , AgentSheets, Etoys, Tweak
påverkas Knäppa! , AppInventor , Catrobat
Licens modifierad BSD-licens [d]
Hemsida scratch.mit.edu
OS Windows , macOS , HTML
 Mediafiler på Wikimedia Commons

Scratch ( engelska  Scratch , IPA [ s k r æ ʧ ]) är en händelsestyrd programmeringsmiljö med visuella block skapad för barn och tonåringar. Namnet kommer från ordet scratching  , en teknik som används av hiphop-DJ:s som snurrar vinylskivor fram och tillbaka med händerna för att blanda musikaliska teman [1] .

Det skapades som en fortsättning på idéerna från logospråket och legokonstruktören . Scratch 1.4 skrevs på Squeak- språket , 2.0 och 3.0 är inriktade på onlinearbete. Scratch 2.0 har skrivits om i Flash och ActionScript . Scratch 3.0 (nuvarande version) är en förbättrad version av Scratch 2.0 och är gjord i HTML5 med hjälp av WebGL -motorn , vilket gör att den kan köras på mobila enheter och surfplattor . Scratch utvecklas av ett litet team av programmerare för barn [2] vid Massachusetts Institute of Technology . Den nuvarande versionen är Scratch 3.0, släppt i januari 2019. 2008 portades Scratch till Arduino -mikrokontrollmodulen . Projektet heter S4A [3] .

Program på Scratch består av grafiska block, vars bildtexter beror på vilket språk som valts för gränssnittet. Ett av 50 gränssnittsspråk kan väljas, inklusive ryska . För att ansluta gränssnittet på ett nytt språk används standard gettext- filer .

Programmering

Huvudkomponenterna i ett scratchprogram är sprite- objekt . En sprite består av en grafisk representation — en uppsättning ramkostymer ( eng .  kostym ) och ett manusskript . För att redigera sprites kostymer är en grafikredigerare ( Engelsk  Paint Editor ) inbyggd i scratch . Scratch-programmets handling äger rum på en scen ( engelsk  scen ) 480 × 360 (villkorlig) pixlar i storlek med koordinatcentrum i mitten av scenen.

För programmering av skript i Scratch används en dra-och-släpp- metod: block från blockpaletten dras in i skriptområdet.

Genom funktionellt syfte är blocken indelade i 10 grupper, blockets tillhörighet till en viss grupp indikeras av dess färg.

Grupp engelskt namn Färg Notera
Trafik Rörelse Blå kontrollera spritens rörelse (gäller inte i bakgrunden)
Utseende utseende violett kontrollera spritens utseende
Ljud Ljud rosa kontrollera spritens ljud
Utvecklingen evenemang gul letar efter händelser, skickar signaler till alla sprites
Kontrollera kontrollera bärnsten kontrollstrukturer, rubriker för händelsehanterare
Sensorer avkänning blå pollinginmatningsenheter, timer och deltagarnamn
Operatörer [4] Operatörer ljusgrön aritmetisk-logiska operationer
Variabler Variabler rött och orange avsnitt för att manipulera variabler och listor
Andra block Mina block ljusrosa konvertera en kombination av block till ett block, vilket förenklar koden,

eller förenklar skapandet av ditt personliga block

Lägg till

Tillägg

Tillägg grön utöka möjligheterna med Scratch. Det finns olika typer av tillägg som musik, penna, videoigenkänning, text till tal , översättare , Makey Makey , micro:bit , LEGO MINDSTORMS EV3 och LEGO Education WeDo 2.0

Många block har ett redigerbart vitt fält för parametrar som matas in av scratch-programmeraren.

Det finns tre typer av block: stackblock , rubrikblock och länkblock .

Stackblock (de flesta av blocken) ( eng.  Stack Blocks ) har en skåra på toppen och en avsats på botten, med deras hjälp kombineras de till en grupp av block som kallas stack . Staplar kan kopieras och flyttas som ett enda block. En speciell typ av stackblock är kontrollkonstruktioner som slingor  - de är C-formade och kan sträcka sig över en kapslad stapel av skrapblock.

Rubrikblock ( även kallade hattar) har en konvex övre kant och en avsats för att förenas i botten - de bildar rubrikerna på skrapstaplar. Rubrikblock inkluderar "när..."-block från gruppen " Kontroll ", som tillåter att organisera meddelandehanterare: externt - från tangentbordet och musen, och internt - överförs mellan sprites och tillåter objektorienterad programmering i smalltalk- stil.   

Länkblock ( eng.  Reporters ) är avsedda att fylla i andra blocks interna fält.

Språket Scratch (som Logo ) fungerar med siffror, textsträngar, booleaner och listor som spelar rollen som dynamiska arrayer.

Även om arkitekturen för scratch-program i form av en uppsättning Scratch-spriter som utbyter händelser med varandra liknar en objektorienterad , är Scratch inte ett objektorienterat språk: det har (i ingen form) arvsmekanismer (i de senaste versionerna ) av den utökade BYOB scratch dialekten, prototyp arv ).

Källkod

Efter lanseringen av version 0.18.1 öppnades Scratch-källkoden under villkoren i Scratch Source Code License - som är en enkel copyleft -licens med ytterligare begränsningar för att inte använda originalvarumärken ( i en mildare form, sådana begränsningar ingår, till exempel i PHP License ).

Koden kan laddas ner från den officiella webbplatsen [5] . Villkoren för dess användning och distribution är följande:

  1. Du får inte använda ordet "Scratch" för att referera till härledda verk (med undantag för frasen "baserat på Scratch-koden skapad av MIT Media Laboratory"),
  2. Du får inte använda Scratch-logotypen eller den officiella Scratch-upphovsrättsskyddade katten i härledda verk,
  3. Du kan inte implementera möjligheten att ladda upp projekt till någon annan webbplats än MIT Scratch (för närvarande http://scratch.mit.edu ),
  4. kopior eller härledda verk måste behålla Scratchs upphovsrätts- och licensmeddelanden, och
  5. källkoden för härledda verk måste förbli tillgänglig.
Originaltext  (engelska)[ visaDölj]
  1. du kan inte använda ordet "Scratch" för att referera till härledda verk (förutom i frasen "Based on Scratch from the MIT Media Laboratory"),
  2. du kan inte använda Scratch-logotypen eller den officiella (upphovsrättsskyddade) Scratch-katten i härledda verk,
  3. du kan inte implementera möjligheten att ladda upp projekt till någon MIT Scratch-webbplats (för närvarande http://scratch.mit.edu ),
  4. kopior eller härledda verk måste behålla upphovsrättsmeddelandet och licensen från Scratch, och
  5. du måste göra källkoden för härledda verk tillgänglig.

*(läs anteckningar)

Den distribuerade källkoden uppfyller redan dessa villkor: logotypen och spriten med katten har ersatts i den, och koden för att spara Scratch-projektet på webbplatsen har tagits bort.

Men eftersom Scratch (1.4) är skrivet i Squeak finns tillgång till dess källkod utan att uttryckligen tillhandahålla dem till användaren - de lagras tillsammans med resultatet av deras kompilering i bildfilen i Smalltalk-systemet.

Den 13 maj 2014 släpptes källkoden för Scratch 2.0 under GPLv2 -licensen [6] .

Ändringar och vidareutveckling

Baserat på Scratch 1.4-källkoden har ett antal språkändringar [7] skapats , såsom:

BYOB (Snap!)

Utvecklad vid University of Berkeley . Det huvudsakliga språktillägget som introducerades i BYOB var möjligheten att bygga sammansatta anpassade block - en analog till procedurerna för konventionella programmeringsspråk . Rekursion , stängningar och lambda-uttryck stöds . En debugger och möjligheten att kompilera till körbara filer, kapslade sprites, flerdimensionella listor, förbättrad rullning och kompilering av körbara filer läggs också till. Från och med version 3.1 har BYOB lagt till stöd för OOP  - BYOB sprites tillåter nu nedärvning baserat på prototyper . För att göra detta introducerade språket i synnerhet en mekanism för kloning av sprites.

Panther

Panther - utökar Scratch med stöd för drag-n-drop sprite-hantering, möjligheten att klona sprites (objekt) och CYOB-undersystemet (som, liksom BYOB, låter dig skapa dina egna kommandoblock, men kräver kunskaper i Squeak- språket för detta (en modern dialekt av Smalltalk , där skriven av Scratch och dess modifieringar).

Mesh-mekanism

Både BYOB och Panther inkluderar stöd för mesh -mekanismen [14] , som gör det möjligt för scratch-program att interagera över nätverket med hjälp av delade variabler och skicka sändningsmeddelanden.

Slash

Slash utökar funktionerna i BYOB 3.0 med nya Panther-funktioner: kloning och dra sprites (objekt).

StarLogo TNG

Under 2008 utvecklade Massachusetts Institute of Technology också utbildningsprogrammeringsspråket StarLogo TNG [15] , som utökar kapaciteten hos StarLogo- systemet med 3D-grafikfunktioner och ett repliknande visuellt blockprogrammeringsspråk. Till skillnad från den ursprungliga OpenStarLogo [16] och MIT Scratch, är StarLogo TNG för närvarande inte en programvara med öppen källkod.

Scratch 2.0

I februari 2011 släpptes den första onlinebetaversionen av Scratch 2.0 [17] , som är planerad att inkludera några av funktionerna i BYOB (som att skapa anpassade procedurer), vektorgrafik, spritekloning, möjligheten till grupparbete på projekt , etc. Betaversionen släpptes officiellt den 9 maj 2013.

Scratch 3.0

Scratch 3.0 är den tredje och nuvarande större versionen av Scratch. Detta är en fullständig omarbetning och omimplementering av Scratch skrivet i HTML5 och JavaScript . Den har ett nytt, modernt utseende och design. Den är kompatibel med många mobila enheter och kräver inte Flash. Släppt 2 januari 2019.

App Inventor

App Inventor  , ett experimentellt visuellt programmeringssystem för Android- plattformen , har blivit en annan programmeringsmiljö som använder sig av visuell logikstapling i mosaikstil .

En mer direkt analog till Scratch-språket på Android är Catroid-språket, som utvecklas vid Institute of Software Technology vid Graz University of Technology i Österrike [18] .

Se även

Anteckningar

  1. Skapa från grunden: Ny programvara från MIT Media Lab släpper lös barns kreativitet online . Hämtad 14 november 2010. Arkiverad från originalet 25 mars 2014.
  2. Livslång dagisgrupp . Hämtad 25 juli 2008. Arkiverad från originalet 8 februari 2011.
  3. http://s4a.cat . - Scratch-projekt för Arduino. Hämtad 11 april 2014. Arkiverad från originalet 13 april 2014.
  4. I versioner tidigare än 1.4 - nummer ( engelska  nummer )
  5. Scratch Source Code (inte tillgänglig länk) . Hämtad 25 juli 2008. Arkiverad från originalet 6 juli 2008. 
  6. Scratch 2.0 Offline öppen källkod! — Diskutera Scratch . Hämtad 26 augusti 2014. Arkiverad från originalet 12 oktober 2014.
  7. Skrapändringar . Hämtad 14 november 2010. Arkiverad från originalet 12 mars 2016.
  8. Bygg dina egna block (BYOB) Arkiverad 23 augusti 2010 på Wayback Machines hemsida
  9. Bygg dina egna block (BYOB) (Scratch Modification) Arkiverad 3 april 2016 på Wayback Machine i Scratch wiki
  10. Panther - baserat på Scratch Archived 19 april 2021 på Wayback Machines hemsida
  11. Panther (Scratch Modification) Arkiverad 30 mars 2016 på Wayback Machine i Scratch-wiki
  12. Slash projekterar . Hämtad 14 november 2010. Arkiverad från originalet 11 augusti 2019.
  13. Slash (Scratch Modification) Arkiverad 15 november 2010 på Wayback Machine i Scratch-wiki
  14. Nätverk . Hämtad 26 april 2011. Arkiverad från originalet 4 april 2016.
  15. StarLogo TNG . Hämtad 26 april 2011. Arkiverad från originalet 19 april 2015.
  16. OpenStarLogo (nedlänk) . Hämtad 26 april 2011. Arkiverad från originalet 17 maj 2011. 
  17. Scratch 1.0 . Hämtad 26 april 2011. Arkiverad från originalet 16 augusti 2016.
  18. Catroid webbplats . Hämtad 5 mars 2012. Arkiverad från originalet 14 februari 2022.

Litteratur

Länkar