Diferite limbi de programare și domeniul lor de aplicare. Prelegerea în Yandex. Limbi de programare moderne și utilizarea limbilor de programare

Pentru a rezolva sarcinile de calcul, procesoarele grafice sunt din ce în ce mai utilizate acum, dar întrebarea este încă deschisă: Cum să scrieți programe eficiente pentru configurațiile relevante?

06/15/2011 ANDREI ADINETS.

Pentru a rezolva sarcinile de calcul, procesoarele grafice sunt din ce în ce mai utilizate acum, dar întrebarea este încă deschisă: Cum să scrieți programe eficiente pentru configurațiile relevante? Soluție standard - o grămadă de CUDA sau OpenCl - vă permite să implementați relativ rapid algoritmul, dar este dificil să creați o configurație specifică cu ajutorul lor. Necesită instrumente pentru programarea procesoarelor grafice de înaltă calitate care pot fi create, de exemplu, cu ajutorul limbilor extensibile.

Acum trei ani, echipamentul de procesor grafic (unitatea de procesare grafică, GPU) au fost considerate doar carduri video pentru un PC, acum atitudinea față de ele - au fost modificate modele speciale ale serverului GPU, concentrate pe rezolvarea sarcinilor de calcul, performanța la calculele cu dublă precizie au crescut , Sisteme înregistrează performanța, care ocupă linii de top în top500. Cum se scrie programe eficiente pentru astfel de mașini? Răspuns standard - o grămadă de CUDA sau OPENCL pentru programarea GPU și MPI la nivelul clusterului. Aceste instrumente sunt disponibile, sunt acceptate în mod activ de producătorii de echipamente, multe programe au fost deja scrise pentru acestea, dar există, de asemenea, dezavantaje.

CUDA și OPENCIL - extensiile limbii Si, nu sunt dificil de studiat, deși sunt unelte suficient de scăzute. Cu ajutorul lor, puteți implementa relativ rapid algoritmul GPU, dar versiunea optimizată pentru o aplicație specifică și configurația este mult mai complicată. Toate optimizările se vor face manual, ceea ce va duce la o creștere a dimensiunii codului și deteriorarea lizibilității sale. Și deși programele create folosind OpenCL vor fi transferate între o gamă largă de arhitecturi, performanța cu un astfel de transfer nu va fi salvată. Instrumente dorite pentru programarea nivelurilor superioare ale GPU.

Crearea unor astfel de instrumente pot fi create de diferite moduri: introduceți un nou limbaj de programare; adăugați directive la un limbaj existent, așa cum se face în acceleratorul IGP sau în modelul HMPP CAPS; Profitați de limbi extensibile. Limbi extensibile- limbi de programare, sintaxă și semantice din care nu sunt fixate și pot fi modificate în funcție de nevoile programatorului. În comparație cu limbile tradiționale, expandabile au o serie de beneficii: este mai ușor să adăugați noi caracteristici; Ele sunt deschise; Studiul noilor modele de programare pe baza unor astfel de limbi este mai ușor, deoarece este necesar să se studieze doar relativ mic din punct de vedere al expansiunii; Cu ajutorul unor astfel de limbi, este mai ușor să efectuați o configurație fină și optimizarea programelor.

Limbi extensibile

Pentru ca limba să fie extensibilă, este necesar să fie prezentă în acesta:

  • mecanismul de expansiune fără a schimba compilatorul este în mod egal susținut de toți compilatoarele, ceea ce înseamnă, în special, prezența unei interfețe standard de interacțiune cu compilatoarele;
  • proiecte pentru expansiune și manipulare cu un cod de cod, cum ar fi macro-urile sau cvasicitizarea, pentru a extinde limba;
  • mijloace puternice de scriere a extensiilor, de exemplu, limba extensibilă în sine și cu celălalt limbă, puterea care sugerează că codul de prelungire poate face același lucru ca orice program în această limbă.

Se pare că limbile care îndeplinesc aceste cerințe sunt relativ puține: Lisp, Nemelle, Seed7, Xoc și Stratego. În același timp, XOC, care este destinat să extindă limba SI, utilizează o limbă Zeta separată pentru a scrie extensiile, iar stratego este limba domeniului subiectului pentru a crea convertoarele codului sursă. Nemmerle este o limbă extensibilă folosind miercuri. NET.

Toate limbile expandabile de susținere mecanisme de lucru cu un program de programe și, mai presus de toate, acest design al cvasicitizării - specificația obiectului reprezentând arborele programului, utilizând codul cel mai sursă.

În limbajul Nemerle, este folosit un design pentru acest lucru, de exemplu, creează un copac format dintr-o declarație variabilă i cu o valoare inițială de 0. quasicitizare este similară creării obiectelor de șir cu constanți de șir. În fig. 1 prezintă un exemplu de cvasicitare. Designul de interpolare vă permite să înlocuiți valorile variabilelor într-un model fix în interiorul cvasicitizării. În Nemerle, utilizează design-uri $ (...) pentru acest lucru dacă doriți să înlocuiți o listă, de exemplu. De asemenea, în limbi extensibile există desene sau modele pentru analiza copacului programului. În limba nemmerle, se utilizează operatorul (...) (...), un analog al comutatorului din limba SI, ca și ramurile care sunt folosite de modelele de cvasicitare. În acest caz, interpolarea este tratată ca o variabile noi noi, care, în cazul în care o comparație reușită, primiți valori ale subrețelor corespunzătoare. De exemplu, pentru potrivirea operatorului de potrivire (e) (| \u003d\u003e ...), dacă E conține un copac, într-o variabilă o va cădea și în variabila b.

Instrumentele pentru lucrul cu un copac de programe sunt utilizate în modele de expansiune lingvistică. În limbajul Nemerle, macrocomenzile sunt caracteristici speciale efectuate la etapa de compilare și returnând un fragment al unui arbore de program care este înlocuit în locația apelului. În același timp, macro-ul ia fragmente ale programului ca parametri și le poate transforma. În principiu, macro-ul poate fi cauzat în același mod ca și funcția obișnuită; Dar oportunitatea mai interesantă este de a lega macro apelul la o sintaxă specială. Acest lucru vă permite să introduceți noi construcții de sintaxă în limba Nerlele și să extindeți astfel limba.

În fig. 2 prezintă un exemplu de macro cu o extensie sintactică, care vă permite să declarați un ciclu multidimensional cu variabile și numărul de iterații pentru fiecare măsurătoare și în fig. 3 Acesta este un exemplu de conversie a programului care face acest macro. Rețineți că macroul care exercită o astfel de extensie durează mai puțin de 30 de rânduri din codul sursă și, în acest caz, include mai multe verificări de eroare. Cu o abordare tradițională, punerea în aplicare a unei astfel de prelungiri ar necesita un număr semnificativ de cod și, în plus, ar necesita studiul dispozitivului de compilator intern.

Din punct de vedere istoric, mecanismul macro din Lisp a apărut mai întâi, programul în care se pare ca o listă obișnuită și nu necesită modele speciale de a lucra cu arborele programului, așa că a fost în această limbă că programarea extensibilă a devenit cea mai distribuție. Macrocomenzile din Nemelle sunt similare în Lisp. În sistemul XOC, mecanismul de extindere este implementat prin intermediul atributelor de expansiune gramatic și parsare. Orice extensie stabilește în mod necesar două atribute: tipul de proiectare de sintaxă și expresia pe limbajul de bază în care este convertit.

Pentru limbi extensibile, implementarea multor structuri standard este caracterizată de macrocomenzi. În limbajul Nemerle, toate ciclurile și operatorii condiționali, cu excepția meciului, sunt implementate prin macrocomenzi, iar în macrocomenzii sunt cicluri standard și declarație de funcții.

Cum să utilizați limbile?

Pentru un limbaj de programare extensibil, puteți scrie structuri care să permită modul cel mai convenabil de a programa procesoarele grafice, care a fost făcută ca parte a proiectului NUDA (arhitectura dispozitivului nemediantă unificată), scopul căruia este de a crea extensii de limbă Nemerle pentru GPU Programare. OpenCL este folosit ca o interfață de interacțiune cu GPU și limba țintă pentru a reprezenta programul.

Pentru a începe, este necesar să se implementeze execuția pe codul subsetului GPU în limba nemelle. Acest lucru trebuie să fie susținut de operatorii de limbi obișnuiți, cum ar fi ciclurile și ramurile, precum și de lucru cu tipuri de date simple, structuri și matrice. Codul pentru GPU este supus funcțiilor individuale sau în kernelul NUDA. Fiecare kernel este marcat de un macro de nusernel, care este generat de codul de pe codul OpenCL și metoda de conectare pentru a apela kernelul pe partea gazdă. Înainte de a genera codul, se efectuează divulgarea tuturor macrocomenzilor, cu excepția ciclurilor și macrocomenzilor de ramură. Dacă în interiorul kernel-ului este necesar pentru a apela o funcție, această funcție trebuie să fie marcată de Macro Nucode, care va genera codul pentru această funcție în OpenCL. Apelul de bază se efectuează utilizând un macro Nucall; În plus față de parametrii kernelului, acesta este transmis, de asemenea, la configurația rețelei de flux cu care pornește.

Cel mai adesea, corpul ciclului este utilizat ca miez pentru GPU, așa că aș dori să transfer imediat ciclul la GPU. În Nerlele, acest lucru poate fi implementat - Macro-ul corespunzător din Nuda se numește Nuwork. După cum este necesar parametrii necesari, este nevoie de dimensiunea blocului de flux și pe baza contextului actual și a analizei codului corpului ciclului determină setul de variabile care trebuie transferate la kernel ca parametri. Corpul kernel-ului este generat de corpul ciclului, calculând indicele ciclului prin numărul de flux global, precum și condițiile care vă permit să executați corect ciclul, chiar dacă dimensiunea Global Grid nu este împărțită în dimensiunea Grupul de flux. O macrocomandă Nucall solicită localizarea ciclului, care numește kernelul generat.

