Skriptų kalba
Skriptų arba scenarijų kalba - tai programavimo kalba, kuri palaiko skriptus. Skriptai paprastai yra trumpos kompiuterinės programos, atliekančios veiksmus, kuriuos žmogus galėtų atlikti po vieną. Taip automatizuojamas darbas, kad jis būtų paprastesnis ir patikimesnis. Skriptų kalba dažnai būna paprastesnė ir lengviau išmokstama nei kitos kalbos, tačiau vis tiek gali atlikti daugybę dalykų.
Skriptai gali būti paleisti kitoje programoje, pavyzdžiui, žiniatinklio naršyklėje arba "Microsoft Excel". Jie taip pat gali būti apvalkalas, kuris veikia per komandinės eilutės sąsają ir skambina operacinei sistemai (OS). Korpusas laikomas interaktyviuoju - naudotojas gali pasirinkti, ką įvesti, o korpusas atsako į komandą. Jos gali būti naudojamos darbams valdyti pagrindiniuose kompiuteriuose ir serveriuose.
Kai kurie žmonės sako, kad skriptų kalba turi būti susieta su konkrečia paskirtimi. Kiti taiko platesnę apibrėžtį ir į ją įtraukia bendrosios paskirties programavimo kalbas, kurios yra interpretuojamos, o ne kompiliuojamos. Bendroji paskirtis reiškia, kad ją galima naudoti įvairiais būdais įvairiems dalykams. Kai kurios bendrosios paskirties kalbos (pvz., "Java") turi variantų, kurie gali būti skriptiniai (Javascript). Nėra konkrečios taisyklės, kas yra ar nėra scenarijų kalba.
Pavyzdžiai
Keletas įprastų scenarijų kalbų pavyzdžių:
- "Bash" ir "C shell", kaip "Unix" ar į ją panašių operacinių sistemų valdymo kalbos.
- Skriptai, kurie paleidžiami kitų programų viduje, vadinami išplėtimo kalba. Žiniatinklio naršyklėse galima naudoti kelių rūšių skriptus, įskaitant ECMAScript (JavaScript) arba XUL. Pavyzdžiui, "Google" pagrindiniame puslapyje naudojamas "JavaScript". "Microsoft Office" viduje naudojama "Visual Basic for Applications". Lua yra kalba, specialiai sukurta kaip plėtinių kalba ir gali būti naudojama daugelyje programų.
- Tarp žaidimų, kuriuose naudojami scenarijų plėtiniai, yra "Second Life" virtualusis pasaulis ir "Trainz Railroad" simuliatoriai. Kituose žaidimuose, pavyzdžiui, Wesnoth, įvairūs tikrieji žaidžiami žaidimai yra kitų naudotojų parašyti scenarijai.
- Teksto apdorojimo kalbos sed ir AWK
- Bendroji paskirtis: "Perl", "Tcl" ir "Python" yra aukšto lygio programavimo kalbos (artimesnės žmonių kalbai, o ne mašininiam kodui), kurias galima naudoti įvairiems tikslams. Kai kurios iš šių kalbų iš pradžių buvo sukurtos tam tikram tikslui, o paskui pakeistos į bendrosios paskirties kalbas.
Charakteristikos
Dauguma skriptų kalbų sukurtos taip, kad jų būtų lengva išmokti. Dažnai jos gali būti trumpi failai su išeities kodu arba įvedamos po vieną komandą komandinės eilutės sąsajoje, kurioje yra skaitymo, vertinimo ir spausdinimo ciklas (REPL, kalbos apvalkalas). Paprastai tai reiškia paprastą komandų rinkinį. Gali nebūti funkcijų arba pagrindinio (main), tiesiog paleidžiama nuo pradžios iki pabaigos. Jei kas nors neveikia, programuotojas gali greitai atlikti pakeitimus ir paleisti dar kartą. Dėl to skriptų kalba tinka greitam prototipo sukūrimui, norint patikrinti, ar idėja veikia.
Pavyzdžiui, dauguma žmonių "Java" nevadina skriptų kalba dėl ilgos sintaksės ir taisyklių, pagal kurias nustatoma, kurios klasės yra kuriuose failuose, ir dėl to, kad "Java" negalima interaktyviai vykdyti REPL. Jai reikia failų su išeities kodu, o juose gali būti tik apibrėžtys, kurias turi naudoti pagrindinė programa arba programos paleidimo programa. (Java nėra tas pats, kas JavaScript).
Tačiau "Python" leidžia rinktis - funkcijas galima įrašyti į failą, jį galima paleisti be funkcijų ir naudoti imperatyvųjį programavimo stilių arba net naudoti interaktyviai (rašyti ir paleisti po vieną eilutę).
spausdinti ("Hello World")
Ši viena "Python" kodo eilutė atspausdina "Hello World"; nereikia jokios funkcijos main() ar ko nors kito.
Skriptų kalba paprastai interpretuojama iš išeities kodo arba baitkodo. Tačiau kažkas turi paleisti scenarijų (interpretuoti), kad kompiuteris jį suprastų. Tai yra programa arba kažkas operacinėje sistemoje. Tai dažnai parašyta kompiliuota kalba ir platinama mašininio kodo pavidalu (kaip vykdomasis failas, kuris žmogui neturi prasmės).
Skriptavimo kalbos gali būti skirtos naudoti žmonėms, kurie naudoja programą - galutinio vartotojo kūrimas. Kitais atvejais jas gali kurti programuotojai savo reikmėms. Skriptų kalbose dažnai naudojama abstrakcija - informacijos slėpimo forma. Tai reiškia, kad naudotojams nereikia žinoti kintamųjų tipų, duomenų saugojimo ir atminties valdymo detalių.
Skriptus dažnai kuria arba keičia juos vykdantis asmuo, tačiau kai kuriais iš jų dalijamasi arba jie parduodami kitiems. Pavyzdžiui, kai didelė žaidimų dalis parašyta skriptų kalba. Kartais skriptą galima sukompiliuoti prieš jį naudojant kitiems. Sukompiliavus jis veikia greičiau ir jam paleisti nereikia kitos programos. O tai neleidžia galutiniams naudotojams keisti kodo.
Istorija
Ankstyvieji pagrindiniai kompiuteriai (1950-aisiais) nebuvo interaktyvūs, o naudojo paketiniuose failuose saugomus skriptus. IBM darbo valdymo kalba (Job Control Language, JCL) yra įprastas scenarijų kalbos, naudojamos paketiniam apdorojimui valdyti, pavyzdys.
Pirmieji interaktyvūs apvalkalai buvo sukurti 1960-aisiais, kad būtų lengviau nuotoliniu būdu valdyti pirmąsias laiko dalijimosi sistemas. Juose buvo naudojami apvalkalo skriptai, kuriais galima paleisti kompiuterio programas kompiuterio programoje - apvalkale. Kalvinas Mooersas (Calvin Mooers) savo TRAC kalboje paprastai priskiriamas komandų pakeitimo išradimo nuopelnams. Tai leidžia komandoms keisti skriptą (save modifikuojantis kodas). Multics šias komandas vadina aktyviosiomis funkcijomis. Apie 1964 m. Louisas Pouzinas parašė ankstyvąjį komandų scenarijų procesorių RUNCOM, skirtą CTSS. Stuartas Madnickas iš MIT 1966 m. parašė scenarijų kalbą IBM CP/CMS. Iš pradžių jis šį procesorių pavadino COMMAND, vėliau - EXEC. Į "Multics" buvo įtraukta CTSS atšaka RUNCOM, taip pat pavadinta RUNCOM. EXEC ilgainiui pakeitė EXEC 2 ir REXX.
Tokios kalbos kaip Tcl ir Lua nuo pat pradžių buvo kuriamos kaip bendrosios paskirties scenarijų kalbos, kurias galima naudoti bet kurioje programoje. Kitos kalbos, pavyzdžiui, "Visual Basic for Applications" (VBA), galėjo atlikti daug panašių veiksmų, tačiau jos turėjo veikti tik su tam tikromis programomis. Naudojant bendros paskirties scenarijų kalbą, o ne kuriant naują kalbą kiekvienai programai, paprastai būna paprasčiau ir programėlę kuriančiam asmeniui, ir scenarijus rašančiam naudotojui.
Skriptų kalbų tipai
Klijų kalbos
Skriptai kartais naudojami skirtingoms programoms sujungti. Tai vadinama "klijuojamuoju kodu", o specialiai šiam tikslui sukurta kalba yra "klijuojamoji" kalba. Vamzdynai ir apvalkalo scenarijai yra įprasti klijų kalbų pavyzdžiai. Tačiau jei scenarijaus faile įrašyta daug logikos, geriau jį laikyti tiesiog kita programine įranga, o ne "klijais".
Klijų kalbos ypač naudingos rašant ir prižiūrint:
- pasirinktines komandų apvalkalo komandas;
- mažesnės programos nei tos, kurios geriau įgyvendinamos sukompiliuota kalba;
- "apvalkalo" programos, kurios atlieka tam tikrus automatizuotus veiksmus prieš arba po programos, pvz., skaičiuoklės, duomenų bazės, kompiliatoriaus ir kt., paleidimo;
- scenarijus, kurie gali dažnai keistis;
Klijų kalbos pavyzdžiai:
- "AppleScript"
- awk
- JCL
- Lua
- m4
- Perl
- "Unix Shell" skriptai (ksh, csh, bash, sh ir kiti)
- VBScript
- Darbo eigos kalba
- "Windows PowerShell
- XSLT
Tokie prietaisai kaip programuojami skaičiuotuvai taip pat gali turėti savo klijų kalbas. Pavyzdžiui, "Texas Instruments" TI-92 pagal gamyklinius nustatymus gali būti programuojamas komandų scenarijaus kalba. Skaičiuotuvas TI-NSpire supranta Lua kalbą. Kiti supranta kokią nors Basic kalbą, o gal Lisp ar dar kokią nors kitą.
Darbo valdymo kalbos ir apvalkalai
Ši grupė atsirado automatizuojant užduočių valdymą, susijusį su sistemos programų paleidimu ir elgesio kontrole, pradedant IBM JCL. Daugelis šių kalbų interpretatorių taip pat veikia kaip komandinės eilutės interpretatoriai, pavyzdžiui, "Unix shell" arba MS-DOS COMMAND.COM. Kitos, pavyzdžiui, "AppleScript", siūlo naudoti į anglų kalbą panašias komandas skriptams kurti.
GUI scenarijų kūrimas
Kuriant grafines naudotojo sąsajas reikia rasti būdą joms išbandyti. Buvo sukurtos specializuotos scenarijų kalbos, kuriomis galima valdyti grafinius langus, meniu, mygtukus ir t. t. taip, kaip tai darytų žmogus. Daug kartų jomis galima tiksliai nukopijuoti tai, ką daro žmogus (judina pelę, spragteli arba rašo klaviatūra). Šis nukopijuotas ir įsimintas veiksmas arba veiksmų rinkinys vadinamas makru.
Konkrečioms taikomosioms programoms skirtos kalbos
Daugelyje didelių programų yra tik šiai programai sukurta scenarijų kalba. Tai gali būti žaidimas arba verslo programa. Tokio tipo kalba sukurta vienai programai. Jos atrodo kaip bendrosios paskirties kalbos (pvz., QuakeC, sukurtos pagal C modelį), jos turi specialių savybių, kurios jas išskiria.
Išplėtimo ir (arba) įterpiamosios kalbos
Tai panaši į konkrečiai programai skirtas scenarijų kalbas, nes jomis valdoma programa, tačiau šią kalbą galima naudoti daugelyje programų.
"JavaScript" buvo pradėta naudoti kaip kalba, skirta rašyti scenarijus interneto naršyklėse, tačiau dabar ji yra universali įterpiamoji kalba. Ji taip pat naudojama, pavyzdžiui, "Adobe" produktuose.
Kai kurios kalbos laikui bėgant pereina nuo vieno tipo prie kito, paprastai dėl to, kad atsiranda daugiau funkcijų.
Klausimai ir atsakymai
K: Kas yra scenarijų kalba?
A: Skriptų arba scenarijų kalba yra programavimo kalba, kuri palaiko skriptus.
K: Kas yra skriptai?
A: Skriptai paprastai yra trumpos kompiuterinės programos, kurios atlieka veiksmus, kuriuos žmogus galėtų atlikti po vieną.
K: Kuo naudingi skriptai?
A: Taip automatizuojamas darbas, kad jis būtų lengvesnis ir patikimesnis.
K: Ar sunku išmokti skriptų kalbą?
A: Skriptų kalba dažnai yra paprastesnė ir lengviau išmokstama nei kitos kalbos, tačiau vis tiek gali atlikti daugybę dalykų.
K: Kur galima paleisti skriptus?
A.: Skriptai gali būti paleisti kitoje programoje, pavyzdžiui, žiniatinklio naršyklėje arba "Microsoft Excel".
K: Kas yra skriptų kalbų apvalkalas ir kaip jis naudojamas?
A: Jie taip pat gali būti apvalkalas, kuris paleidžiamas iš komandinės eilutės sąsajos ir atlieka skambučius į operacinę sistemą (OS). Korpusas laikomas interaktyviuoju - naudotojas gali pasirinkti, ką įvesti, o korpusas atsako į komandą. Jos gali būti naudojamos darbams valdyti pagrindiniuose kompiuteriuose ir serveriuose.
Klausimas: Ar bendrosios paskirties kalba gali būti skriptų kalba?
Atsakymas: Kai kurie žmonės sako, kad skriptų kalba turi būti susieta su konkrečia paskirtimi. Kiti naudoja platesnę apibrėžtį ir priskiria bendrosios paskirties programavimo kalbas, kurios yra interpretuojamos, o ne kompiliuojamos. Bendroji paskirtis reiškia, kad ją galima naudoti įvairiais būdais įvairiems dalykams. Kai kurios bendrosios paskirties kalbos (pvz., Java) turi variantų, kuriuos galima rašyti scenarijais. Nėra konkrečios taisyklės, kas yra, o kas nėra scenarijų kalba.