Scratch (ohjelmointikieli)

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 31. heinäkuuta 2019 tarkistetusta versiosta . tarkastukset vaativat 80 muokkausta .
Naarmu
Semantiikka tapahtumalähtöinen
Kieliluokka graafinen , opettavainen
Toteutustyyppi tulkki
Esiintyi 2007
Tekijä Mitchell Resnick _ _  _
Kehittäjä MIT Media Lab
Tiedostotunniste _ .sb , .sb2 , .sb3
Vapauta 3.29.1 (27. helmikuuta 2022 ) ( 27.2.2022 )
Tyyppijärjestelmä dynaaminen
Tärkeimmät toteutukset Naarmu
Murteet Napsahtaa!
Vaikutettu Logo , Smalltalk , HyperCard, StarLogo , AgentSheets, Etoys, Tweak
vaikutti Napsahtaa! , AppInventor , Catrobat
Lisenssi muokattu BSD-lisenssi [d]
Verkkosivusto scratch.mit.edu
OS Windows , macOS , HTML
 Mediatiedostot Wikimedia Commonsissa

Scratch ( englanniksi  Scratch , IPA [ s k r æ ʧ ]) on lapsille ja nuorille luotu visuaalisten lohkojen tapahtumalähtöinen ohjelmointiympäristö . Nimi tulee sanasta scratching  , tekniikasta, jota käyttävät hip-hop-DJ:t, jotka pyörittävät vinyylilevyjä käsillään edestakaisin sekoittaakseen musiikkiteemoja [1] .

Se luotiin jatkoksi logokielen ja Lego -konstruktorin ideoille . Scratch 1.4 on kirjoitettu Squeak -kielellä , 2.0 ja 3.0 keskittyvät verkkotyöhön. Scratch 2.0 on kirjoitettu uudelleen Flashiin ja ActionScriptiin . Scratch 3.0 (nykyinen versio) on parannettu versio Scratch 2.0:sta, ja se on tehty HTML5 :llä WebGL -moottorin avulla, mikä mahdollistaa sen käytön mobiililaitteissa ja tableteissa . Scratchia kehittää pieni lasten ohjelmoijatiimi [2] Massachusetts Institute of Technologyssa . Nykyinen versio on Scratch 3.0, julkaistu tammikuussa 2019. Vuonna 2008 Scratch siirrettiin Arduino - mikrokontrollerimoduuliin . Projekti on nimeltään S4A [3] .

Scratch-ohjelmat koostuvat grafiikkalohkoista, joiden kuvatekstit riippuvat käyttöliittymälle valitusta kielestä. Yksi 50 käyttöliittymäkielestä voidaan valita, mukaan lukien venäjä . Käyttöliittymän liittämiseen uudella kielellä käytetään tavallisia gettext -tiedostoja .

Ohjelmointi

Scratch - ohjelman pääkomponentit ovat sprite - objektit . Sprite koostuu graafisesta esityksestä – joukosta kehyspukuja ( eng .  costume ) ja käsikirjoituksesta . Sprite-asujen muokkaamista varten scratchiin on sisäänrakennettu grafiikkaeditori ( englanniksi  Paint Editor ) . Scratch-ohjelman toiminta tapahtuu 480 × 360 (ehdollisen) pikselin kokoisella lavalla ( englanniksi  näyttämöllä ) , jonka koordinaattikeskus on kohtauksen keskellä.

Scratch-skriptien ohjelmointiin käytetään vedä ja pudota -menetelmää: lohkopaletin lohkot vedetään komentosarjaalueelle.

Toiminnallisen tarkoituksen mukaan lohkot on jaettu 10 ryhmään, jonka väri osoittaa lohkon kuulumisen tiettyyn ryhmään.

