Limbi de programare

32 33 34 1 2 35 36 37 38 39 40 41 4 42 43 44 45 46 47 5 48 49 6 50 51 52 53 54 55 56 57 58 9 59 10 60 7 61 62 63 64 65 66 67 68 69 8 70 71 72 11 73 74 75 76 77 78 14 79 80 81 31 17 15 82 16 20 83 84 85 19 86 87 88 30 89 18 90 21 91 92 93 94 95 96 97 98 99 22 100 101 102 103 104 105 23 24 106 107 108 26 109 13 110 111 29 28 112 113 114 115







Reduceți cu 50% reducere pentru cursuri! Grăbește-te să te supui
cerere

Recalificarea profesionala a 30 de cursuri de la 6900 de ruble.

Cursuri pentru toate de la 3000 de ruble. de la 1500 de ruble.

Actualizarea a 36 de cursuri de la 1500 de ruble.

Creșterea productivității computerelor și modificările în compoziția software-ului folosit fac ca rolul limbajelor de scripting în crearea unei aplicații viitoare să devină din ce în ce mai important. Aceste limbi diferă de limbile de programare la nivel de sistem, deoarece scopul lor principal este de a asocia diferite componente și aplicații între ele. îndeplinind rolul unui tip de adeziv. Ei găsesc aplicarea unor abordări neclintite la descrierea datelor, ceea ce permite aducerea programării la un nivel mai înalt și accelerarea procesului de dezvoltare în comparație cu limbile de nivel sistem.

În ultimii 15 ani, metodologia de scriere a programelor pentru computere a suferit o schimbare radicală. Dezvoltatorii s-au mutat de la limbi de programare la nivel de sistem, cum ar fi. Cu și. C ++, pentru limbile de scripting, dintre care exemple sunt Purl Tell. Deși un număr mare de oameni au fost implicați în această schimbare, doar câțiva dintre ei sunt conștienți. că se întâmplă de fapt. și chiar mai puțini vor fi găsiți. care ar putea explica motivele.

Aceste limbi au fost create în scopuri diferite, ceea ce a condus la o serie de diferențe fundamentale între ele. Sistemele au fost dezvoltate pentru a construi structuri de date și algoritmi de la zero, pornind de la astfel de elemente primitive. ca un cuvânt de memorie de calculator. În contrast cu asta. au fost create limbi de scripting pentru a conecta programe pregătite. Utilizarea lor implică disponibilitatea unui sortiment suficient de componente puternice. Trebuie doar să fie combinate unul cu celălalt. Limbile de nivel sistem utilizează un tip de control strict, care ajută dezvoltatorii de aplicații să facă față unor sarcini complexe; limbile de scripting nu utilizează conceptul de tip, care simplifică stabilirea conexiunilor între componente și accelerează dezvoltarea sistemelor de aplicații.

Limbile acestor două tipuri sunt complementare. și cele mai multe platforme de calculatoare de la mijlocul anilor '60 sunt echipate ca acestea. și altele. În infrastructurile componente, ele sunt aplicate. ca regulă. Împreună, componentele sunt create în limbi de programare la nivel de sistem. și pentru comunicarea între ele, se folosesc limbi de scripting. Cu toate acestea, o serie de tendințe actuale. inclusiv apariția unor mașini mai rapide și limbi de scripting mai avansate. sporind importanța interfeței grafice a utilizatorilor și a arhitecturilor componentelor. și popularitatea crescândă a internetului. extinderea extinsă a aplicabilității limbilor de scripting. Dezvoltarea acestor tendințe va continua și în următorul deceniu. în consecință, tot mai multe aplicații vor fi create în întregime în limbile de scripting. iar rolul limbajelor de programare la nivel de sistem este redus aproape exclusiv la crearea de componente.

2. Limbi de programare la nivel de sistem.

Pentru a înțelege diferența dintre limbile de scripting și sistemul. este util să ne amintim istoria celor din urmă. Pentru prima dată, acestea au apărut ca o alternativă la limbile de asamblare, permițând să se utilizeze în program aproape toate caracteristicile unui anumit subsistem hardware. Fiecare instrucțiune a acestei limbi corespunde exact unei instrucțiuni de mașină, iar programatorul trebuie să se ocupe de asemenea detalii de nivel inferior, cum ar fi alocarea registrelor și secvența apelurilor procedurale. Ca urmare, scrierea și menținerea programelor mari în limba asamblorului este extrem de dificilă.