În principiu, puteți permite utilizarea unor matrice de limbă Nemerle în programele GPU, dar duce la costuri ridicate de cheltuieli - matricea este necesară pentru a copia în memoria GPU de fiecare dată când kernelul este apelat și apoi copiați-l înapoi. Prin urmare, tipuri speciale de matrice sunt utilizate în programele GPU cu sincronizare leneșă între GPU și CPU. Acest lucru permite, pe de o parte, să nu ambreiați textul programului prin copierea comenzilor de date și pe cealaltă - pentru a evita cheltuielile de copiere a datelor. Pentru astfel de matrice, ca și pentru matricele obișnuite din Nerlele, gestionarea memoriei este utilizată utilizând colecția de gunoi. Pentru a evidenția memoria pentru astfel de matrice, există un Macro Nunew, care trebuie aplicat operatorului obișnuit de alocare a memoriei.

În fig. 4 În stânga este un program de arie convențional și în partea dreaptă - un program similar, dar efectuarea de calcule pe GPU. Obțineți programe GPU de la obișnuite pur și simplu pur și simplu - aplicați numai macrocomenzi la cicluri și operațiuni de alocare a memoriei, iar valoarea codului nu este practic schimbată. Programul scris folosind NUDA durează mai puțin de 20 de linii de cod. Un program similar, dar în limbajul curat SI și OpenCl durează mai mult de 100 de linii.

În plus față de macrocomenzi, facilitând lucrarea cu GPU, sistemul de extindere NUDA include, de asemenea, adnotări pentru conversia ciclurilor. Adnotările sunt în esență macrocomenzi speciale. De exemplu, abstractul inline este utilizat pentru un ciclu cu un număr fix de iterații și efectuează scanarea completă. Dmine Rezumat efectuează o scanare cu ciclu profund. "Scanare profundă" înseamnă că crearea mai multor copii ale corpului ciclului și agitarea se efectuează nu numai pentru ciclul cel mai convertibil, ci și pentru ciclurile imbricate, dacă este independent.

Efect

De ce ar trebui programatorul să învețe o nouă limbă și să dezvolte noi biblioteci de limbi extensibile? Răspunsul principal este productivitatea. Având un algoritm din cicluri paralele care funcționează cu matrice și înregistrate în limba nemellă, este suficient să adăugați mai multe adnotări pentru a obține un program pentru GPU. În același timp, programul va fi executat pe orice dispozitiv cu suport OpenCL, inclusiv procesoarele grafice NVIDIA și AMD, precum și procesoarele X86. Pentru a obține același lucru numai cu tehnologiile OpenCL sau CUDA, va fi necesar să cheltuiți mult mai multe resurse care să aibă loc nu numai pentru a scrie codul sursă, ci și pentru a depana interacțiunea dintre gazdă și GPU.

Un alt motiv este performanța codului creat. Pe CUDA sau OpenCL, conversia ciclurilor se va face manual și separat pentru fiecare arhitectură. Acesta este un proces de eroare lung și înfășurat, iar codul rezultat este dificil și incomod pentru acompaniament. Cu Nuda, această lucrare se poate face cu ajutorul adnotărilor. De exemplu, pentru mai multe nuclee, puteți optimiza convoluția imaginilor sau multiplicarea matricelor cu adnotările inline și dmine. Fără a crește dimensiunea codului sursă, este posibilă realizarea unei creșteri a productivității în două sau cinci ori. În același timp, dacă aceleași transformări au fost efectuate manual, ar duce la o creștere a codului uneori și, uneori, o ordonanță de mărime, ca să nu mai vorbim de timpul petrecut timp la depanarea și selectarea parametrilor optimi de măturări. De exemplu, un program universal adnotat de la șapte rânduri în multiplicarea NUDA a unei matrice transpuse pe o matrice cu dublu precizie se efectuează pe Nvidia Tesla C2050 doar cu 40% mai lent cel mai bun lucru în momentul implementării (Cublas 3.2). Un program similar scris de mână ar ocupa 70 de linii de cod. Firește, pentru sarcini standard, puteți scrie manual codul o dată pentru a crește productivitatea, dar pentru sarcini specifice, reducerea costurilor forței de muncă și a productivității va fi foarte utilă. În cele din urmă, creșterea productivității include, de asemenea, crearea de extensii în sine: pentru a le crea cu ajutorul unor limbi extensibile este mai ușoară decât utilizarea instrumentelor tradiționale. Întregul sistem NUDA, în ciuda funcționalității sale, durează doar 12 mii de linii de cod, fără teste de numărare. Acest lucru este relativ puțin, de exemplu, compilatorul de limbă Nemerle (asamblarea 9025) durează aproximativ 130 de mii de linii.

Limba expansionată este un instrument puternic, iar utilizarea sa în calculul paralel este încă în starea cea mai inițială. Există multe sarcini interesante în dezvoltarea limbilor de programare paralele, iar oricare dintre ele poate fi rezolvată utilizând o combinație de extensii și biblioteci. Puteți adăuga blocuri de cod asincrone și cicluri paralele în limba, puteți crea modele convenabile pentru sisteme de programare, cum ar fi matrice distribuite. În cele din urmă, este posibilă utilizarea extensiilor pentru a construi un limbaj de programare paralel cu drepturi depline, cum ar fi capela sau x10.

Andrey Adinets.([E-mail protejat]) - M.N.S. NIVZ Moscova Universitatea de Stat (Moscova).



Titlul raportului

Limbi moderne de programare și utilizarea acestora

Autorul proiectului

Structura proiectului

● Schema de clasificare a limbajului de programare

● Clasificarea limbilor de programare

● Prezentare generală a limbajelor de programare

● Resurse utile

Schema de clasificare Limbi de programare

Clasificarea limbajelor de programare

Programare procedurală - Există o reflectare a fundalului arhitecturii Nymanovsk a computerului. Programul scris în limba procedurală este o secvență de comenzi care determină algoritmul de rezolvare a problemelor. Ideea principală a programării procedurale este utilizarea memoriei pentru stocarea datelor. Comanda principală atribuie, care este determinată și modificările memoriei computerului. Programul face conversia conținutului de memorie prin schimbarea acestuia de la starea sursă la rezultat.

Există proceduri similare de programare Limbi:

 Fortran Limba a fost creată la începutul anilor '50 din secolul al XX-lea pentru programarea sarcinilor științifice și tehnice;

 Cobol - creat la sfârșitul anilor '60 din secolul al XX-lea pentru a rezolva problemele de prelucrare a unor cantități mari de date stocate pe diverse purtători de date;

 Algol (1960) este un limbaj de programare avansat multifuncțional. Pentru prima dată, au fost introduse conceptele "structurii blocului programului" și "distribuția dinamică a memoriei";

 La mijlocul anilor '60 din secolul al XX-lea, a fost creat un limbaj de programare specializat pentru începători - de bază. Se caracterizează prin simplitatea dezvoltării și de prezența mijloacelor universale pentru rezolvarea sarcinilor științifice, tehnice și economice, precum și sarcini, de exemplu, jocurile.

Toate limbile enumerate mai sus au fost axate pe diferite clase de sarcini, dar au fost într-un fel sau altul au fost legate de o arhitectură specifică de calculator.

 În 1963-1966, a fost creată o limbă universală multifuncțională PL-1. Această limbă este bine adaptată pentru procesele de cercetare și planificare, modelarea, rezolvarea sarcinilor logice, dezvoltarea sistemelor de suport matematic.

 Limba Pascal (Pascal) (1968-1971GG) - Limba de programare procedurală este cea mai populară pentru PC, care este aplicată în prezent cu succes. Limba Pascal se bazează pe o sarcină comună privată (mai simplă și mai mică în volum). Principiile de bază cu care posedă Pascal pot fi: a) programarea structurală, care se bazează pe utilizarea subrutinelor și a structurilor independente de date; b) programarea "de sus în jos" când sarcina este împărțită în sarcini simple, rezolvate independent. Apoi soluția problemei inițiale este complet acoperită.

 La procedura de programare limbajele includ limba iadului (1979 d), limba este numită după primul programator al doomelor de lavlayers Bairon. Acesta are modularitatea structurilor.

(Începutul anilor '70) se referă, de asemenea, la limbi de programare procedurală. Opțiunea inițială a fost planificată ca o limbă pentru implementarea sistemului de operare UNIX în locul asamblorului. Una dintre caracteristicile limbii Si este că diferențele dintre expresiuni și operatori sunt netezite, ceea ce îl aduce în limbile de programare funcțională. În plus, nu există niciun concept de procedură în limba C și utilizarea subrutine se bazează pe conceptul unei funcții care poate combina capacitățile procedurii. Pe de o parte, pe setul de structuri de control și structuri de date, acesta poate fi atribuit limbilor la nivel înalt, iar pe cealaltă - are un set de mijloace de acces direct la nodurile funcționale ale computerului, ceea ce înseamnă că poate să fie folosit ca un limbaj de operare.

Programare orientată pe obiecte (OOP) - Aceasta este o metodă de programare, atunci când se utilizează principalele elemente ale programelor sunt obiecte. În limbile de programare, obiectul obiectului este implementat ca un set de proprietăți (structuri de date caracteristice acestui obiect), metode de procesare (subrutine pentru schimbarea proprietăților lor) și evenimente la care acest obiect poate reacționa și, de obicei, de regulă , pentru a schimba proprietățile obiectului. Combinarea datelor și tratarea procedurilor de procesare într-un singur obiect se numește încapsulare și este unul dintre cele mai importante principii ale OOP.

Un alt concept fundamental este clasa. Clasa este un șablon bazat pe care poate fi creat un obiect de program specific, descrie proprietățile și metodele care determină comportamentul obiectelor din această clasă. Fiecare obiect specific având structura acestei clase se numește o instanță de clasă.

Următoarele principii cele mai importante ale OOP sunt moștenirea și polimorfismul. Moștenirea implică crearea de noi clase pe baza existenței și permite copilului să aibă un descendent (moștenit) toate proprietățile clasei părinte.

Polimorfismul înseamnă că instalațiile născute au informații despre metodele pe care ar trebui să le utilizeze în funcție de care se află lanțurile în care sunt.

Un alt principiu major al OOP este modularitatea - obiectele cuprind o definiție completă a caracteristicilor acestora, nici o definiție a metodelor și proprietăților nu ar trebui să fie localizate în afara acesteia, aceasta face copierea liberă și introducerea unui obiect altora.

Cele mai avansate limbi de programare sunt C ++ și Java. De la mijlocul anilor '90, multe limbi orientate pe obiecte sunt implementate ca sisteme de proiectare vizuală în care partea de interfață a produsului software este creată în modul de dialog, practic nici un operator de scriere software. Sistemele de design vizuale orientate pe obiecte includ GVUAL Basic, Delphi, C ++ Builder, Visual C ++. VBA Language (Visual Basic pentru aplicație) - Limba aplicației Microsoft Office (Excel, Word, Point, etc.). VBA respectă sintaxa principală a regulilor lingvistice și de programare ale dialectelor de bază, vă permite să creați macrocomenzi pentru a automatiza unele operații și interfața grafică de utilizator, integrare între diferite produse software.

Limbi de programare declarative

Acestea includ limbi de programare funcționale și logice. Programarea funcțională este o modalitate de elaborare a programelor în care singura acțiune este o funcție de funcționare. Programarea funcțională nu utilizează memoria ca locație pentru stocarea datelor și, prin urmare, nu sunt utilizate variabile intermediare, alocări și cicluri. Conceptul cheie în limbile funcționale este o expresie. Programul scris în limba funcțională este o secvență de descriere a funcțiilor și a expresiilor. Expresia este calculată de complexul informativ la simplu. Toate expresiile sunt înregistrate sub formă de liste. Prima limbă a fost creată în 1959 a fost creată în 1959. Această limbă vă permite să procesați cantități mari de informații textuale. Programarea logică este programarea în ceea ce privește logica. În 1973 a fost creată limba de inteligență artificială Prolog (Prolog) (programarea în logică). Programul de prolog se bazează pe secvența faptelor și regulilor, apoi aprobarea pe care Prologul încearcă să o dovedească cu ajutorul regulilor. Limba însăși caută o soluție folosind metodele de căutare și comparare care sunt așezate în ea. Programele logice nu se disting prin mare viteză, deoarece procesul de execuție a acestora este redus la construirea lanțurilor directe și inverse de raționament cu o varietate de metode de căutare.

Privire de ansamblu asupra limbajelor de programare

Asamblare

Limbile de programare a calculatorului sunt împărțite în 2 grupuri principale:

1) limbi de nivel scăzut;

