Limbaj de scripting
Un limbaj de scripting sau un limbaj de scripting este un limbaj de programare care acceptă scripturi. Scripturile sunt, de obicei, programe de calculator scurte care execută pași care ar putea fi făcuți de o persoană, unul câte unul. Astfel, se automatizează o sarcină pentru a o face mai ușoară și mai fiabilă. Un limbaj de scripting este adesea un limbaj mai simplu și mai ușor de învățat decât alte limbaje, dar poate face totuși multe lucruri.
Scripturile pot rula în interiorul unui alt program, cum ar fi un browser web sau Microsoft Excel. De asemenea, ele pot fi un shell care rulează de la o interfață de linie de comandă și face apeluri către sistemul de operare (OS). Shell-ul este considerat interactiv - utilizatorul poate alege ce să tasteze, iar shell-ul răspunde la comandă. Acestea pot fi utilizate pentru a controla lucrările pe mainframe-uri și servere.
Unii oameni spun că un limbaj de scripting trebuie să fie legat de o utilizare specifică. Alții folosesc o definiție mai largă și includ limbajele de programare de uz general care sunt interpretate, nu compilate. De uz general înseamnă că poate fi folosit în multe feluri, pentru lucruri diferite. Unele limbaje de uz general (cum ar fi Java) au variații care pot fi scripturi (Javascript). Nu există o regulă specifică cu privire la ceea ce este sau nu este un limbaj de scripting.
Exemple
Câteva exemple comune de limbaje de scripting:
- Bash și C shell, ca limbaje de control pentru sistemele de operare Unix sau similare Unix
- Scripturile care rulează în interiorul altor aplicații se numesc limbaj de extensie. Browserele web permit mai multe tipuri de scripturi, inclusiv ECMAScript (JavaScript) sau XUL. De exemplu, pagina de pornire Google folosește JavaScript. Visual Basic for Applications este utilizat în interiorul Microsoft Office. Lua este un limbaj realizat în mod intenționat ca limbaj de extensie și poate fi utilizat în cadrul multor aplicații.
- Printre jocurile care au extensii de scripting se numără lumea virtuală Second Life și simulatoarele Trainz Railroad. În alte jocuri, cum ar fi Wesnoth, varietatea de jocuri reale jucate sunt scripturi scrise de alți utilizatori.
- Limbaje de procesare a textului sed și AWK
- Destinație generală: Perl, Tcl și Python sunt limbaje de programare de nivel înalt (mai aproape de limbajul uman decât de codul mașinii) care pot fi utilizate pentru multe lucruri diferite. Unele dintre aceste limbaje au fost create inițial pentru o anumită utilizare, iar apoi au fost transformate în limbaje de uz general.
Caracteristici
Majoritatea limbajelor de scripting sunt făcute pentru a fi ușor de învățat. Adesea, acestea pot fi fie fișiere scurte cu cod sursă, fie introduse comandă cu comandă într-o interfață de linie de comandă, care are o buclă de citire-evaluare-imprimare (REPL, limbaj shell). Aceasta înseamnă, de obicei, un set simplu de comenzi. S-ar putea să nu existe funcții sau un main, pur și simplu se execută de la început până la sfârșit. Dacă ceva nu funcționează, un programator poate face modificări rapide și îl poate rula din nou. Acest lucru face ca un limbaj de scripting să fie bun pentru realizarea unui prototip rapid pentru a vedea dacă o idee funcționează.
De exemplu, cei mai mulți oameni nu numesc Java un limbaj de scripting, din cauza sintaxei sale lungi și a regulilor privind clasele care există în ce fișiere și pentru că Java nu poate fi executat interactiv într-un REPL. Are nevoie de fișiere cu cod sursă, iar acestea pot conține doar definiții care trebuie utilizate de o aplicație gazdă sau de un lansator de aplicații. (Java nu este același lucru cu JavaScript).
Dar Python permite alegeri - funcțiile pot fi introduse într-un fișier, poate fi rulat fără funcții și poate fi folosit stilul de programare imperativ sau chiar interactiv (tastați și rulați o linie la un moment dat).
print ("Hello World")
Această singură linie de cod Python tipărește "Hello World"; nu este nevoie de funcția main() sau de orice altceva.
Un limbaj de scripting este, de obicei, interpretat din codul sursă sau bytecode. Cu toate acestea, ceva trebuie să ruleze scriptul (să îl interpreteze) pentru ca computerul să îl înțeleagă. Aceasta este o aplicație sau ceva din sistemul de operare. Aceasta este adesea scrisă într-un limbaj compilat și distribuită sub formă de cod mașină (ca un executabil care nu are sens pentru oameni).
Limbajele de scripting pot fi concepute pentru a fi utilizate de către persoanele care folosesc un program - dezvoltare pentru utilizatorul final. Alteori, ele pot fi create de programatori pentru uz propriu. Limbajele de scripting folosesc adesea abstractizarea, o formă de ascundere a informațiilor. Acest lucru înseamnă că utilizatorii nu trebuie să cunoască detaliile privind tipurile de variabile, stocarea datelor și gestionarea memoriei.
Scripturile sunt adesea create sau modificate de către persoana care le execută, dar unele sunt partajate sau vândute altora. De exemplu, atunci când părți mari din jocuri sunt scrise într-un limbaj de scripting. Uneori, un script poate fi compilat înainte ca alții să îl folosească. Odată compilat, acesta va rula mai repede și nu are nevoie de o altă aplicație pentru a fi executat. Iar acest lucru împiedică utilizatorii finali să modifice codul.
Istoric
Primele computere mainframe (din anii 1950) nu erau interactive, ci foloseau scripturi stocate în fișiere batch. Job Control Language (JCL) de la IBM este exemplul obișnuit de limbaj de scripting utilizat pentru a controla procesarea pe loturi.
Primele shell-uri interactive au fost realizate în anii 1960 pentru a ajuta la operarea la distanță a primelor sisteme de partajare a timpului. Acestea foloseau scripturi shell, care pot rula programe de calculator în cadrul unui program de calculator, shell-ul. Calvin Mooers, în limbajul său TRAC, are în general meritul de a fi inventat substituirea comenzilor. Aceasta permite comenzilor să modifice scriptul (cod care se modifică singur). Multics numește aceste funcții active. Louis Pouzin a scris un procesor timpuriu pentru scripturi de comandă numit RUNCOM pentru CTSS în jurul anului 1964. Stuart Madnick de la MIT a scris un limbaj de scripting pentru CP/CMS al IBM în 1966. Inițial, el a numit acest procesor COMMAND, denumit ulterior EXEC. Multics a inclus o ramură a CTSS RUNCOM, numită de asemenea RUNCOM. EXEC a fost înlocuit în cele din urmă de EXEC 2 și REXX.
Limbaje precum Tcl și Lua au fost create de la început pentru a fi limbaje de scripting de uz general care pot fi introduse în orice aplicație. Alte limbaje, cum ar fi Visual Basic for Applications (VBA), puteau face o mare parte din același lucru, dar trebuiau să funcționeze numai cu anumite aplicații. Folosirea unui limbaj de scripting de uz general în loc de crearea unui nou limbaj pentru fiecare aplicație facilitează de obicei atât pentru persoana care scrie aplicația, cât și pentru utilizatorul care scrie scripturile.
Tipuri de limbaje de scripting
Limbi de lipire
Scriptingul este uneori utilizat pentru a conecta diferite aplicații. Acest lucru se numește "glue code", iar un limbaj creat special în acest scop este un limbaj glue. Pipeline-urile și scripturile shell sunt exemple comune de limbaje de lipire. Dar dacă într-o aplicație de script se scrie multă logică, este mai bine să o considerați ca fiind o altă aplicație software, nu ca un "lipici".
Limbajele adezive sunt deosebit de utile pentru scriere și întreținere:
- comenzi personalizate pentru un shell de comandă;
- programe mai mici decât cele care sunt mai bine implementate într-un limbaj compilat;
- programe de "înveliș" care efectuează anumite acțiuni automate înainte sau după rularea unei aplicații, cum ar fi o foaie de calcul, o bază de date, un compilator etc.;
- scripturi care se pot schimba des;
Exemple de limbaj de lipire:
- AppleScript
- awk
- JCL
- Lua
- m4
- Perl
- Scripturi Unix Shell (ksh, csh, bash, sh și altele)
- VBScript
- Limbajul fluxului de lucru
- Windows PowerShell
- XSLT
Dispozitive precum calculatoarele programabile pot avea, de asemenea, propriile lor limbaje de lipire. De exemplu, Texas Instruments TI-92, prin setările din fabrică, poate fi programat cu un limbaj de script de comandă. Calculatorul TI-NSpire înțelege limbajul Lua. Altele înțeleg un fel de limbaj Basic, sau poate Lisp sau altceva.
Limbaje de control al lucrărilor și shell-uri
Acest grup a provenit din automatizarea controlului lucrărilor, care se referă la pornirea și controlul comportamentului programelor de sistem, începând cu JCL de la IBM. Multe dintre interpreții acestor limbaje funcționează și ca interpreți de linie de comandă, cum ar fi shell-ul Unix sau COMMAND.COM din MS-DOS. Altele, cum ar fi AppleScript, oferă utilizarea comenzilor de tip englezesc pentru a construi scripturi.
Scripting GUI
Atunci când se construiesc interfețe grafice cu utilizatorul, este necesară o modalitate de testare a acestora. Au fost create limbaje de scripting specializate pentru a controla ferestrele grafice, meniurile, butoanele și așa mai departe, la fel cum ar face-o un utilizator uman. De multe ori, acestea pot fi folosite pentru a copia exact ceea ce face o persoană (mișcarea mouse-ului, click sau tastarea pe o tastatură). Această acțiune sau set de acțiuni care este copiată și memorată se numește macro.
Limbaje specifice aplicațiilor
Multe aplicații de mari dimensiuni includ un limbaj de scripting construit special pentru aplicația respectivă. Aplicația poate fi un joc sau un program de afaceri. Acest tip de limbaj este realizat pentru o singură aplicație. Ele fac să arate ca un limbaj de uz general (de exemplu, QuakeC, modelat după C), au caracteristici personalizate care le disting.
Limbaje extensibile/încorporabile
Este ca un limbaj de scripting specific unei aplicații, în sensul că acesta controlează o aplicație, dar poate fi utilizat în mai multe aplicații.
JavaScript a început ca un limbaj pentru scripting în browsere web, dar acum este un limbaj generalist care poate fi încorporat. De asemenea, este utilizat, de exemplu, în produsele Adobe.
Unele limbaje trec de la un tip la altul de-a lungul timpului, de obicei pe măsură ce adaugă capacități pentru a face mai multe lucruri.
Întrebări și răspunsuri
Î: Ce este un limbaj de scripting?
R: Un limbaj de scripting sau de scripting este un limbaj de programare care acceptă scripturi.
Î: Ce sunt scripturile?
R: Scripturile sunt, de obicei, programe de calculator scurte care efectuează pași care ar putea fi făcuți unul câte unul de către o persoană.
Î: De ce sunt utile scripturile?
R: Acestea automatizează o sarcină pentru a o face mai ușoară și mai fiabilă.
Î: Este dificil de învățat un limbaj de scripting?
R: Un limbaj de scripting este adesea un limbaj mai simplu și mai ușor de învățat decât alte limbaje, dar poate face totuși multe lucruri.
Î: Unde pot fi rulate scripturile?
R: Scripturile pot rula în interiorul unui alt program, cum ar fi într-un browser web sau în Microsoft Excel.
Î: Ce este un shell în limbajele de scripting și cum este utilizat?
R: Acestea pot fi, de asemenea, un shell care rulează de la o interfață de linie de comandă și care face apeluri către sistemul de operare (OS). Shell-ul este considerat interactiv - utilizatorul poate alege ce să tasteze, iar shell-ul răspunde la comandă. Acestea pot fi utilizate pentru a controla lucrările pe mainframe-uri și servere.
Î: Un limbaj de uz general poate fi un limbaj de scripting?
R: Unii oameni spun că un limbaj de scripting trebuie să fie legat de o utilizare specifică. Alții folosesc o definiție mai largă și includ limbajele de programare de uz general care sunt interpretate, nu compilate. De uz general înseamnă că poate fi folosit în multe moduri pentru lucruri diferite. Unele limbaje de uz general (cum ar fi Java) au variații care pot fi utilizate pentru scripturi. Nu există o regulă specifică cu privire la ceea ce este sau nu este un limbaj de scripting.