Skriptimiskeel
Skripti- või skriptikeel on programmeerimiskeel, mis toetab skripte. Skriptid on tavaliselt lühikesed arvutiprogrammid, mis teevad samu toiminguid, mida inimene võiks teha ükshaaval. Sellega automatiseeritakse töö, et muuta see lihtsamaks ja usaldusväärsemaks. Skriptikeel on sageli lihtsam keel ja kergemini õpitav kui teised keeled, kuid suudab siiski teha palju asju.
Skriptid võivad töötada mõne teise programmi sees, näiteks veebibrauseris või Microsoft Excelis. Need võivad olla ka käsurea liidesest käivitatavad skriptid, mis teevad kutsungeid operatsioonisüsteemi (OS). Hoorikut peetakse interaktiivseks - kasutaja saab valida, mida sisestada, ja hoorik vastab käsule. Neid saab kasutada tööde juhtimiseks suurarvutites ja serverites.
Mõned inimesed ütlevad, et skriptikeel peab olema seotud konkreetse kasutusega. Teised kasutavad laiemat määratlust ja hõlmavad üldotstarbelisi programmeerimiskeeli, mis on tõlgitud, mitte kompileeritud. Üldotstarbeline tähendab, et seda saab kasutada mitmel viisil erinevate asjade jaoks. Mõnedel üldkasutatavatel keeltel (näiteks Java) on variante, mida saab skriptida (Javascript). Ei ole mingit kindlat reeglit selle kohta, mis on või ei ole skriptimiskeel.
Näited
Mõned levinud näited skriptimiskeeltest:
- Bash ja C shell, mis on Unixi või Unixi sarnaste operatsioonisüsteemide juhtkeeled.
- Skripte, mis töötavad teise rakenduse sees, nimetatakse laienduskeeleks. Veebibrauserid lubavad mitut liiki skripte, sealhulgas ECMAScript (JavaScript) või XUL. Näiteks Google'i avalehel kasutatakse JavaScripti. Microsoft Office'i sees kasutatakse Visual Basic for Applications'i. Lua on keel, mis on spetsiaalselt tehtud laienduskeelena ja mida saab kasutada paljude rakenduste sees.
- Skriptide laiendusi omavate mängude hulka kuuluvad virtuaalne maailm Second Life ja raudteesimulaatorid Trainz Railroad. Teistes mängudes, nagu Wesnoth, on mitmesugused tegelikud mängud, mida mängitakse, teiste kasutajate kirjutatud skriptid.
- Tekstitöötluskeeled sed ja AWK
- Üldotstarbelised: Perl, Tcl ja Python on kõrgetasemelised programmeerimiskeeled (lähemal inimkeelele kui masinkoodile), mida saab kasutada paljude erinevate asjade jaoks. Mõned neist keeltest on algselt tehtud mingi kindla kasutusotstarbe jaoks ja seejärel muudetud üldotstarbelisteks keelteks.
Omadused
Enamik skriptimiskeeli on loodud nii, et neid oleks lihtne õppida. Sageli on need kas lühikesed failid koos lähtekoodiga või sisestatakse üks käsk korraga käsurea liidesesse, millel on lugemis-analüüsi-trükkimise tsükkel (REPL, keelekuju). See tähendab tavaliselt lihtsat käskude kogumit. Seal ei pruugi olla funktsioone ega peamist, see lihtsalt jookseb algusest lõpuni. Kui midagi ei tööta, saab programmeerija teha kiireid muudatusi ja käivitada selle uuesti. Seetõttu on skriptikeel hea kiire prototüübi tegemiseks, et näha, kas idee töötab.
Näiteks enamik inimesi ei nimeta Java't skriptimiskeeleks, sest selle süntaks on pikk ja reeglid selle kohta, millised klassid millises failis eksisteerivad, ning kuna Java't ei saa interaktiivselt REPLis käivitada. Selleks on vaja lähtekoodiga faile ja need võivad sisaldada ainult definitsioone, mida peab kasutama vastuvõttev rakendus või rakenduse käivitaja. (Java ei ole sama mis JavaScript).
Kuid Python võimaldab valikuid - funktsioone saab panna faili, seda saab käivitada ilma funktsioonideta ja kasutada imperatiivset programmeerimisstiili või isegi kasutada seda interaktiivselt (sisestada ja käivitada üks rida korraga).
print ("Hello World")
See üks rida Pythoni koodi prindib "Hello World"; selleks ei ole vaja mingit main() funktsiooni ega midagi muud.
Skriptimiskeel on tavaliselt tõlgitud lähtekoodist või baaskoodist. Kuid midagi peab skripti siiski käivitama (tõlgendama), et arvuti sellest aru saaks. See on rakendus või midagi operatsioonisüsteemis. See on sageli kirjutatud kompileeritud keeles ja levitatakse masinkoodi kujul (käivitatava failina, mis ei ole inimesele mõistetav).
Skriptimiskeeled võivad olla mõeldud programmi kasutajatele - lõppkasutaja arendus. Teinekord võivad neid luua programmeerijad enda tarbeks. Skriptimiskeeled kasutavad sageli abstraktsiooni, mis on üks teabe varjamise vorm. See tähendab, et kasutajad ei pea teadma muutujatüüpide, andmesalvestuse ja mäluhalduse üksikasju.
Skripte teeb või muudab sageli isik, kes neid täidab, kuid mõnda neist jagatakse või müüakse teistele. Näiteks kui suured osad mängudest on kirjutatud skriptikeeles. Mõnikord saab skripti kompileerida, enne kui teised seda kasutavad. Kui see on kompileeritud, töötab see kiiremini ja ei vaja selle käivitamiseks teist rakendust. Ja see takistab lõppkasutajatel koodi muutmist.
Ajalugu
Varased suurarvutid (1950ndatel) ei olnud interaktiivsed, vaid kasutasid batch-failidesse salvestatud skripte. IBMi Job Control Language (JCL) on tavaline näide skriptimiskeelest, mida kasutati partiitöötluse juhtimiseks.
Esimesed interaktiivsed kestad valmistati 1960ndatel, et aidata esimeste ajajagamissüsteemide kaugjuhtimist. Need kasutasid shell-skripte, millega saab käivitada arvutiprogramme arvutiprogrammi sees, shell. Calvin Mooersile tema TRAC-keeles omistatakse üldiselt au, et ta leiutas käskude asendamise. See võimaldab käskudel muuta skripti (ennast ise muutev kood). Multics nimetab neid aktiivseteks funktsioonideks. Louis Pouzin kirjutas 1964. aasta paiku CTSSi jaoks varase käskiskriptide protsessori nimega RUNCOM. Stuart Madnick MITs kirjutas skriptikeele IBMi CP/CMSi jaoks 1966. aastal. Algselt nimetas ta seda protsessorit COMMAND, hiljem EXEC. Multics sisaldas CTSSi haru RUNCOM, mille nimi oli samuti RUNCOM. EXEC asendati lõpuks EXEC 2 ja REXXiga.
Sellised keeled nagu Tcl ja Lua olid algusest peale loodud üldotstarbeliste skriptimiskeeltena, mida saab kasutada mis tahes rakenduses. Teised keeled, nagu Visual Basic for Applications (VBA), võisid teha paljuski sama, kuid pidid töötama ainult teatud rakendustega. Üldkasutatava skriptikeele kasutamine selle asemel, et teha iga rakenduse jaoks uus keel, teeb tavaliselt lihtsamaks nii rakenduse kirjutajale kui ka skriptide kirjutamise kasutajale.
Skriptimiskeelte tüübid
Liimikeeled
Skriptimist kasutatakse mõnikord erinevate rakenduste ühendamiseks. Seda nimetatakse liimikoodiks ja just selleks otstarbeks loodud keel on liimikeel. Pipelines ja shell scripting on tavalised näited liimikeeltest. Kui aga skriptfaili on kirjutatud palju loogikat, siis on parem mõelda sellest kui lihtsalt teisest tarkvararakendusest, mitte kui "liimist".
Liimikeeled on eriti kasulikud kirjutamisel ja hooldamisel:
- kohandatud käsud käsurea jaoks;
- väiksemad programmid kui need, mida on parem rakendada kompileeritud keeles;
- "mähisprogrammid", mis teevad enne või pärast rakenduse käivitamist mõned automaatsed asjad, näiteks tabelarvutus, andmebaas, kompilaator jne;
- skriptid, mis võivad sageli muutuda;
Liimikeele näited:
- AppleScript
- awk
- JCL
- Lua
- m4
- Perl
- Unix Shell skriptid (ksh, csh, bash, sh ja teised)
- VBScript
- Töövoogude keel
- Windows PowerShell
- XSLT
Seadmetel, näiteks programmeeritavatel kalkulaatoritel, võib olla ka oma liimikeel. Näiteks Texas Instruments TI-92 saab tehase vaikimisi programmeerida käskiskriptide keelega. TI-NSpire kalkulaator mõistab Lua keelt. Teised mõistavad mingit Basic keelt või ehk Lispi või midagi muud.
Töökontrolli keeled ja kestad
See rühm on tulnud tööde juhtimise automatiseerimisest, mis on seotud süsteemiprogrammide käivitamise ja käitumise kontrollimisega, alustades IBMi JCL-ist. Paljud nende keelte interpreteerijad töötavad ka käsurea interpreteerijatena, näiteks Unixi shell või MS-DOSi COMMAND.COM. Teised, nagu AppleScript, pakuvad skriptide koostamiseks ingliskeelsete käskude kasutamist.
GUI skriptide koostamine
Graafiliste kasutajaliideste loomisel on vaja katsetamise viisi. Spetsiaalsed skriptimiskeeled on loodud selleks, et juhtida graafilisi aknaid, menüüsid, nuppe ja nii edasi, nagu seda teeks inimkasutaja. Paljudel juhtudel saab nende abil kopeerida täpselt seda, mida inimene teeb (hiire liigutamine, klaviatuuril klõpsamine või kirjutamine). Seda kopeeritavat ja meeldejäävat tegevust või tegevuste kogumit nimetatakse makroks.
Rakendusspetsiifilised keeled
Paljud suured rakendused sisaldavad just selle rakenduse jaoks loodud skriptikeelt. Rakendus võib olla mäng või äriprogramm. Seda tüüpi keel on tehtud ühe rakenduse jaoks. Nad näevad välja nagu üldotstarbelised keeled (nt QuakeC, mis on modelleeritud C keele järgi), neil on kohandatud omadused, mis neid eristavad.
Laiendamine/asendatavad keeled
See on nagu rakendusspetsiifilised skriptimiskeeled, sest see kontrollib rakendust, kuid keelt saab kasutada paljudes rakendustes.
JavaScript sai alguse veebibrauserite sees skriptimiskeelena, kuid nüüd on see üldotstarbeline sisseehitatud keel. Seda kasutatakse näiteks ka Adobe'i toodetes.
Mõned keeled lähevad aja jooksul ühelt tüübilt teisele üle, tavaliselt siis, kui nad lisavad võimekust, et teha rohkem asju.
Küsimused ja vastused
K: Mis on skriptikeel?
V: Skriptimis- või skriptikeel on programmeerimiskeel, mis toetab skripte.
K: Mis on skriptid?
V: Skriptid on tavaliselt lühikesed arvutiprogrammid, mis teevad samme, mida inimene võiks teha ükshaaval.
K: Miks on skriptid kasulikud?
V: Sellega automatiseeritakse tööd, et muuta see lihtsamaks ja usaldusväärsemaks.
K: Kas skriptikeelt on raske õppida?
V: Skriptikeel on sageli lihtsam keel ja seda on lihtsam õppida kui teisi keeli, kuid sellegipoolest saab sellega teha palju asju.
K: Kus saab skripte käivitada?
V: Skriptid võivad töötada mõne teise programmi sees, näiteks veebibrauseris või Microsoft Excelis.
K: Mis on skriptimiskeeles shell ja kuidas seda kasutatakse?
V: Need võivad olla ka shell, mis töötab käsurea liidesest ja teeb kõnesid operatsioonisüsteemi (OS). Hoorikut peetakse interaktiivseks - kasutaja saab valida, mida sisestada, ja koorik vastab käsule. Neid saab kasutada tööde juhtimiseks suurarvutites ja serverites.
K: Kas üldkasutatav keel võib olla skriptimiskeel?
V: Mõned inimesed ütlevad, et skriptimiskeel peab olema seotud konkreetse kasutusviisiga. Teised kasutavad laiemat määratlust ja hõlmavad üldotstarbelisi programmeerimiskeeli, mis on tõlgitud, mitte kompileeritud. Üldotstarbeline tähendab, et seda saab kasutada mitmel viisil erinevate asjade jaoks. Mõnedel üldkasutatavatel keeltel (näiteks Java) on variante, mida saab skriptida. Ei ole mingit kindlat reeglit selle kohta, mis on või ei ole skriptimiskeel.