2) limbi de nivel înalt.

Limbile de nivel scăzut includ limbile de asamblare. Ei au primit numele lor în numele programului de sistem al asamblorului, care convertește programele sursă scrise în astfel de limbi direct la codurile comenzilor mașinilor. Părțile aici sunt operatori, iar rezultatul ansamblu al secvenței de comenzi de mașină Limbajul asamblor combină avantajele limbajului comenzilor mașinilor și unele caracteristici ale limbilor la nivel înalt. Asamblorul oferă posibilitatea de a aplica nume simbolice în programul sursă și elimină programatorul de la munca obositoare (inevitabilă atunci când programarea în limba comenzilor mașinilor) pe distribuția memoriei computerului pentru comenzi, variabile și constante.

Asamblarea vă permite să utilizați flexibil și pe deplin capacitățile tehnice ale computerului, precum și limba comenzilor mașinilor. Traducătorul sursă din asamblare este mai ușor decât un traducător necesar pentru un limbaj de programare la nivel înalt. La asamblare, puteți scrie cât mai eficient și timp pentru a executa programul, precum și programul în limba comenzilor mașinii. Această demnitate este absentă în limbi de nivel înalt. Această limbă este adesea folosită pentru a programa sisteme în timp real, procese tehnologice și echipamente, asigurând funcționarea de informații și complexe de măsurare. Astfel de sisteme au de obicei cerințe ridicate pentru volumul memoriei mașinii ocupate. Adesea limba de asamblare este completată cu mijloace de formare a unui macrocomand, fiecare fiind echivalentă cu un întreg grup de comenzi de mașini. O astfel de limbă se numește limba macrob-ului. Utilizarea blocurilor de "construcție" de mac și aduce limba asamblorului la limbajul de nivel înalt. Limba dependentă de mașini asamblate, adică reflectă caracteristicile arhitecturii unui anumit tip de calculator

Pascal.

Limba de programare Pascal a fost dezvoltată de profesorul Departamentului de Inginerie Computer al Institutului Federal al Tehnologiei Elvețiene Nikolas Virgin în 1968 ca o alternativă la limbile de programare existente și toate complicate, cum ar fi PL / 1, Algol, Fortran. Dezvoltarea intensivă a Pascal a condus la apariția în 1973, standardul său sub forma unui mesaj revizuit, iar numărul de traducători din această limbă în 1979 a depășit 80. La începutul anilor '80, Pascal și mai mult și-a întărit poziția cu apariția MS -Pracal și turbo traducători -pascal pentru PEVM. Din acest moment, Pascal devine una dintre cele mai importante și utilizate limbi de programare. Este esențial ca limba să fie mult peste scopul interesului profesional academic și restrâns și este utilizat în majoritatea universităților din țările foarte dezvoltate, nu numai ca un instrument de utilizator. Cea mai importantă caracteristică a Pascal este ideea încorporată a programării structurale. O altă caracteristică esențială este conceptul de structură de date ca unul dintre conceptele fundamentale.

Principalele motive pentru popularitatea Pascalului sunt după cum urmează:

Limba ușoară vă permite să o stăpâniți rapid și să creați programe complexe algoritmic.

Instrumentele dezvoltate pentru prezentarea structurilor de date oferă comoditate atât a informațiilor numerice, cât și simbolice și biților

Prezența tehnicilor speciale pentru crearea traducătorilor din Pascal și-a simplificat dezvoltarea și a contribuit la limbă larg răspândită

Optimizarea proprietăților traducătorilor din Pascal vă permit să creați programe eficiente. Acest lucru a servit ca unul dintre motivele pentru utilizare Pascal ca limbă de programare a limbii.

În limba Pascal, sunt implementate ideile de programare structurală, ceea ce face ca programul să fie vizual și oferă oportunități bune de dezvoltare și depanare

Angajatul Bell Labs Denis Ritci a creat limba C în 1972 în timpul colaborării cu Ken Thompson, ca instrument de implementare a sistemului de operare Unix, cu toate acestea popularitatea acestei limbi a câștigat rapid cadrul unui anumit sistem de operare și sarcini specifice de programare a sistemului. În prezent, orice sistem instrumental și de operare nu poate fi considerat completă dacă compoziția sa nu include compilatorul de limbă C. Ritchee nu a inventat un SI pur și simplu din cap - prototipul a fost limba bi dezvoltată de Thompson. Limba de programare SI a fost dezvoltată ca instrument pentru practicieni. În conformitate cu acest scop, scopul principal al autorului a fost acela de a crea o limbă convenabilă și utilă în toate privințele.

Si este un sistem de programator de sistem și vă permite să urcați profund în cele mai subtile mecanisme de procesare a informațiilor pe un computer. Deși limba necesită un programator de mare disciplină, nu este strict în revendicările formale și permite formulări scurte.

C - Limba modernă. Acesta include acele modele de management care sunt recomandate de teoria și practica programării. Structura sa încurajează programatorul să utilizeze design descendent, programare structurală și module pas cu pas.

C - Limba puternică și flexibilă. Majoritatea sistemelor de operare UNIX, compilatoarelor și interpreților Fortran Limbi, Pascal, Lisp și Baisk sunt scrise tocmai cu ajutorul său.

C - Limba convenabilă. Este suficient structurată pentru a menține un stil de programare bun și, în același timp, nu este legată de restricții strânse. Într-un anumit sens, limbajul Si este cel mai universal, pentru că În plus față de setul de mijloace inerente limbilor moderne de programare (structural, modularitate, tipuri de date specifice), acesta include software-ul pentru programarea practic la nivelul asamblorului. Un set mare de operatori și mijloace necesită un programator prudență, precizie și o bună cunoaștere a limbii cu toate avantajele și dezavantajele IHO.

C ++ a apărut la începutul anilor '80. Creat de Stustrup Bierian cu scopul inițial de a se salva și prietenii lor de la programare pe Assembler, Si sau diverse alte limbi de nivel înalt.

Potrivit autorului limbii, diferența dintre ideologia Si și C ++ este aproximativ după cum urmează: Programul de pe C reflectă procesorul "Metoda de gândire", iar C ++ este o metodă de gândire de gândire. Răspunzând cerințelor de programare modernă, C ++ se concentrează asupra dezvoltării unor noi tipuri de date a celor mai relevante concepte ale zonei alese de cunoștințe și sarcini ale cererii. Clasa este conceptul cheie al C ++. O descriere de clasă conține o descriere a datelor necesare pentru a reprezenta obiecte de acest tip și un set de operații pentru a lucra cu obiecte similare.

Spre deosebire de structurile tradiționale C și Pascal, membrii de clasă nu sunt numai date, ci și funcții. Funcții - Membrii clasei au acces privilegiat la date în cadrul obiectelor din această clasă și oferă o interfață între aceste obiecte și restul programului. Cu o lucrare ulterioară, nu este absolut necesar să ne amintim structura internă a clasei și mecanismul de funcționare a caracteristicilor încorporate. În acest sens, clasa este similară cu mobilierul electric - puțini oameni știu despre dispozitivul său, dar toată lumea știe cum să o folosească.

Limba C ++ este un mijloc de programare a obiectelor, cele mai recente metode de proiectare și implementare a programelor, care în decada actual vor înlocui cel mai probabil programarea procedurală tradițională. Scopul principal al creatorului limbii Dr. Biernn Strastard a fost echipat cu construcțiile C ++, permițând creșterea productivității programatilor și facilitarea procesului de mastering mare de produse software.

Abstractizarea, implementarea, moștenirea și polimorfismul sunt proprietățile necesare cu care are limba C ++, astfel încât aceasta nu este doar universală, precum și limba C, ci este limba obiectului. Fortran Fortran este o limbă largă distribuită, în special în rândul utilizatorilor care sunt angajați în modelarea numerică. Acest lucru se explică din mai multe motive:

Existența unor fonduri uriașe de programe de aplicare pe cetatea acumulate de-a lungul anilor, precum și prezența unui număr mare de programatori care utilizează în mod eficient această limbă;

Prezența unor traducători eficienți Morthrane pe toate tipurile de calculator și versiunea pentru diferite mașini este destul de standardizată, iar transferul de programe de la mașină la mașină nu este de obicei mare;

În orientarea inițială a Fortran asupra aplicațiilor fizice și matematice și tehnice; În special, a manifestat că pentru o lungă perioadă de timp a rămas singura limbă cu un tip integrat integrat încorporat și un set mare de funcții încorporate pentru a lucra cu astfel de variabile.