Până la sfârșitul anilor 1950, au început să apară limbi de programare de nivel superior, cum ar fi Lisp. Fortran. ALGOL. Nu mai există o potrivire exactă între construcțiile de limbă și instrucțiunile mașinii. Compilarea liniilor de cod sursă într-o secvență de comenzi binare a fost efectuată de compilator. În timp, numărul acestora a crescut cu limbile PL / 1, Pascal. C. C ++, Java. Toate acestea folosesc hardware mai puțin eficient decât limbile de asamblare, dar vă permite să creați mai rapid aplicații. Ca urmare, au fost capabili să deplaseze aproape complet limbile de asamblare atunci când creează aplicații mari.

Limbi de programare la nivel înalt.

Limbile de programare ale sistemului sunt diferite de cele ale asamblorilor, în primul rând prin faptul că sunt mai înalte și, în al doilea rând, folosesc un control mai strict de tip. Termenul "nivel înalt" înseamnă următoarele: multe părți sunt prelucrate automat, iar programatorul trebuie să scrie mai puține linii pentru a-și crea aplicația. În special:

Compilatorul este responsabil pentru distribuirea registrelor, deci programatorul nu are nevoie să scrie cod care să asigure transferul de date între registre și memorie;

Secvențele apelurilor de procedură sunt generate automat; programatorul nu are nevoie să descrie plasarea argumentelor funcției pe teancul și extragerea lor de acolo;

Pentru a descrie structurile de management, programatorul poate folosi și cuvinte cheie ca în cazul în care. în timp ce; secvențele de instrucțiuni ale mașinii care corespund acestor descrieri pe care compilatorul le generează în mod dinamic.

În contrast, limbile moderne de programare se caracterizează prin scrierea strictă. Fiecare variabilă în limbajul de programare la nivel de sistem trebuie declarată specificând un anumit tip, cum ar fi un întreg sau un pointer la un șir de caractere, și apoi utilizat numai în moduri adecvate pentru acel tip.

Codul de date și de program sunt separate; crearea unui nou cod în cursul derulării programului este dificilă, dacă este posibil. Variabilele pot fi combinate în structuri sau obiecte cu o substructură clar definită și metode de manipulare a componentelor lor. Un obiect de un singur tip nu poate fi folosit într-o situație în care este prescris un obiect de alt tip.

Limbile de scripting au fost create pentru a conecta programe pregătite. Utilizarea lor implică disponibilitatea unui sortiment suficient de componente puternice care trebuie combinate doar unul cu celălalt.

Tastarea oferă mai multe avantaje. În primul rând, programele mari devin mai ușor de gestionat datorită acesteia. Claritatea sistemului de tip face clar pentru programator care sunt datele specifice pentru; el poate distinge cu usurinta intre ele si in consecinta foloseste. În al doilea rând, compilatorii folosesc informații de tip pentru a detecta unele tipuri de erori, cum ar fi încercarea de a utiliza un număr de punct mobil în calitate de pointer. În al treilea rând, tastarea îmbunătățește performanța aplicațiilor, permițând compilatoarelor să genereze coduri mai specializate. De exemplu, dacă compilatorul știe că o variabilă conține întotdeauna valori întregi, ea poate genera instrucțiuni întregi pentru manipularea acesteia; Dacă tipul nu este cunoscut de compilator, atunci trebuie să introduceți instrucțiuni suplimentare pentru a verifica tipul în timpul rulării.







Figura 1 prezintă distribuția unui număr de limbi de programare în ceea ce privește puterea și gradul de severitate a tipării.

5. Limbi care descriu scenariile.

Limbi de descriere a script-urilor, cum ar fi Perl. Python. Rexx. Tcl. Limbile Visual Basic și UNIX. presupune un stil de programare care este foarte diferit de limbajul de sistem. Ele nu sunt destinate pentru scrierea unei aplicații de la zero, ci pentru combinarea componentelor, setul acestora fiind creat în prealabil folosind alte limbi. De exemplu, Tcl. Visual Basic poate fi folosit pentru a construi interfețe utilizator din controalele existente, iar limbile de scripting pentru shell-urile UNIX sunt utilizate pentru a forma conducte pentru prelucrarea fluxurilor de date dintr-un set de filtre standard. Limbile de scripting sunt adesea folosite pentru a suplimenta componentele gata făcute cu noi caracteristici; Cu toate acestea, această activitate acoperă rareori crearea unor algoritmi sau a unor structuri de date complexe deja deja integrate în componente. Uneori limbile de scriere sunt chiar numite legături sau limbi de integrare a sistemului.