Ryhmä Englantilainen nimi Väri Merkintä
Liikenne Liike Sininen ohjaa spriten liikettä (ei koske taustalla)
Ulkomuoto näyttää violetti hallita spriten ulkonäköä
Ääni Äänet vaaleanpunainen hallita spriten ääntä
Kehitys Tapahtumat keltainen tarkistaa tapahtumia, lähettää signaaleja kaikille spriteille
Ohjaus ohjata keltainen ohjausrakenteet, tapahtumakäsittelijän otsikot
Anturit aistiminen sininen kyselyn syöttölaitteet, ajastin ja osallistujan nimi
Operaattorit [4] Operaattorit vaaleanvihreä aritmeettis-loogiset operaatiot
Muuttujat Muuttujat punainen ja oranssi osio muuttujien ja luetteloiden käsittelyä varten
Muut lohkot Minun lohkoni vaalea pinkki muuntaa lohkojen yhdistelmän yhdeksi lohkoksi, mikä yksinkertaistaa koodia,

tai yksinkertaistaa henkilökohtaisen lohkosi luomista

Lisätä

Laajennukset

Laajennukset vihreä laajentaa Scratchin mahdollisuuksia. Laajennuksia on erilaisia, kuten musiikki, kynä, videontunnistus, teksti puheeksi , kääntäjä , Makey Makey , micro:bit , LEGO MINDSTORMS EV3 ja LEGO Education WeDo 2.0

Monissa lohkoissa on muokattava valkoinen kenttä scratch-ohjelmoijan syöttämille parametreille.

Lohkoja on kolmenlaisia : pinolohkot , otsikkolohkot ja linkkilohkot .

Pinolohkoissa (suurin osa lohkoista) ( eng.  Stack Blocks ) on yläosassa lovi ja alareunassa reunus, joiden avulla ne yhdistetään lohkojen ryhmään nimeltä pino . Pinoja voidaan kopioida ja siirtää yhtenä kappaleena. Erityinen pinolohkot ovat ohjausrakenteita, kuten silmukoita  – ne ovat C-muotoisia ja voivat kattaa sisäkkäisen pinon raaputuslohkoja.

Otsikkolohkoissa ( kutsutaan myös hatuiksi) on kupera yläreuna ja alareunaan liitettävä reunus - ne muodostavat naarmupinojen otsikot. Otsikkolohkot sisältävät " kun ..." - lohkot " Control "-ryhmästä, jotka mahdollistavat viestien käsittelijöiden järjestämisen: ulkoiset - näppäimistöstä ja hiirestä ja sisäiset - välittyvät spritien välillä ja mahdollistavat olio-ohjelmoinnin smalltalk - tyylillä.   

Linkkilohkot ( eng.  Reporters ) on tarkoitettu täyttämään muiden lohkojen sisäisiä kenttiä.

Scratch-kieli (kuten Logo ) toimii numeroiden, tekstijonojen, boolean-arvojen ja luetteloiden kanssa, jotka toimivat dynaamisten taulukoiden roolissa.

Vaikka scratch-ohjelmien arkkitehtuuri joukon Scratch-sprittejä, jotka vaihtavat tapahtumia keskenään, muistuttaa oliopohjaista , Scratch ei ole oliokieli: sillä (ei muodossa) on periytymismekanismeja (uusimmissa versioissa ). laajennetusta BYOB-raaputusmurteesta, prototyypin periytyminen ).

Lähdekoodi

Version 0.18.1 julkaisun jälkeen Scratch-lähdekoodi avattiin Scratch Source Code License -lisenssillä - joka on yksinkertainen copyleft - lisenssi, joka sisältää lisärajoituksia alkuperäisten tavaramerkkien käyttämättä jättämiselle (lievemmässä muodossa tällaiset rajoitukset sisältyvät, esimerkiksi PHP-lisenssissä ).