În perioada trecută, sa format o nouă metodologie și o filosofie de programare. De la începutul anilor '70, Ford a fost criticat meritat. În 1977, a fost adoptat un nou standard al Fortran-77. A durat mult timp pentru a crea un nou standard, dar acum este deja posibil să se presupună că dezvoltarea sa este finalizată și noul standard Fortran-90 a început să intre în practica utilizatorilor uRtrani. Numai pe mașinile IBM PC există mai mulți traducători, de exemplu, Watfor, Lap-Fortran etc. Dar cea mai mare distribuție pe mașinile de acest tip a primit diferite versiuni ale traducătorului Fortran-77. Traducătorul MS-Fortran 5.0 a fost lansat în 1990, aproape pe deplin respectă standardul FORTRAN-90. Cele mai mari programe științifice și tehnice de aplicații sunt scrise pe Fortran, deoarece are tolerabilitate și stabilitate, precum și datorită prezenței funcțiilor matematice și trigonometrice încorporate. O parte suplimentară și integrală a oricărui program de aplicație din Fortran este o bibliotecă grafică extinsă, care permite utilizarea diferitelor date și imagini grafice.

Limba a fost creată în principal în 1975 - 1980 ca rezultat al unui mare proiect întreprins de Departamentul de Apărare al SUA pentru a dezvolta un singur limbaj de programare pentru așa-numitele sisteme încorporate (adică sisteme de control ale complexelor automate care funcționează în timp real) . În primul rând, au fost destinate sisteme de control la fața locului pentru gestionarea obiectelor militare (nave, avioane, rezervoare, rachete, cochilii etc.). Prin urmare, deciziile luate de autori nu iau în considerare universale. Acestea trebuie să fie percepute în contextul caracteristicilor zonei selectate. Limbajul de adaptare a apărut ca urmare a unei concurențe internaționale de proiecte lingvistice organizate în 1978-1979. Participanții ar fi trebuit să fie satisfăcuți destul de dur, proiectați sub auspiciile Departamentului Apărării al SUA cu cerințele. Interesant, toate limbile care au coborât la ultimele runde ale acestui concurs au fost bazate pe Pascal. În acest sens, iadul poate fi caracterizat anterior ca Pascal, dezvoltat, ținând cont de cele cinci cerințe de bază enumerate mai sus. În același timp, autorii au mers în principal pe calea expansiunii Pascal cu elemente noi. Ca rezultat, sa dovedit un limbaj semnificativ mai complex.

Kobol.

Cobol este o limbă relativ veche, concepută în primul rând pentru cercetarea în sfera economică. Limba vă permite să lucrați eficient cu un număr mare de date, este saturată cu o varietate de capabilități de căutare, sortare și distribuție. Despre programele de pe un COBOL bazate pe utilizarea largă a limbii engleze, ei spun că sunt chiar ușor de înțeles cu cei care nu dețin Cobol, ca texte în acest limbaj de programare nu au nevoie de comentarii speciale. Astfel de programe sunt numite auto-documentare. Alte avantaje ale COBOL includ, de obicei, structura sa. Compilatoarele destul de puternice din această limbă sunt concepute pentru computere personale. Unele dintre ele sunt atât de eficiente încât programul Debugged pe un computer personal este ușor de transferat la computere mari.

Afișarea minusurilor nu trebuie amintite că numai cele mai simple calcule algebrice pot fi programate pe COBOL. Pentru calculele inginerie, această limbă nu este potrivită. Un alt motiv, care, într-o oarecare măsură, restrânge dezvoltarea limbii, este prezența unui comitet industrial special creat în Statele Unite, care produce standarde, în conformitate cu Comisia Guvernului. Așa cum se întâmplă întotdeauna în astfel de cazuri, firmele implicate în dezvoltarea de software nu se grăbesc să-și personalizeze sepurile la cerințele stricte ale Comisiei, nu există o concurență de versiuni și, în cele din urmă, pierde diseminarea limbii

PL / 1 a fost dezvoltat în 1964-1965 de IBM. PL / 1 se referă la numărul de limbi universale, adică vă permite să rezolvați probleme din diferite domenii: calcule numerice, procesarea textului, sarcinile economice etc. Prin capabilitățile sale, aceasta se suprapune astfel de limbi ca Fortran, Algol-60 ( Creat pentru calcule numerice), COBOL (pentru sarcini economice), deși, din cauza unor motive, aceste limbi ale PL / 1 nu au putut fi suprimate.

PL / 1 conține toate modelele de bază caracteristice așa-numitelor limbi la nivel înalt, precum și o serie de mijloace specifice, convenabil pentru programarea practică. Limba seamănă cu un designer cu un număr mare de piese - utilizatorul este suficient pentru a stăpâni numai acele părți ale limbii care sunt practic necesare pentru aceasta. Operatorii săi sunt mai degrabă tancuri, care de multe ori vă permit să obțineți o înregistrare a programului mai compactă decât în \u200b\u200balte limbi. Un programator PL / 1 cunoștințe dispare orice altă limbă a aceleiași clase sau clasa apropiată.

În același timp, PL / 1 are o serie de deficiențe care împiedică studiul și utilizarea limbii. Cele principale sunt astfel. În primul rând, există multe mijloace duplicate ale acestora greu de reținut, nu este clar că atunci când se aplică, în plus, reduce atât viteza de difuzare, cât și viteza executării programului. În al doilea rând, programele nu sunt în întregime independente de mașini.

Modul

Putem presupune că istoria limbajului începe în 1980, când Niklaus Wirth, unul dintre specialiștii teoriilor de informații remarcabile, cunoscut pentru majoritatea specialiștilor tehnician de calculator, în special ca Creatorul Pascal, a publicat o descriere a noului limbaj de programare numit modul. Spre deosebire de Pascal, care a fost planificat de limba pentru programarea de învățare, modulul de la început a fost o limbă pentru programatorii de sistem profesioniști, continuând cele mai bune tradiții ale predecesorului său și îmbogățind-le cu idei noi care îndeplinesc astfel de cerințe pentru limbi de programare ca structură , modularitatea și capacitatea de a expanda. La fel ca multe alte limbi de programare, modulul a fost supus evoluției, în timpul căruia numele său inițial a fost redone în numele modulului-2. În același timp, cu dezvoltarea limbii modulului, s-au creat noi compilatoare pentru el, cu toate acestea, nici unul dintre ele nu ar putea concura cu cea mai bună realizare a limbajelor Pascal și Si, de exemplu, dezvoltate de Borland. În acest domeniu de tranziție, cea mai bună perioadă a fost considerată a fi implementată de Logitech, care, în caracteristicile lor, pierd turbo Pascal și Turbo Si. Doar în 1988, după apariția sistemului de viteză maxim pe piața americană, Modulul-2 a făcut un loc demnă între limbile procedurale destinate programării sistemului. Încurajarea popularității sistemului de viteză maxim a contribuit mai mulți factori: convenabil și, în plus, mediul operațional este ușor de schimbat la cererea utilizatorilor, compilatorul rapid și editorul selectiv al conexiunilor. Dar cel mai semnificativ a fost faptul că programele create au fost caracterizate de o viteză mai mare și au ocupat mai mult spațiu în memorie.

Beysik.

Basic - Codul de instruire Simbolic al Best Beginner - "Codul Simbolic Universal de instrucțiuni pentru începători"). Descendentul direct al Fortran și încă cel mai popular limbaj de programare pentru computerele personale. Becisik a apărut în 1963 (numit autorul ar fi dificil, dar meritul principal în apariția lui, fără îndoială, aparține americanilor John Kemen și Thomas Kurtu). Ca orice beneficii, simplitatea lui Beysik sa întors, în special în versiunile anterioare ale dificultăților de structurare; În plus, Baisik nu a permis recursion - o tehnică interesantă care vă permite să faceți eficient și în același timp programe scurte.

Au fost dezvoltate un compilat puternic de baseball, care asigură nu numai vocabularul bogat și viteza mare, ci și posibilitatea de programare structurală. Potrivit unor programatori, cele mai interesante versiuni sunt Gwbasic, Turbo-Basic și Quick Basic.

La un moment dat, apariția de bază rapidă a marcat nașterea unei a doua generații de sisteme de programare în limba Baysik. Aceasta a oferit posibilitatea de programare modulară și procedurală, crearea de biblioteci, compilarea programelor gata făcute etc., care i-au adus la nivelul unor astfel de limbi clasice de programare, cum ar fi Si, Pascal, Fortran, etc, din cauza lipsei de lipsă Din standardul oficial al limbii Baysik, implementarea sa rapidă de bază a devenit un standard real. Liderii necondiționați printre diferitele versiuni ale Baysik au fost rapide 4,5 și PD-urile 7.1 din Microsoft, care au apărut la sfârșitul anilor '80.

Lisp.

Limba LISP a fost propusă de J. McCarthy în muncă în 1960 și sa axat pe dezvoltarea de programe de rezolvare a problemelor de natură non-numerică. Numele englez al acestei limbi - LISP este abrevierea expresiei de prelucrare a listei (prelucrarea listelor) și accentuează bine zona principală a utilizării sale. Conceptul de "listă" sa dovedit a fi foarte capabil. În formă de liste este convenabil să reprezinte expresii algebrice, grafice, elemente ale grupurilor finite, seturi, reguli de ieșire și multe alte obiecte complexe. Listele sunt cea mai flexibilă formă de prezentare a informațiilor în memoria computerelor. Nu este surprinzător faptul că există o limbă convenabilă special concepută pentru a gestiona liste, câștigat rapid popularitate.