Pentru limbile de scripting, există o lipsă de scriere, ceea ce ar complica doar sarcina de conectare a componentelor. Toate elementele din ele arată și funcționează identic și sunt complet interschimbabile. De exemplu, în Tcl sau Visual Basic, o variabilă poate conține un șir într-un punct din program și un întreg în altul. Codul și datele sunt adesea interschimbabile. De exemplu, Tcl. O variabilă Visual Basic poate conține un șir dintr-un punct din program și un întreg în celălalt. Codul și datele sunt, de asemenea, deseori interschimbabile, astfel încât programul poate genera un alt program - și îl puteți executa imediat. De obicei, limbile de scripting utilizează tipuri de șir de variabile care oferă un mecanism de reprezentare uniformă pentru diferite entități.

Absența în limbajul divizării a variabilelor în tipuri simplifică conectarea componentelor între ele. Nu există restricții a priori privind modul în care poate fi folosit un element și toate componentele unei valori sunt prezentate într-un singur format. Astfel, o componentă sau o valoare poate fi utilizată în orice situație; fiind concepute pentru anumite metode de aplicare, ele pot fi implicate în lucruri complet diferite pe care creatorul lor nu le-a crezut niciodată. De exemplu, în shell-urile UNIX, activitatea oricărui program de filtrare implică citirea datelor din fluxul de intrare și scrierea acestuia în fluxul de ieșire. Orice două astfel de programe pot fi conectate prin atribuirea unui flux de ieșire la unul ca flux de intrare al celuilalt. Următoarea comandă shell reprezintă un sistem de trei filtre, numărând liniile fragmentului de text selectat care conțin cuvântul "scipting":

Selectați | scripting grep | WC

Programul selectat citește textul selectat în mod curent pe ecran și afișează fluxul de ieșire; Filtrul grep citește fluxul de intrare și trece la liniile de ieșire care conțin cuvântul "scripting"; iar programul wc numără numărul de rânduri din fluxul său. Oricare dintre aceste componente pot găsi aplicații într-o varietate de situații diferite, rezolvând de fiecare dată o sarcină comună diferită. Difuzarea puternică a limbajelor de programare la nivel de sistem face dificilă reutilizarea codului. Încurajează programatorii să creeze un număr mare de interfețe incompatibile, fiecare necesitând utilizarea obiectelor de tip propriu. Compilatorul nu permite ca obiectele de alte tipuri să interacționeze cu această interfață, în ciuda faptului că rezultatul ar putea fi foarte util. Astfel, pentru a utiliza un obiect nou cu o interfață existentă, programatorul trebuie să scrie un "adaptor" care convertește obiectul la tipul la care a fost proiectată interfața. Și utilizarea "adaptorului" necesită, la rândul său, recompilarea unei părți sau chiar a întregii aplicații ca întreg. Modul dominant de distribuție a software-ului sub formă de fișiere binare face ca această abordare să fie imposibilă.

Pentru a evalua avantajele unui limbaj de programare tipic, luați în considerare următorul exemplu în Tcl.

Butonul .b -text Hello! -font - comandă.

Această comandă creează un nou buton pe ecran cu eticheta Hello pe ea. font Times 16 elemente, când se face clic, care afișează un mesaj scurt salut. În aceeași linie de aici se potrivesc șase tipuri diferite de celule: numele de comandă (buton), numele butonului (b.), Atribut de identificare (- text - font - comandă ..), un șir de simplu (. Bună ziua Bună ziua), Caietul de sarcini font (Times 16) , constând din numele conturului (Times) și dimensiunea în punctele (16), precum și întregul script Tcl (pune salut). Toate elementele sunt prezentate într-un mod uniform - sub formă de șiruri de caractere. În acest exemplu, atributele pot fi enumerate în orice ordine, dar atributele nemenționate (există mai mult de 20) vor fi atribuite valorile implicite.

Dacă este implementat în Java, același exemplu ar necesita șapte linii de cod care compun cele două metode. Pentru C ++ utilizând biblioteca Microsoft Class Classes (MFC), scările au crescut la aproximativ 25 de linii de cod, care formează trei proceduri. Selectarea fonturilor necesită un acces multiplu la funcțiile MFC

Cfont * fontPtr = nou Cront ();