Koodi voidaan ladata viralliselta sivustolta [5] . Sen käyttö- ja jakeluehdot ovat seuraavat:

  1. Et saa käyttää sanaa "Scratch" viittaamaan johdannaisiin (poikkeuksena ilmaisu "perustuu MIT Media Laboratoryn luomaan Scratch-koodiin"),
  2. Et saa käyttää Scratch-logoa tai virallista tekijänoikeudella suojattua Scratchin kissaa johdannaisteoksissa,
  3. Et voi ottaa käyttöön mahdollisuutta ladata projekteja millekään muulle verkkosivustolle kuin MIT Scratchille (tällä hetkellä http://scratch.mit.edu ),
  4. kopioissa tai johdannaisteoksissa on säilytettävä Scratchin tekijänoikeus- ja lisenssiilmoitukset, ja
  5. johdannaisteosten lähdekoodin on oltava saatavilla.
Alkuperäinen teksti  (englanniksi)[ näytäpiilottaa]
  1. et voi käyttää sanaa "Scratch" viittaamaan johdannaisiin teoksiin (paitsi lauseessa "Perustuu Scratchiin MIT Media Laboratorysta"),
  2. et voi käyttää Scratch-logoa tai virallista (tekijänoikeudella suojattua) Scratch catia johdannaisteoksissa,
  3. et voi ottaa käyttöön mahdollisuutta ladata projekteja millekään MIT Scratch -sivustolle (tällä hetkellä http://scratch.mit.edu ),
  4. kopioissa tai johdannaisteoksissa on säilytettävä Scratchin tekijänoikeusilmoitus ja -lisenssi, ja
  5. sinun on asetettava saataville johdannaisteosten lähdekoodi.

*(lue muistiinpanot)

Jaettu lähdekoodi täyttää jo nämä ehdot: logo ja sprite kissalla on korvattu siinä ja koodi Scratch-projektin sivustolle tallentamisesta on poistettu.

Koska Scratch (1.4) on kuitenkin kirjoitettu Squeak -kielellä , pääsy sen lähdekoodiin on olemassa ilman, että sitä nimenomaisesti tarjotaan käyttäjälle - ne tallennetaan yhdessä käännöstulosten kanssa Smalltalk-järjestelmän kuvatiedostoon .

Scratch 2.0:n lähdekoodi julkaistiin 13. toukokuuta 2014 GPLv2 -lisenssillä [6] .

Muutokset ja jatkokehitys

Scratch 1.4 -lähdekoodin perusteella on luotu useita kielimuutoksia [7] , kuten:

BYOB (Snap!)

Kehitetty Berkeleyn yliopistossa . Pääasiallinen BYOB:n kielilaajennus oli kyky rakentaa mukautettuja komposiittilohkoja – perinteisten ohjelmointikielten menetelmien analogia . Rekursio- , sulkemis- ja lambda-lausekkeet ovat tuettuja . Lisätty on myös debuggeri ja kyky kääntää suoritettaviksi, sisäkkäisiksi spriteiksi, moniulotteisiksi luetteloiksi, parannettu vieritys ja suoritettavien tiedostojen kääntäminen. Versiosta 3.1 alkaen BYOB lisäsi tuen OOP  -BYOB-spriteille, jotka sallivat nyt prototyyppiin perustuvan perimisen . Tätä varten kieli erityisesti esitteli mekanismin spritien kloonaamiseksi.

Panther

Panther - laajentaa Scratchia tukemalla drag-n-drop sprite-hallintaa, mahdollisuutta kloonata spritejä (objekteja) ja CYOB-alijärjestelmää (joka, kuten BYOB, mahdollistaa omien komentolohkojen luomisen, mutta vaatii Squeak -kielen tuntemusta tätä varten (moderni Smalltalkin murre , jossa Scratch on kirjoittanut ja sen muunnelmat).

Verkkomekanismi

Sekä BYOB että Panther sisältävät tuen mesh [14] -mekanismille , jonka avulla scratch-ohjelmat voivat olla vuorovaikutuksessa verkon yli käyttämällä jaettuja muuttujia ja lähettämällä lähetysviestejä.

kauttaviiva

Slash laajentaa BYOB 3.0:n ominaisuuksia uusilla Panther-ominaisuuksilla: kloonaamalla ja vetämällä spritejä (objekteja).

StarLogo TNG

Vuonna 2008 Massachusetts Institute of Technology kehitti myös opetusohjelmointikielen StarLogo TNG [15] , joka laajentaa StarLogo- järjestelmän ominaisuuksia 3D-grafiikkaominaisuuksilla ja naarmumaisella visuaalisen lohkon ohjelmointikielellä. Toisin kuin alkuperäinen OpenStarLogo [16] ja MIT Scratch, StarLogo TNG ei ole tällä hetkellä avoimen lähdekoodin ohjelmistotuote.

Scratch 2.0

Helmikuussa 2011 julkaistiin Scratch 2.0 :n ensimmäinen online -betaversio [17] , jonka on suunniteltu sisältävän joitain BYOB:n ominaisuuksia (kuten mukautettujen toimintojen luominen), vektorigrafiikkaa, sprite-kloonausta, mahdollisuuden ryhmätyöskentelyyn projekteissa. jne. Beta-versio julkaistiin virallisesti 9. toukokuuta 2013.

Scratch 3.0

Scratch 3.0 on Scratchin kolmas ja nykyinen pääversio. Tämä on HTML5 :llä ja JavaScriptillä kirjoitetun Scratchin täydellinen uudistus ja uudelleentoteutus . Siinä on uusi, moderni ilme ja muotoilu. Se on yhteensopiva monien mobiililaitteiden kanssa eikä vaadi Flashia. Julkaistu 2.1.2019.

App Inventor

App Inventor  , kokeellinen visuaalinen ohjelmointijärjestelmä Android- alustalle , on tullut toinen ohjelmointiympäristö, joka käyttää mosaiikkityylistä visuaalisen logiikan pinoamista .

Androidin Scratch-kielen suorempi analogi on Catroid-kieli, jota kehitetään Grazin teknillisen yliopiston ohjelmistotekniikan instituutissa Itävallassa [18] .

Katso myös

Muistiinpanot

  1. Luominen tyhjästä: MIT Media Labin uusi ohjelmisto vapauttaa lasten luovuuden verkossa . Haettu 14. marraskuuta 2010. Arkistoitu alkuperäisestä 25. maaliskuuta 2014.
  2. Elinikäinen päiväkotiryhmä . Haettu 25. heinäkuuta 2008. Arkistoitu alkuperäisestä 8. helmikuuta 2011.
  3. http://s4a.cat . - Scratch-projekti Arduinolle. Haettu 11. huhtikuuta 2014. Arkistoitu alkuperäisestä 13. huhtikuuta 2014.
  4. Aiemmissa versioissa kuin 1.4 - numerot ( englanninkieliset  numerot )
  5. Scratch Source Code (linkki ei saatavilla) . Haettu 25. heinäkuuta 2008. Arkistoitu alkuperäisestä 6. heinäkuuta 2008. 
  6. Scratch 2.0 Offline Open Source Code! – Keskustele Scratchista . Haettu 26. elokuuta 2014. Arkistoitu alkuperäisestä 12. lokakuuta 2014.
  7. Scratch Modifikaatiot . Haettu 14. marraskuuta 2010. Arkistoitu alkuperäisestä 12. maaliskuuta 2016.
  8. Build Your Own Blocks (BYOB) Arkistoitu 23. elokuuta 2010 Wayback Machinen kotisivulle
  9. Build Your Own Blocks (BYOB) (Scratch Modification) Arkistoitu 3. huhtikuuta 2016 Wayback Machinessa Scratch wikissä
  10. Panther - perustuu Scratchiin , arkistoitu 19. huhtikuuta 2021 Wayback Machinen kotisivulle
  11. Panther (Scratch Modification) Arkistoitu 30. maaliskuuta 2016 Wayback Machinessa Scratch wikissä
  12. Slash Project . Haettu 14. marraskuuta 2010. Arkistoitu alkuperäisestä 11. elokuuta 2019.
  13. Slash (Scratch Modification) Arkistoitu 15. marraskuuta 2010 Wayback Machinessa Scratch wikissä
  14. Verkko . Haettu 26. huhtikuuta 2011. Arkistoitu alkuperäisestä 4. huhtikuuta 2016.
  15. StarLogo TNG . Haettu 26. huhtikuuta 2011. Arkistoitu alkuperäisestä 19. huhtikuuta 2015.
  16. OpenStarLogo (downlink) . Haettu 26. huhtikuuta 2011. Arkistoitu alkuperäisestä 17. toukokuuta 2011. 
  17. Scratch 1.0 . Haettu 26. huhtikuuta 2011. Arkistoitu alkuperäisestä 16. elokuuta 2016.
  18. Catroid-verkkosivusto . Haettu 5. maaliskuuta 2012. Arkistoitu alkuperäisestä 14. helmikuuta 2022.

Kirjallisuus

Linkit