După apariția lui Lisp, diferiți autori au propus o serie de alte probleme orientate în limba algoritmică în domeniul inteligenței artificiale, printre care agentul poate fi remarcat, snobol, reflux, prolog. Cu toate acestea, acest lucru nu a împiedicat că LUP să rămână limba cea mai populară pentru a rezolva astfel de sarcini. În timpul istoriei de aproape patruzeci de ani a existenței sale, au apărut o serie de dialecte ale acestei limbi: Common Lisp, Mac Lisp, Inter Lisp, standard Lisp, etc. Diferențele dintre ele nu poartă o natură fundamentală și sunt în principal reduse la o ușoară set diferit de funcții încorporate și o anumită diferență sub formă de programe de înregistrare. Prin urmare, un programator care a învățat să lucreze pe unul dintre ei poate stăpâni cu ușurință și oricare altul. Marele avantaj al LISP este orientarea sa funcțională, adică programarea se efectuează folosind funcții. Mai mult, funcția este înțeleasă de regulă, comparând elementele unei clase, elementele corespunzătoare ale unei alte clase. Procesul de comparație însăși nu afectează funcționarea programului, numai rezultatul este important - valoarea funcției. Acest lucru vă permite să scrieți și să depubpăsați cu ușurință complexe de software. Claritatea programelor, o distincție clară între funcțiile lor, absența efectelor secundare caerz atunci când sunt îndeplinite, este cerințe obligatorii pentru programarea unor astfel de sarcini complexe logic, care sunt sarcini de inteligență artificială. Disciplina de programare devine deosebit de importantă atunci când nici o persoană nu lucrează la program, ci un întreg grup de programatori.

Limba de programare LISP este destinată în primul rând pentru procesarea informațiilor simbolice. Prin urmare, este natural că, în lumea LISP, numărul este jucat departe de un rol major. Principalele tipuri de date din Lumy sunt numite "atom" și "perechea punctului".

Prolog

Limba de programare logică este destinată prezentării și utilizării cunoștințelor despre un anumit domeniu. Programele din această limbă constau într-un anumit set de relații, iar implementarea acesteia este redusă la încheierea unei noi relații bazate pe cele specificate. Prologul implementează o abordare declarativă, în care este suficientă descrierea sarcinii folosind reguli și declarații privind obiectele specificate. Dacă această descriere este destul de precisă, atunci calculatorul poate găsi independent soluția dorită.

Obiect Pal.

Obiectul Pal este un limbaj de programare puternic. Obiectul Pal este un obiect orientat, gestionat de evenimente, un limbaj de programare vizuală. La nivelul inițial al funcționalității obiectului PAL, puteți efectua operațiuni de date, creați meniuri speciale, precum și gestionarea sesiunii de introducere a datelor. Evenimente în obiect Pal generează comenzi care simulează efectul de utilizare a paradoxului în modul interactiv. Este posibilă automatizarea sarcinilor frecvente, precum și asupra tabelelor, formelor și rapoartelor de acțiune care nu erau disponibile în muncă interactivă. Obiectul Pal oferă, de asemenea, toate mijloacele de programare completă în mediul Windows. Puteți utiliza Obiect Pal pentru a crea sisteme completate care implementează un sistem de meniu special, sistem de ajutor, precum și tot felul de verificări de date. În Object Pal, vă puteți salva evoluțiile într-o bibliotecă dinamic componentă, accesul la care va avea mai multe forme. În plus, puteți stabili comunicarea cu alte biblioteci dinamice care conțin programul scris în astfel de limbi precum Si, C ++ sau Pascal.

Obiectul Pal poate fi utilizat ca instrument pentru crearea de programe offline. Puteți scrie aplicația Windows completă și o puteți rula sub paradox.

Obiectul PAL acceptă mecanismul dinamic de schimb de date ca atât clientul, cât și pe server. În plus, Object Pal sprijină mecanismul de lucru cu documente compozite ca client. În plus față de ceea ce sa spus, este posibil să se includă multimedia în aplicația dvs., furnizând aplicația efectuată prin efecte de sunet și animație.

Creat de BBSE, implementarea limbajului DBEE este o orientare a obiectului hibrid de succes și metode tradiționale de programare. A permis să creeze sisteme utilizând proiectarea obiectelor și să utilizeze recepții convenționale pentru procesarea înregistrărilor. Marele realizare a companiei B Bohr a fost că este foarte bine combinat tehnicile de programare și de programare procedurală. Prima versiune pentru Windows a dat utilizatorului cel mai puternic instrument obiect din piața software-ului bazei de date. Vă permite să creați noi clase de obiecte care posedă proprietățile moștenirii, încapsulării și polimorfismului. De asemenea, vă permite să programați aceste obiecte folosind comenzi DBASE tradiționale, ideal pentru gestionarea bazelor de date simple de masă. Toate acestea oferă un avantaj indiscutabil - fără o mare dificultate de tranziție la tehnicile de programare a obiectelor, tranziția este atât de complexă, de exemplu, ca în paradox DBMS.

Limba Java a apărut ca parte a proiectului pentru a crea software avansat (software) pentru diverse aparate de uz casnic. Implementarea proiectului a fost lansată în C ++, dar în curând a apărut o serie de probleme, cele mai bune mijloace de combatere a instrumentului în sine - limbaj de programare. A devenit evident că este nevoie de un limbaj de programare independent de platformă, care vă permite să creați programe care nu trebuie să compileze separat pentru fiecare arhitectură și se poate utiliza pe diferite procesoare în diferite sisteme de operare. Limbajul Java a fost obligat să creeze produse interactive pentru Internet. De fapt, majoritatea soluțiilor arhitecturale adoptate la crearea Java au fost dictate de dorința de a furniza sintaxă similară cu C și C ++. Java folosește acorduri aproape identice pentru a declara variabile, parametrii, operatorii și pentru a controla fluxul de executare a codului. Java adaugă toate caracteristicile bune C ++.

Trei elemente cheie United în tehnologia Java

Java prevede o utilizare largă a aplicațiilor de rețea activă, de încredere, dinamică, fără platformă, încorporate în paginile web. Appletele Java pot fi configurate și distribuite consumatorilor cu aceeași ușurință ca orice documente HTML.

Java eliberează puterea dezvoltării aplicațiilor orientate pe obiecte, combinând o sintaxă simplă și familiară cu un mediu de dezvoltare fiabil și convenabil. Acest lucru permite unui cerc larg de programatori să creeze rapid programe noi și noi aplicații.

Java oferă un programator un set bogat de clase de obiecte pentru o abstracție clară a multor funcții de sistem utilizate atunci când lucrează cu Windows, Network și pentru I / O. Trasmul cheie al acestor clase este acela că oferă crearea unei platforme independente de abstractizare pentru o gamă largă de interfețe de sistem.

Limbi de programare pentru rețele de calculatoare

Limbi de programare pentru rețelele de calculatoare sunt interpretate. Interpreții pentru aceștia sunt distribuiți gratuit, iar programele în sine se află în textele sursă. Astfel de limbi sunt numite scripturi - limbi.

Perl este o limbă interpretată creată de programul de zid de lard pentru a gestiona texte și fișiere mari și a decriptat ca o extracție practică și limbă de raport (limba pentru extragerea și raportarea practică practică). Folosind Perl, de exemplu, puteți crea un script care deschide unul sau mai multe fișiere, procesează informații și înregistrează rezultatele.

Perl este o limbă adaptată pentru procesarea fișierelor text arbitrare, extragerea informațiilor necesare de la acestea și emiterea de mesaje. Perl este, de asemenea, convenabil pentru scrierea diferitelor programe de sistem. Această limbă este ușor de utilizat, eficientă, dar este greu de spus despre el că este elegant și compact. Sintaxa expresiilor Perl este aproape de sintaxa C. Recursiunea poate fi o adâncime arbitrară. Deși Perl este adaptat pentru a scana fișiere text, poate procesa și date binare. Perl vă permite să utilizați expresii regulate, să creați obiecte, să introduceți o bucată de cod într-o perl către software-ul SI sau C ++ și permite, de asemenea, accesul la baze de date, inclusiv Oracle.

Cu invenția, World Wide Web, Perl sa dovedit a fi un instrument excelent pentru interacțiunea cu serverele web prin interfața comună Gateway (CGI) - o interfață de interacțiune comună. Perl Comenzi pot obține cu ușurință date dintr-o formă HTML sau altă sursă și pot efectua orice acțiune cu acestea.

Limba PHP. (1995-1997) are acces la accesul la baza de date și este utilizat de creatorii site-urilor dinamice din întreaga lume.

Limba Tcl / tk. (Sfârșitul anilor 1980) constă din comenzi puternice concepute pentru a lucra cu obiecte abstracte non-tip și vă permite să creați programe cu o interfață grafică.

Limba VRML. (1994) Creat pentru a organiza interfețe virtuale tridimensionale pe Internet.

Limba Xml.. Din 1996, lucrează la crearea unui limbaj universal al structurii documentului. Poate deveni un substitut pentru HTML.

Ieșire

Resurse utile

Revizuirea Aizili.

Unde este raportul?

Examinați Ranitka.

Re: Unde este raportul?
Totul va fi: -D

Feedback Shamagulova Elite

Revizuiți Mishina Alexander.

Mare raport. Am învățat multe despre limbile de programare.

Examinați Morozova Alexander.

Bineînțeles că aș dori să văd un raport sau cel puțin o prezentare sub orice formă.

Acest articol se bazează pe extinderea și importanța acesteia pentru sistemele informatice. Deci ar părea că o astfel de specială ar putea fi în expansiunea unui fișier software? Cu toate acestea, sperăm că cititorii vor putea obține o informație importantă și interesantă pentru ei înșiși. Abilitatea de a face față extensiilor va servi un serviciu bun, care va fi scris mai jos.

Ce extensie are c plus plus?

Această limbă de programare are propria denumire de fișiere. Denumirea CPP este o extensie specială utilizată pentru fișierele cu codul C ++. Acestea sunt încă pregătite să utilizeze (nu compilați) codul care poate fi editat și face modificări fără costuri și eșecuri semnificative în program. Cu această extensie, puteți afla care fișier conține text pe "Si" (limba de programare care este acum foarte populară).

Extinderea și importanța acesteia în programare

De ce este necesar să se extindă numele fișierului care este utilizat de computer? Faptul este că computerul poate gestiona multe tipuri diferite de fișiere, atât în \u200b\u200bcadrul sistemului de operare instalat, cât și prin utilizarea unui software suplimentar. Un exemplu de astfel de software poate fi instalat pluginuri în browsere sau interpreți ai diverselor limbi de programare care pot gestiona programe de rulare. Aici, pentru a recunoaște modul în care trebuie utilizat calculatorul, care este aplicat codul mașinii pentru a reda fișierul, iar extensiile sunt necesare. Recunoaște tipul de fișier, aceste informații vor fi furnizate de datele disponibile. Astfel, extensia CPP este un fișier care conține documentul C ++. După recunoaștere, interpretul va putea să o deschidă, iar utilizatorul va putea să lucreze cu documentul.