FontPtr-> Creta Font (16, 0, 0, 0, 700,

0, 0, 0, ANSI_CHARSET,

"Times New Roman");

Limbi care descriu scenarii în creștere

limbaje de scripting descrieri există pentru o lungă perioadă de timp, cu toate acestea, ca urmare a unei combinații de factori a crescut semnificativ importanța lor în ultimii ani. Cel mai important dintre acești factori - orientarea spre anexă, asamblat din componente gata făcute, ca și cele trei ilustrații ale manifestărilor sale pot fi numite interfețe grafice cu utilizatorul, internet, componenta de dezvoltare a infrastructurii.

7. Interfețe grafice de utilizator

Primele interfețe grafice ale utilizatorilor au apărut la începutul anilor 1980 și au devenit larg răspândite până la sfârșitul deceniului. Astăzi, descrierea acestei părți a programului în multe proiecte necesită mai mult de jumătate din eforturile dezvoltatorilor. GUI este în mod inerent un sistem integrat. Scopul creării sale nu este de a implementa noi funcționalități, ci de a stabili legături între controalele grafice și funcțiile părților interne ale aplicației.

Unele sisteme sunt prevăzute cu un mijloc foarte convenabil pentru construirea ecrane grafice care ascund complexitatea limbii de bază, cu toate acestea, de îndată ce apare necesitatea de a scrie cod suplimentar, de exemplu, pentru a extinde gama de elemente de interfață comportamente, dezvoltatorul atunci când apar dificultăți. Toate cele mai bune medii de dezvoltare accelerate se bazează pe limbile de scripting: Visual Basic. HyperCard. TCL / TK.

8. Infrastructura componentelor

Al treilea exemplu de utilizare a limbilor de scripting este infrastructurile componente, cum ar fi ActiveX. Java fasole. Deși limbile de programare la nivel de sistem sunt folosite cu succes pentru a crea componente, sarcinile de a construi aplicații de la acestea sunt rezolvate mai convenabil folosind scripturi. Fără o limbă bună de scripting pentru manipularea componentelor infrastructurii, o parte semnificativă a avantajelor sale este pierdută. Acest lucru poate explica în parte de ce infrastructurile componente au devenit mai populare în lumea PC-urilor, unde există un liant atât de convenabil ca Visual Basic. decât pe alte platforme, cum ar fi Unix / Cobra. Infrastructuri de componente pentru care lipsesc limbile de scripting.

9. Tehnologia scenariilor

În plus, tehnologia scenariilor a beneficiat foarte mult de creșterea productivității echipamentelor informatice. Nu cu mult timp în urmă, pentru a atinge o viteză acceptabilă de aplicare a oricărui nivel de complexitate, a fost necesar să se acceseze limbile de sistem. În unele cazuri, chiar și eficacitatea lor era insuficientă și programul trebuia să fie scris în asamblare. Mașinile moderne funcționează de 100 până la 500 de ori mai repede decât computerele din anii 80, iar productivitatea lor continuă să se dubleze la fiecare 18 luni. Astăzi, o serie de aplicații pot fi implementate în limbi de scripting, dar cu performanțe excelente. De exemplu, un script TCL vă permite să manipulați mii de obiecte menținând în același timp un nivel bun de interactivitate. Pe măsură ce computerele devin mai rapide și mai rapide, utilizarea limbilor de scripting va deveni atractivă pentru implementarea a tot mai multe aplicații la scară largă.

10. Alte limbi

Limbile de scripting se bazează pe un set diferit de compromisuri decât limbile de sistem. În viteza lor de executie si severitatea tipurilor de control sunt plasate în scara de priorități într-un loc mai mic, dar productivitatea mai mare programator evaluate și reutilizare. Această corelare a valorilor se dovedește a fi din ce în ce mai justificată, deoarece computerele devin repede și mai puțin costisitoare, ceea ce nu se poate spune despre programatori. limbaje de programare de sistem sunt potrivite pentru crearea componentelor în cazul în care principala dificultate constă în punerea în aplicare a algoritmilor și structurilor de date, în timp ce limbaje de scripting sunt mai potrivite pentru aplicații de construcții din componente pre-construite, în cazul în care dificultatea constă în stabilirea de legături de interconectare. Sarcinile ultimului tip devin tot mai răspândite, astfel încât rolul paradigmei scenariilor va crește în secolul următor.







Articole similare

Trimiteți-le prietenilor: