Skriptu valoda
Skriptu valoda ir programmēšanas valoda, kas atbalsta skriptus. Skripti parasti ir īsas datorprogrammas, kas veic darbības, kuras cilvēks varētu veikt pa vienai. Tādējādi darbs tiek automatizēts, lai padarītu to vieglāku un uzticamāku. Skriptu valoda bieži vien ir vienkāršāka valoda, un to ir vieglāk apgūt nekā citas valodas, tomēr ar to var paveikt daudzas lietas.
Skripti var darboties citā programmā, piemēram, tīmekļa pārlūkprogrammā vai programmā Microsoft Excel. Tie var būt arī apvalks, kas darbojas no komandrindas saskarnes un veic izsaukumus uz operētājsistēmu (OS). Apvalks tiek uzskatīts par interaktīvu - lietotājs var izvēlēties, ko ievadīt, un apvalks reaģē uz komandu. Tās var izmantot, lai kontrolētu darba uzdevumus galvenajos blokos un serveros.
Daži saka, ka skriptu valodai jābūt piesaistītai konkrētai lietošanai. Citi izmanto plašāku definīciju un iekļauj vispārējas nozīmes programmēšanas valodas, kuras tiek interpretētas, nevis kompilētas. Vispārēja lietojuma valoda nozīmē, ka to var izmantot dažādos veidos dažādām lietām. Dažām vispārējas nozīmes valodām (piemēram, Java) ir variācijas, kuras var rakstīt ar skriptu palīdzību (Javascript). Nav konkrētu noteikumu par to, kas ir vai nav skriptu valoda.
Piemēri
Daži izplatīti skriptu valodu piemēri:
- Bash un C apvalks kā Unix vai Unix līdzīgu operētājsistēmu vadības valodas.
- Skriptus, kas darbojas citās lietojumprogrammās, sauc par paplašinājuma valodu. Tīmekļa pārlūkprogrammās ir atļauti vairāki skriptu veidi, tostarp ECMAScript (JavaScript) vai XUL. Piemēram, Google sākumlapā tiek izmantots JavaScript. Visual Basic for Applications izmanto Microsoft Office lietojumprogrammā. Lua ir valoda, kas speciāli izveidota kā paplašinājuma valoda, un to var izmantot daudzās lietojumprogrammās.
- Starp spēlēm, kurās ir skriptu paplašinājumi, ir Second Life virtuālā pasaule un Trainz dzelzceļa simulatori. Citās spēlēs, piemēram, Wesnoth, dažādas faktiski spēlētas spēles ir citu lietotāju rakstīti skripti.
- Teksta apstrādes valodas sed un AWK
- Vispārēja lietojuma: Perl, Tcl un Python ir augsta līmeņa programmēšanas valodas (tuvākas cilvēku valodai, nevis mašīnkodam), kuras var izmantot daudzām dažādām vajadzībām. Dažas no šīm valodām vispirms tika radītas konkrētam lietojumam, bet pēc tam tās pārveidoja par vispārējas nozīmes valodām.
Raksturojums
Lielākā daļa skriptu valodu ir veidotas tā, lai tās būtu viegli apgūstamas. Tās bieži vien var būt vai nu īsi faili ar pirmkodu, vai ievadīt pa vienai komandai komandrindas saskarnē, kurā ir lasīšanas-izvērtēšanas-izdrukas cilpa (REPL, valodas apvalks). Tas parasti nozīmē vienkāršu komandu kopumu. Var nebūt funkciju vai galvenās komandas, tā vienkārši darbojas no sākuma līdz beigām. Ja kaut kas nedarbojas, programmētājs var ātri veikt izmaiņas un palaist to vēlreiz. Tāpēc skriptu valoda ir piemērota ātrai prototipa izveidei, lai pārbaudītu, vai ideja darbojas.
Piemēram, vairums cilvēku nesauc Java par skriptu valodu, jo tās sintakse un noteikumi par to, kuras klases kurā failā atrodas, ir gari, kā arī tāpēc, ka Java nevar interaktīvi izpildīt REPL. Tai ir nepieciešami faili ar pirmkodu, un tajos var būt tikai definīcijas, kas jāizmanto galvenajai lietojumprogrammai vai lietojumprogrammas palaišanas programmai. (Java nav tas pats, kas JavaScript).
Taču Python ļauj izvēlēties - funkcijas var ievietot failā, to var palaist bez funkcijām un izmantot imperatīvo programmēšanas stilu vai pat lietot interaktīvi (ievadīt un palaist pa vienai rindai).
drukāt ("Hello World")
Šī viena Python koda rindiņa izdrukā "Hello World"; nav nepieciešama funkcija main() vai kas cits.
Skriptu valoda parasti tiek interpretēta no pirmkoda vai baitkoda. Tomēr skriptu ir kaut kas jāpalaiž (jāinterpretē), lai dators to saprastu. Tā ir lietojumprogramma vai kaut kas operētājsistēmā. Tā bieži vien ir rakstīta kompilētā valodā un izplatīta mašīnkoda formā (kā izpildāms fails, kas cilvēkam nav saprotams).
Skriptu valodas var būt paredzētas, lai tās varētu izmantot cilvēki, kas izmanto programmu - galalietotāja izstrāde. Citos gadījumos tās var veidot programmētāji savām vajadzībām. Skriptu valodās bieži tiek izmantota abstrakcija, kas ir informācijas slēpšanas veids. Tas nozīmē, ka lietotājiem nav jāzina sīkāka informācija par mainīgo tipiem, datu glabāšanu un atmiņas pārvaldību.
Skriptus bieži vien veido vai maina persona, kas tos izpilda, bet daži tiek koplietoti vai pārdoti citiem. Piemēram, ja liela daļa spēļu ir rakstītas skriptu valodā. Dažreiz skriptu var kompilēt, pirms to izmanto citi. Kad tas ir kompilēts, tas darbosies ātrāk, un tā izpildei nav nepieciešama cita lietojumprogramma. Un tas neļauj galalietotājiem mainīt kodu.
Vēsture
Agrīnie mainstreima datori (pagājušā gadsimta 50. gados) nebija interaktīvi, bet izmantoja sērijveida datnēs saglabātus skriptus. IBM Job Control Language (JCL) ir izplatīts skriptu valodas piemērs, ko izmantoja sērijveida apstrādes kontrolei.
Pirmie interaktīvie apvalki tika izveidoti pagājušā gadsimta 60. gados, lai atvieglotu pirmo laika koplietošanas sistēmu tālvadību. Tajos tika izmantoti čaulas skripti, ar kuriem var palaist datorprogrammas datorprogrammā - čaulā. Par komandas aizvietošanas izgudrošanu parasti tiek uzskatīts Kalvins Mūerss savā TRAC valodā. Tas ļauj komandām mainīt skriptu (pašmodificējošs kods). Multics tās sauc par aktīvajām funkcijām. Louis Pouzin ap 1964. gadu uzrakstīja agrīnu komandu skriptu procesoru ar nosaukumu RUNCOM CTSS. Stjuarts Madniks no MIT 1966. gadā uzrakstīja skriptu valodu IBM CP/CMS. Sākotnēji viņš šo procesoru nosauca par COMMAND, vēlāk par EXEC. Multics ietvēra CTSS atvasinājumu RUNCOM, ko arī sauca par RUNCOM. EXEC ar laiku aizstāja EXEC 2 un REXX.
Tādas valodas kā Tcl un Lua jau no paša sākuma tika veidotas kā vispārējas nozīmes skriptu valodas, ko var izmantot jebkurā lietojumprogrammā. Citas valodas, piemēram, Visual Basic for Applications (VBA), varēja darīt daudz ko līdzīgu, bet tām bija jādarbojas tikai ar noteiktām lietojumprogrammām. Vispārējas lietojumprogrammas skriptu valodas izmantošana, nevis jaunas valodas radīšana katrai lietojumprogrammai parasti atvieglo darbu gan lietojumprogrammas rakstītājam, gan lietotājam, kas raksta skriptus.
Skriptu valodu veidi
Līmes valodas
Dažreiz dažādu lietojumprogrammu savienošanai tiek izmantoti skripti. To sauc par "līmēto kodu", un tieši šim nolūkam izstrādāta valoda ir "līmētā valoda". Cauruļvadi un apvalka skriptu rakstīšana ir izplatīti līmējošo valodu piemēri. Taču, ja daudz loģikas ir rakstīts skripta failā, labāk to uzskatīt vienkārši par vēl vienu programmatūras lietojumprogrammu, nevis par "līme".
Līmes valodas ir īpaši noderīgas rakstīšanai un uzturēšanai:
- pielāgotas komandu čaulas komandas;
- mazākas programmas nekā tās, kuras labāk īstenot kompilētā valodā;
- "iesaiņojuma" programmas, kas veic dažas automatizētas darbības pirms vai pēc lietojumprogrammas, piemēram, izklājlapas, datu bāzes, kompilatora utt., palaišanas;
- skripti, kas var bieži mainīties;
Līmes valodas piemēri:
- AppleScript
- awk
- JCL
- Lua
- m4
- Perl
- Unix Shell skripti (ksh, csh, bash, sh un citi)
- VBScript
- Darba plūsmas valoda
- Windows PowerShell
- XSLT
Tādām ierīcēm kā programmējamiem kalkulatoriem var būt arī savas līme valodas. Piemēram, Texas Instruments TI-92 pēc rūpnīcas noklusējuma var programmēt ar komandu skripta valodu. TI-NSpire kalkulators saprot Lua valodu. Citi saprot kādu Basic valodu, varbūt Lisp vai kādu citu.
Darba vadības valodas un čaulas
Šī grupa ir radusies, sākot ar IBM JCL, kas attiecas uz sistēmas programmu palaišanu un darbības kontroli, sākot ar IBM JCL. Daudzi no šo valodu tulkiem darbojas arī kā komandrindas tulki, piemēram, Unix apvalks vai MS-DOS COMMAND.COM. Citas, piemēram, AppleScript, piedāvā izmantot angļu valodai līdzīgas komandas, lai veidotu skriptus.
GUI skriptu rakstīšana
Veidojot grafiskās lietotāja saskarnes, ir nepieciešams veids, kā tās testēt. Tika radītas specializētas skriptu valodas, lai vadītu grafiskos logus, izvēlnes, pogas u. c., tāpat kā to darītu lietotājs. Daudzkārt tās var izmantot, lai kopētu tieši to, ko dara cilvēks (kustina peli, noklikšķina vai raksta uz tastatūras). Šo darbību vai darbību kopiju, kas tiek kopēta un iegaumēta, sauc par makro.
Lietojumprogrammām specifiskas valodas
Daudzās lielās lietojumprogrammās ir iekļauta tieši šai lietojumprogrammai paredzēta skriptu valoda. Šī lietojumprogramma var būt spēle vai biznesa programma. Šāda veida valoda ir paredzēta vienai lietojumprogrammai. Tās izskatās kā vispārējas nozīmes valoda (piemēram, QuakeC, kas veidota pēc C), tām ir pielāgotas funkcijas, kas tās atšķir.
Paplašināšanas/iekļaujamās valodas
Tā ir līdzīga lietojumprogrammai specifiskai skriptu valodai, jo tā kontrolē lietojumprogrammu, taču šo valodu var izmantot daudzās lietojumprogrammās.
JavaScript sākās kā tīmekļa pārlūkprogrammu skriptu rakstīšanas valoda, taču tagad tā ir vispārēja lietojuma valoda, ko var iestrādāt. Tā tiek izmantota arī, piemēram, Adobe produktos.
Dažās valodās laika gaitā notiek pāreja no viena tipa uz citu, parasti tāpēc, ka tiek pievienotas iespējas veikt vairāk darbību.
Jautājumi un atbildes
J: Kas ir skriptu valoda?
A: Skriptu valoda ir programmēšanas valoda, kas atbalsta skriptus.
J: Kas ir skripti?
A: Skripti parasti ir īsas datorprogrammas, kas veic darbības, kuras cilvēks varētu veikt vienu pēc otras.
J: Kāpēc skripti ir noderīgi?
A: Tas automatizē darbu, lai padarītu to vieglāku un uzticamāku.
J: Vai skriptu valodu ir grūti apgūt?
A: Skriptu valoda bieži vien ir vienkāršāka valoda, un to ir vieglāk apgūt nekā citas valodas, tomēr ar to var paveikt daudzas lietas.
J: Kur var palaist skriptus?
A: Skripti var darboties citā programmā, piemēram, tīmekļa pārlūkprogrammā vai Microsoft Excel.
J: Kas ir apvalks skriptu valodās un kā to izmanto?
A: Tās var būt arī čaulas, kas darbojas no komandrindas saskarnes un veic izsaukumus uz operētājsistēmu (OS). Apvalku uzskata par interaktīvu - lietotājs var izvēlēties, ko ievadīt, un apvalks atbild uz komandu. Tās var izmantot, lai kontrolētu darba uzdevumus galvenajos blokos un serveros.
Vai vispārējas nozīmes valoda var būt skriptu valoda?
A: Daži saka, ka skriptu valodai jābūt piesaistītai konkrētam lietojumam. Citi izmanto plašāku definīciju un iekļauj vispārējas nozīmes programmēšanas valodas, kuras tiek interpretētas, nevis kompilētas. Vispārēja lietojuma valoda nozīmē, ka to var izmantot dažādos veidos dažādām lietām. Dažām vispārējas nozīmes valodām (piemēram, Java) ir variācijas, kuras var rakstīt ar skriptu palīdzību. Nav konkrētu noteikumu par to, kas ir vai nav skriptu valoda.