Care este extensia de nume de fișier?

Dar să vorbim despre extensiile de nume de fișiere din punctul de vedere al informaticii. Cu aceasta, a fost deja determinată - este necesar să identificați formatul sau tipul de fișier. Deconectați extensia în numele fișierului utilizând un punct. Până la 95, Windows are o limită a numărului de caractere în expansiune: nu au putut fi mai mult de trei. În sistemele moderne nu există o astfel de restricție. Mai mult, în sistemele de fișiere moderne pot exista fișiere care au mai multe tipuri de expansiune. Toți urmează punctul. La cum ar fi CPP, acest lucru este adevărat, nu se aplică.

Un astfel de dar al dezvoltatorilor se bucură adesea de fraude. Fișierele dvs. rău intenționate pe care le sugerează pe computerele utilizatorilor, atacatorii sunt adesea mascați pentru alte programe, ascunde extinderea principală a fișierului (în viruși și diverși troieni diferă de programele obișnuite). Poate fi chiar ca toate fișierele reale să se ascundă sau să se îndepărteze, în schimb, se potrivesc complet diferit. Și se pare că CPP nu este deloc CPP, ci un virus de calculator. Protecția bună față de acest tip de fraudare este o comandă de afișare a tuturor tipurilor de extensii. Puteți activa această caracteristică în "Panoul de control", este suficient să găsiți numai elementul necesar. Și apoi puteți fi calm pentru fișierele C Plus plus și încrezător că nu veți conduce un program dăunător în schimb. Deși este întotdeauna necesar să urmăriți extinderea fișierelor executabile.

Precizia informațiilor specificate în expansiune

Uneori, extensia indică în mod inexact tipul de fișier și nu rezolvă toate problemele posibile care pot apărea în procesul de utilizare a diferitelor programe. Deci, extensia. Txt, familiar cu mulți, nu oferă informații computerului despre care fișier de codificare. Prin urmare, atunci când deschideți fișiere text, puteți vedea foile de caractere incomprehensibile. Mai ales trist pentru a vedea un astfel de stat de document dacă a fost folosit pentru a scrie un cod de program. În astfel de cazuri, codificarea fișierelor trebuie modificată până când calculatorul poate oferi un text adecvat. Este posibil pe baza unor caractere incorecte pentru a încerca să calculeze codificarea necesară, dar trebuie să știți ce codificare cu privire la care duce la care duce. Pentru fișierele Vordice, este de asemenea folosită aceeași prelungire, ceea ce nu face clar cu ce fișier o persoană se ocupă de: cu tipul obișnuit sau formatat. De asemenea, extensia nu indică ce versiune este utilizată, care se manifestă bine atunci când încearcă să deschidă versiunile documentelor timpurii în medii de procesare ulterioară, ca în cazul Microsoft Office.

Alte metode și oportunități de a specifica formatul

Există și alte caracteristici pentru a specifica pentru sistemul de fișiere. Dar ele nu sunt comune, și cel mai probabil nu ați auzit niciodată:

  • Salvarea informațiilor despre formatul de fișier din sistemul de operare în sine. Dezavantaje apar dacă doriți să treceți la un alt computer și să lucrați cu același fișier.
  • Utilizarea așa-numitului "numere magice". Aceasta este atunci când o anumită secvență de octeți este criptată în fișierul în sine, ceea ce indică toate informațiile necesare pentru funcționarea fișierului. Are un anumit potențial, dar producătorii de software sunt necesari.
  • Pentru unele sisteme UNIX, a fost dezvoltată o funcție care lasă denumiri speciale la începutul unui fișier destinat interpretului.

Înainte de a dori să studiați un limbaj de programare, trebuie să știți puțin despre istoria lor și unde se aplică.

Vă prezint o scurtă trecere în revistă a 25 de limbi de programare bine cunoscute. Pornind de la cele mai renumite la mai puțin populare. Articolul este făcut pentru nou-veniți în domeniul programării. Puteți citi despre fiecare limbă și puteți alege cel pe care îl doriți să explorați mai mult.

Înainte de a începe să învățați limbi de programare, vă recomandăm să explorați cursul software-ului.

1. JavaScript.

Prototype orientat spre limbajul de programare pitoresc. JavaScript a fost creat inițial pentru a face paginile web "în viață". În browser, ele sunt conectate direct la HTML și, de îndată ce pagina este încărcată - imediat executată.

Când a fost creată limba JavaScript, el a avut inițial un alt nume: "livrare Livescript". Dar apoi limba Java a fost foarte populară, iar comercianții au decis că un nume similar ar face o nouă limbă mai populară.

A fost planificată că JavaScript ar fi un fel de "frate mai mic" Java. Cu toate acestea, povestea ordonată în felul său, JavaScript a crescut puternic, iar acum este o limbă complet independentă, cu specificațiile și Java nu are nimic de-a face.

2. Java.


Limba de programare orientată strict orientată spre obiect. Aplicațiile Java sunt de obicei difuzate la un cod special de octet, astfel încât să poată funcționa pe orice arhitectură de calculator utilizând o mașină java virtuală.

Avantajul acestei metode de execuție a programelor este independența completă a codului byte din sistemul de operare și echipament, care vă permite să efectuați aplicații Java pe orice dispozitiv pentru care există o mașină virtuală corespunzătoare. O altă caracteristică importantă a tehnologiei Java este un sistem de securitate flexibil, în care execuția programului este monitorizat pe deplin de o mașină virtuală.

Inițial, limba a fost numită de stejar ("Oak") a fost dezvoltată de James Gosling pentru programarea dispozitivelor electronice de uz casnic. Ulterior, a fost redenumit Java și a început să fie folosit pentru a scrie aplicații client și software de server.

3. PHP.


Este un limbaj general interpret general, cu o sursă deschisă (limbajul scripting). PHP a fost creată special pentru dezvoltarea web și codul pe acesta poate fi implementat direct în codul HTML. Sintaxa limbii provine din C, Java și Perl și este ușor de explorat.

Scopul principal al PHP este de a oferi dezvoltatorilor web posibilitatea de a crea rapid pagini web generate dinamic, cu toate acestea, domeniul aplicatii PHP nu se limiteaza la aceasta.

4. Python.

Limba de programare cu scop general la nivel înalt sa axat pe îmbunătățirea productivității dezvoltatorului, lizibilitatea codului și dezvoltarea aplicațiilor web. Sintaxa de kernel Python este minimizată. Codul din Python este organizat în funcții și clase care pot fi combinate în module.

5. C #


Limba de programare orientată spre obiect. Dezvoltat în 1998-2001 de către un grup de ingineri sub conducerea lui Anders Halesberg în Microsoft ca o limbă pentru dezvoltarea aplicațiilor pentru platforma Framework Microsoft .NET. C # se referă la familia de limbi cu o sintaxă similară C, din care sintaxa sa este cea mai apropiată de C ++ și Java.

Limba are tastarea statică, susține polimorfismul, operatorii de supraîncărcare, delegați, atribute, evenimente, proprietăți, tipuri și metode generalizate, iteratori, funcții anonime cu suport de închidere, linq, excepții, comentarii în format XML.

6. C ++.


Compilate, scrise în mod static de programare a scopului general. Este una dintre cele mai frecvente limbi din lume. Google Chrome, Mozilla Firefox, produsele Winamp și Adobe au fost proiectate utilizând C ++. În plus, unele sisteme moderne și sisteme de operare au fost dezvoltate pe C ++ datorită procesării rapide și a compilării.

7. Ruby.


Limba de programare simplă și lizibilă axată pe dezvoltarea aplicațiilor web. Proiectat de Yukihiro Matsumto în 1995. Limba are un independent de sistemul de operare pentru a implementa multithreading, tastarea dinamică strictă, colectorul de gunoi.

Scopul principal Ruby este crearea de programe simple și în același timp de programe de înțeles, unde viteza programului nu este importantă, ci un mic timp de dezvoltare, mai clar și simplitate de sintaxă. Limba urmează principiul "cel mai mic surpriză": programul trebuie să se comporte așa cum se așteaptă programatorul.

8. CSS.


Foi de stil cascading (mese de stil cascadă) Descrierea formală a aspectului unui document scris folosind un limbaj de marcare.
Este folosit în cea mai mare parte ca un instrument de descriere, proiectarea apariției paginilor web scrise utilizând limbile HTML și XHTML markup, dar poate fi aplicată și la orice documente XML.

9. C.


Compilați limbajul de programare cu scop general scris static. Limba C a fost proiectată de Dennis Ritchch în 1972 în Bell Labs. Este predecesorul unor astfel de limbi de programare ca C ++, Java, C #, JavaScript și Perl. Din acest motiv, studiul acestei limbi duce la înțelegerea și alte limbi. Limba C este utilizată pentru a dezvolta aplicații la nivel scăzut, deoarece este considerată cea mai apropiată de hardware.

10. Obiectiv-C


Compilați limba de programare orientată spre obiect utilizat de Apple Corporation, construită pe baza limbii mici și a paradigmei. Limba Obiectiv-C este o bruscăre a limbii Si, astfel încât codul C este pe deplin înțeles de compilatorul obiectiv-C. Limba este utilizată în principal pentru Mac OS X (cacao) și GnUstep - implementări ale unei interfețe Openstep obiect orientate spre obiect. De asemenea, limba este utilizată pentru iOS (touch de cacao).

11. Shell.

Nu este atât de mult o limbă ca interpret de comandă (limbă de comandă). Scripturile sale sunt utilizate pentru automatizarea actualizărilor software. Conține modele standard pentru cicluri, ramificare, caracteristici ale funcțiilor. Familia sistemelor de operare compatibile cu OIX OS, limba Shell este utilizată ca limbă standard de gestionare a sarcinilor.

12. R.


Limba de programare pentru prelucrarea datelor statistice și lucrul cu grafică, precum și un software open source Computing ca parte a proiectului GNU. R este utilizat pe scară largă ca software de analiză a datelor statistice și a devenit de fapt un standard pentru programele statistice. Interfața liniei de comandă este utilizată în R.

13. Perl.


Limba de programare generală de nivel general interpretabilă la nivel înalt. Numele limbii este o abreviere care este decriptat ca o extracție practică și un limbaj de raportare - "Limba practică pentru extragerea datelor și elaborarea rapoartelor". Caracteristica principală a limbii este oportunitățile bogate pentru a lucra cu text, inclusiv lucrul cu expresii regulate, construite în sintaxă. În prezent, este folosit pentru a efectua o gamă largă de sarcini, inclusiv administrarea sistemului, dezvoltarea web, programarea rețelei, jocul, bioinformatica, dezvoltarea interfețelor de utilizator grafică.

14. Scala.


Limba de programare multipadidică proiectată de software-ul scurt și de tip pentru crearea unui software de componente ușor și rapid, combinând programarea funcțională și orientată spre obiect. SCALA - Programele sunt în mare parte similare cu programele Java și pot interacționa liber cu codul Java.

15. Du-te.


Compilați limba de programare multi-filetată dezvoltată de Google. Limba Go a fost dezvoltată ca un sistem de programare a sistemului pentru a crea programe extrem de eficiente care operează pe sisteme distribuite moderne și procesoare multi-core. Acesta poate fi considerat ca o încercare de a crea o substituție a limbii Si. Atunci când se dezvoltă, a fost acordată o atenție deosebită asigurării unei compilații extrem de eficiente. Programele Go sunt compilate în codul obiect și nu necesită executarea unei mașini virtuale.

16. SQL.

Limba de interogări structurate. Limba de programare formală non-concentrată utilizată pentru a crea, modifica și gestiona datele într-o bază de date relațională arbitrară, gestionată de sistemul de gestionare a bazelor de date corespunzător. SQL este în primul rând o limbă logică informativă concepută pentru a descrie, modifica și extrage datele stocate în baze de date relaționale. Fiecare ofertă SQL este fie o solicitare de date din baza de date, fie accesul la baza de date, ceea ce duce la o modificare a datelor din baza de date.

17. Haskell.


Limba de programare generală standardizată standardizată. Este una dintre cele mai frecvente limbi de programare cu limbi de calcul amânate. Caracteristica distinctă a limbii este o atitudine gravă față de tastarea. Haskell limba excelentă pentru învățare și pentru experimentele cu tipuri complexe de date funcționale.

18. Swift.


Deschideți Limba de programare cu scop general multiparadigal compilat. Creat de Apple în primul rând pentru IOS și OS X. Dezvoltatorii Swift funcționează cu cadre de cacao și cacao și compatibile cu codul de bază Apple, scrise pe Obiectiv-C. Swift a crezut cât de ușor citirea și rezistența la erorile programatorului, mai degrabă decât cele precedente anterior de Obiectiv-C. Swift a împrumutat destul de mult de la obiectiv-c, dar nu este determinată de semne, ci tipuri de variabile pe care le procesează compilatorul. Pentru un principiu similar, multe limbi de scripting funcționează.

19. MATLAB.


Limba de programare interpretabilă de nivel înalt, inclusiv structurile de date bazate pe matrice, o gamă largă de funcții, un mediu de dezvoltare integrat, caracteristici orientate pe obiecte și interfețe la programele scrise în alte limbi de programare. Programele scrise pe MATLAB sunt două tipuri - funcții și scripturi. Funcțiile au argumente de intrare și ieșire, precum și propriul spațiu de lucru pentru stocarea rezultatelor intermediare ale calculelor și variabilelor. Scripturile utilizează, de asemenea, spațiul de lucru general. Atât scripturile, cât și funcțiile sunt stocate ca fișiere text și sunt compilate în codul mașinii dinamic dinamic.

20. Visual Basic


Limba de programare, precum și un mediu integrat de dezvoltare software dezvoltat de Microsoft. Limba de bază vizuală a moștenit spiritul, stilul și sintaxa strămoșului său - limba de bază, care are o mulțime de dialecte. În același timp, vizual Basic combină procedurile și elementele limbajelor de programare orientate spre obiecte și orientate spre componente.

Visual Basic este, de asemenea, un instrument bun pentru dezvoltarea rapidă a aplicațiilor rad de date pentru sistemele de operare Microsoft Windows. Multe componente gata furnizate cu mediul sunt concepute pentru a ajuta programatorul să înceapă imediat să dezvolte logica de afaceri a aplicației, fără a distrage atenția la scrierea codului de pornire a programului.

21. Delphi.


Limba de programare imperativă, structurată, orientată pe obiecte, cu variabile stricte de tipare statică. Domeniul principal de utilizare este scrisul software-ului aplicat.

Astăzi, împreună cu sprijinul software-ului Windows de 32 și 64 de biți, implementat capacitatea de a crea aplicații pentru Apple Mac OS X, precum și pentru Google Android (executat direct pe procesorul ARM).

22. Groovy.


Limba de programare orientată pe obiecte, proiectată pentru platforma Java, ca o adăugare la limba Java cu capabilități Python, Ruby și SmallTalk. Groovy utilizează o sintaxă asemănătoare Java cu o compilație dinamică în codul octetului JVM și operează direct cu un alt cod Java și biblioteci. Limba poate fi utilizată în orice proiect Java sau ca un limbaj de scripting.

23. Visual Basic .NET


Limba de programare orientată pe obiecte, care poate fi văzută ca următoarea schimbare a evoluției Visual Basic, implementată pe platforma Microsoft .NET. Vb.net nu are compatibilitate înapoi cu o versiune anterioară (Visual Basic 6.0). Dezvoltarea proiectelor de versiuni vechi (* .VBP) este posibilă numai după conversia preliminară în formatul Vb.net cu un master special (vrăjitor de migrare); Cu toate acestea, după conversie, este necesară rafinamentul manual esențial al textelor.

24. D.

Limba de programare compatibilă multipadigală creată de Walter luminos de la Marte digitale. Inițial, D a fost conceput ca o reengineering C ++, în ciuda efectului semnificativ al C ++, nu este opțiunea sa. De asemenea, limbajul cu experiență în limbile de programare Python, Ruby, C #, Jaffel, Eiffel.

25. Asamblarea.


Limba de nivel scăzut orientată spre mașină cu comenzi, care nu sunt întotdeauna relevante pentru comenzile mașinii, care pot furniza posibilități suplimentare ca un macrocomand; Autocode, limbi avansate de programare la nivel înalt, cum ar fi expresii, macro-uri, mijloace de furnizare a modularității software.

Limba de asamblare - Sistemul de desemnare folosit pentru a se supune formei citite de programe înregistrate în codul mașinii. Limba de asamblare permite programatorului să utilizeze codurile mnemonice alfabetice ale operațiunilor, la discreția sa, să aloce nume simbolice cu computere cu calculatoare și memorie, precum și scheme de adresare ușor de utilizat. În plus, vă permite să utilizați sisteme de numerotare diferite pentru a reprezenta constante numerice și face posibilă marcarea șirurilor programului cu etichete cu nume simbolice, astfel încât să le puteți contacta.

Nu am luat toate limbile. Ele nu sunt atât de mult în cererea de programatori profesioniști. Sarcina mea este finalizată, acum puteți alege o limbă potrivită și cuceriți-o. Mult noroc pentru tine în eforturile tale.

Scrierea celor mai moderne programe de calculator se efectuează atunci când se utilizează limbi de nivel înalt. Este demn de remarcat faptul că multe dintre ele au fost dezvoltate în anii '60 și 70, dar sunt încă relevante. Ce alte fapte despre limbile la nivel înalt putem sărbători? Care sunt cele mai comune soiuri ale soluțiilor relevante?

Esența programelor la nivel înalt pentru scrierea programelor

Limba de programare la nivel înalt - Instrument legat de categoria independentă de mașini. Ce inseamna asta? Faptul este că limbile de programare sunt împărțite în mai multe categorii.

Există un cod de mașină: un set de algoritmi care sunt proiectați pentru a gestiona utilizatorul direct de elementele hardware ale computerului. Entitatea lor va fi complet dependentă de mașină: numai anumiți algoritmi sunt potriviți pentru anumite tipuri de PC-uri.

Există limbi de asamblare. De fapt, acestea sunt o suprastructură față de cele concepute pentru controlul la nivel scăzut al componentelor hardware PC prin intermediul unui cod al mașinii. Dar, în multe semne, limbile de asamblare sunt, de asemenea, acceptate pentru a se referi la mașina dependentă de mașină. De regulă, ele sunt adaptate la o varietate specifică de componente hardware PC. Sarcina lor principală este de a simplifica gestionarea utilizatorului a computerului prin intermediul unor comunicări la nivel scăzut.

La rândul său, limba de programare la nivel înalt permite utilizatorului să interacționeze cu PC-ul, indiferent de ce echipament special este instalat pe computer. Prin urmare, ar trebui să fie atribuită independenței mașinilor. La scrierea sistemelor de operare, limbajul de programare la nivel înalt este cel mai adesea implicat. Dar există un sistem de operare, care este scris pe asamblare. Nivelurile scăzute și înalte pot fi utilizate simultan. O persoană, oferind echipe de nivel înalt de la PC, oricum, să le transmită componentelor hardware specifice, iar această funcție poate fi implementată atunci când se utilizează limbile de asamblare simultan cu nivel înalt, care este implicat în structura operației sistem.

Traducător

Cele mai importante elemente care sunt în limbi de programare la nivel înalt sunt traducători. Funcția lor poate fi diferită. Printre domeniile-cheie de aplicare a traducătorilor - "traducere" de comenzi generate în limba de programare la nivel înalt, în codul mașinii, de exemplu, la o componentă hardware specifică a PC-ului, de exemplu, procesorul. Traducătorii care efectuează această funcție sunt numiți și compilatoare. Există o altă varietate de componente relevante - interpreți. Acestea sunt destinate, la rândul lor, pentru "traducerea" echipelor la nivel înalt din cele care sunt de înțeles cu sistemul de operare sau în orice program.

Clasificarea limbilor la nivel înalt

Limbile de programare la nivel înalt pot fi clasificate pentru diferite baze. O schemă pentru care sunt împărțite în următoarele soiuri principale sunt comune:

Orientat procedural (operează ca instrument atunci când procesează informații în orice etapă a calculelor);

Orientate spre probleme (utilizat ca mijloc de rezolvare a sarcinilor industriei și aplicate formate prin extinderea aplicațiilor PC-urilor);

Cu toate acestea, orientate spre obiecte (pot fi cazuri particulare ale primelor două tipuri de limbi adaptate la utilizarea unei game largi de dezvoltatori cu diferite niveluri de preparare, de exemplu, sub forma unei soluții cu o interfață vizuală).

Acum, luați în considerare unele limbi istorice și moderne de programare la nivel înalt, care corespund acestei clasificări.

Limbi orientate procedurale

Aceasta poate fi atribuită Fortran. Este considerat primul limbaj de programare la nivel înalt creat pentru utilizarea pe scară largă. Se caracterizează printr-o structură simplă. Limbile orientate spre procedural aparține și Beysik. Este considerată una dintre cele mai frecvent utilizate programare. Un exemplu al unui alt limbaj orientat procedural - Si. Inițial, a fost creat pentru UNIX OS. La baza sa, limba C ++ a fost ulterior creată, completată de instrumente de programare orientate pe obiecte. O altă limbă care aparține categoriei în cauză este Pascal. Adesea implicate și în programarea de formare. Posibilitățile acestei limbi permit ca acesta să fie folosit ca un instrument foarte puternic pentru dezvoltarea unor specii profesionale de software.

Limbi orientate spre probleme

Acestea includ Lisp, Prologue. Prima limbă a fost dezvoltată în 1962 - la câțiva ani după crearea Fortran. Este considerat, într-un fel ca al doilea din istorie. Implicați activ ca un instrument pentru lucrarea programatorilor cu șiruri de caractere. În practică, Lispul a fost utilizat în sistemele clasificate ca expert, precum și cele destinate calculelor analitice. Prologul a fost utilizat pe scară largă în domeniul programării logice. În practică, cel mai adesea implicat în gestionarea algoritmilor de inteligență artificială în sistemele respective.

Limbi orientate pe obiecte

Acum studiem exemplele de limbi de programare la nivel înalt care se referă la categoria orientată spre obiecte. Printre aceștia - Visual Basic, Delphi, Visual Fortran, remarcat peste C ++, precum și Prolog ++. De fapt, toate acestea se bazează pe limbi orientate procedural. Cu toate acestea, se presupune că este un plus semnificativ al elementelor vizuale ale conducerii, pentru a dezvolta ulterior algoritmii necesari de către dezvoltatori obișnuiți cu alte instrumente. Astfel, primul limbaj de programare la nivel înalt - Fortran - poate fi studiat de către experții IT prin posibilitățile vizuale Fortran. O metodă similară poate fi trimisă rapid o bază sau un prolog.

Se efectuează, la rândul său, când se utilizează programarea Delphi în limba obiectului de nivel înalt Pascal. Există un număr mare de alte medii de dezvoltare software, clasificate ca un limbaj orientat pe obiecte. Acest domeniu de tehnologii de dezvoltare se dezvoltă în mod activ.

FORTRAN și LISP - prima și a doua limbă la nivel înalt

Vom studia mai mult, după cum a apărut primul limbaj de programare la nivel înalt - Fortran, precum și Lisp, considerat al doilea. În 1954, dezvoltatorii de la IBM, condus de John Bacus, au creat o limbă prin care programatorii au reușit să atenueze în mod semnificativ interacțiunea cu PC-ul, care până la momentul a fost efectuat prin comenzi de mașină sau asamblare. El a fost numit FORTRAN și a devenit în curând cunoscut în URSS sub punctele ruși. Fortran a devenit un instrument popular pentru computere științifică.

Principalul element revoluționar propus de specialiștii IBM, a devenit de fapt același compilator, conceput pentru a fi o alternativă la asamblare. În primii ani de practică de scriere a programelor atunci când se utilizează Fortran, mulți dezvoltatori au considerat compilatorul nu este o soluție destul de reușită, în primul rând, în ceea ce privește costurile forței de muncă. Multe coduri de mașini au fost într-adevăr pregătite mai ușor decât atunci când este implicat traducătorul. Cu toate acestea, ca o creștere rapidă a performanței calculatorului, programatorii au început să realizeze acest lucru fără a utiliza compilatorul, un software eficient care să utilizeze pe deplin puterea de calcul PC-ului, pentru a crea extrem de problematică. Deci, începuturile dezvoltatorilor din IBM au fost dezvoltate în continuare. Principalele structuri sintactice ale limbajului de programare la nivel înalt din Fortran în multe cazuri au început să utilizeze la fel de fundamental atunci când creați soluții noi.

Un exemplu de realizare a rezultatelor practice în dezvoltarea conceptelor stabilite în Fortran poate fi considerată crearea LISP. Această limbă a fost dezvoltată în 1958, cu toate acestea, a dobândit o faimă largă oarecum mai târziu - în anii 1960. Lispul a fost dezvoltat de John McCarthy și a fost publicat într-una din revistele populare pentru specialiștii IT. Scopul principal al limbajului în cauză este de a procesa liste. Lispul a devenit popular în mediul de dezvoltare al sistemelor de inteligență artificială. Pe baza sale, au fost create limbi precum planificatorul, schema, precum și Lispul comun. De asemenea, a oferit, de asemenea, un impact semnificativ asupra multor instrumente moderne de dezvoltare software. Structura limbilor de programare la nivel înalt, populară astăzi, se bazează în mare parte pe algoritmi Fortran și Lisp.

Cu toate acestea, va fi interesant să luăm în considerare alte abordări ale clasificării instrumentelor luate în considerare a instrumentelor de dezvoltare software.

Limbi universale de nivel înalt

Deci, experții moderni alocă limbi universale de nivel înalt. Acestea includ, în special, cele care au fost dezvoltate în anii '60. Caracteristici cheie:

Orientare pe o gamă largă de sarcini (în primul rând aferente computației);

Un număr mare de structuri lingvistice și algoritmi;

Semnificație nu numai pentru timpul său, ci și pentru stadiul modern de dezvoltare a echipamentelor informatice;

Sprijin în limbile relevante ale metodologiei imperative.

Limbile universale sunt fundamentale în industria de dezvoltare IT relevantă. Se poate observa că până acum nu au analogi direcți din partea structurii interne. De fapt, acest lucru explică în mare măsură relevanța utilizării limbilor relevante în interfețele moderne orientate pe obiecte. De asemenea, în general în limbi marcate - tip de date. Acest factor predermine în mare măsură versatilitatea lor. Printre cele mai remarcabile proprietăți ale limbilor aparținând categoriei de continuitate universală. Astfel, limbile istoric mai târziu se bazează de obicei pe conceptele de predecesori.

Limbi unice

Unii experți IT alocă într-o categorie independentă "Limbi unice". Printre aceia: APL, COBOL, FAȚĂ, SETL, precum și Clu. Care este specificitatea lor?

Cel mai important aspect al APL este implicarea unor matrice (vectori și matrice) ca un tip structural cheie. Specificul limbajului COBOL - în orientarea în sfera comercială. Astfel, este recomandabil să îl utilizați la rezolvarea problemelor asociate cu un format standardizat de reprezentare a rezultatelor. Limba finală se caracterizează prin utilizarea înregistrărilor de software postfix, precum și utilizarea unei noțiuni elegante. În limba SETL, seturile de valori sunt utilizate ca unul dintre tipurile cheie de date. Limba de programare la nivel înalt este, de asemenea, Clu. Caracteristica sa principală este de a utiliza conceptul de lucru cu tipurile de date abstracte. Mulți specialiști IT văd apariția logică a unor noi soluții bazate pe limbi unice - cum ar fi, de exemplu, cobol orientat pe obiecte.

Facilități Programare paralelă

Această categorie poate include un număr mare de soluții. La rândul său, limbile de programare paralele pot avea un număr mare de motive de clasificare. De exemplu, metoda de organizare a proceselor. Această bază implică clasificarea mijloacelor de programare paralelă pe baza prezenței în ele:

Soprograme;

Ramuri;

Asociațiile;

Paranteze paralele;

Algoritmi de lucru cu procese.

O altă bază pentru clasificarea limbilor de tipul în cauză este metodele de sincronizare a proceselor. Soluțiile corespunzătoare pot include astfel:

Semaphores;

Monitoare;

- "randevu";

Secțiuni critice;

Proceduri de provocare la distanță;

Tranzacții legate de categoria Atomic.

Limbile tipului de tip includ Modula-2, Bliss, Pascal concurent, DP, Argus.

Familia lingvistică C.

Mai sus, am considerat un exemplu de limbaj de programare la nivel înalt, o astfel de soluție ca C. De fapt, formează o întreagă familie. Limbile aparținând acesteia sunt structuri private C. Deci, adăugarea acesteia la diferite componente orientate spre obiect a condus la dezvoltarea C ++. După filtrarea substanțială a unui rând de construcții C, a apărut Java. Se poate observa că Java a fost creat în multe moduri sub influența conceptelor proiectului Oberon, care este gestionat de Niklaus Wirth, Creatorul limbii Pascal. JavaScript de nivel înalt se referă la JavaScript la nivel înalt? Desigur, da, în ciuda îngustării aplicației - ca instrument pentru dezvoltarea paginilor web. Dar limbile de programare la nivel înalt nu includ, în special, HTML, XML și SGML. Acestea sunt clasificate ca unelte de marcare hipertext.

Familia limbajului pascal

Limbi de programare la nivel înalt Pascal formează, de asemenea, o familie separată. Pe baza Pascal a fost, a creat efectiv Oberon, clasificat ca un limbaj de tip orientat pe obiecte. Caracteristica cheie a Oberon - în capacitatea de a asigura siguranța tipurilor. Nu numărăm Oberon, limbile familiei Pascal pot fi atribuite modulului-2, precum și componentei Pascal.

ADA Language Family.

Fundamental în categoria relevantă a limbilor - comandate de Departamentul de Apărare al SUA ADA. A fost creată la sfârșitul anilor '70 - începutul anilor 80. Se caracterizează printr-un număr mare de funcții, oportunități, versatilitate. Familia ADA include soluții precum Cedar, Modula 3.

Simula Language Family.

Limbajul Simula este distribuit în ramurile de programare asociate modelării imitației. Specificitatea soluțiilor adecvate - în implicarea unui anumit nucleu. Utilizarea sa vă permite să aplicați diferite extensii adaptate la una sau la altă aplicație. Bazat pe Simula, a fost creat un limbaj Smalltalk orientat spre obiect, precum și beta, caracterizat prin capacitatea de a se combina într-o singură abstracție a algoritmilor, reflectând lucrările cu date, proceduri și control. Obiectele beta pot fi considerate într-un context diferit, de exemplu, ca variabile, funcții sau sisteme paralele.