Clasificarea limbajelor de programare după niveluri

Limbile de programare sunt sisteme de simboluri și reguli ale combinației lor, destinate interacțiunii persoanei cu mașini complexe. Există sute de astfel de sisteme organizate care îndeplinesc diferite funcții. Pentru a naviga în această diversitate, specialiștii creează clasificări generale ale limbajelor de programare bazate pe una sau altă caracteristică caracteristică.

Interacțiunea dintre om și mașină

Este important să înțelegeți modul în care oamenii comunică cu mecanismele inteligente înainte de a trece la clasificarea limbajelor de programare.

Într-o zi, un om credea că o mașină poate face muncă fizică pentru el. Deci motorul cu aburi a apărut. Apoi persoana intreprinzatoare a decis sa treaca la masina si munca mentala. Deci a fost un calculator.

Pentru a obține un rezultat, trebuie să înțelegeți cum să faceți acest lucru. În programare, puteți distinge mai multe etape de rezolvare a oricărei probleme:

  1. O descriere logică formalizată a sarcinii în sine.
  2. Construirea unui algoritm care descrie toți pașii pentru atingerea scopului, începând cu prelucrarea datelor de intrare și terminând cu obținerea rezultatului.
  3. Codificare - compilarea unui program în oricare dintre limbile de programare, care apoi poate fi tradus într-un limbaj prietenos cu calculatorul.
  4. Traducerea este o traducere directă.
  5. Asamblarea unui program care rulează (modul executabil) de la toate componentele.

Este o structură ierarhică în care nivelurile superioare se bazează pe cele inferioare. Fără o sarcină clară și un algoritm competent, este imposibil să se creeze un program de calitate.

Varietate de limbi de programare

Structura limbajelor de programare

Aranjamentul tuturor sistemelor de interacțiune este similar și determină în multe privințe clasificarea limbajelor de programare.

Obiectivele principale ale limbajului de programare sunt constante și seamănă cu componentele sistemelor de limbă umană:

  • Sintaxa care definește regulile formale pentru scrierea unui program, tipurile și caracterele valide;
  • lexicon, care include întregul vocabular al limbii: numele variabilelor și funcțiilor, constantele, șirurile, operatorii;
  • gramatica, indicând cum să combinați corect unitățile limbii pentru formarea combinațiilor de cuvinte și a propozițiilor.

Vocabularul și gramatica definesc împreună semantica limbajului. La acest nivel, secvențe specifice de semne dobândesc un înțeles special, de înțeles pentru om și calculator. De exemplu, cuvântul în timp ce în multe sisteme de programare este tratat ca începutul unei operații ciclice.

Desigur, calculatoarele nu înțeleg cuvinte obișnuite, în sine o combinație de litere latine nu înseamnă nimic pentru ei. Mașinile se ocupă cu codul mașinii - zerouri și cele care descriu stările primitive ale prezenței sau absenței unui semnal. Prin urmare, limbajele de programare stabilesc corespondențe clare ale anumitor cuvinte și secvențe ale instrucțiunilor mașinii native.

Primele sisteme primitive de control al mașinii - cartele perforate - utilizate pentru Jacquard războaie de țesut, care au fost transferate într-un model de mătase de orice complexitate. Pianul auto-redat a fost programat în același mod.

Există sute de sisteme de programare, iar în fiecare an există altele noi. Unele dintre ele sunt fundamental diferite unul de celălalt, altele sunt foarte asemănătoare și au doar caracteristici mici. Fiecare este conceput pentru a-și rezolva sarcina, largă sau foarte specializată.

Prezentare generală a clasificărilor

Limbile de programare pot fi grupate pe zeci de semne diferite. Ele sunt fundamental importante sau de importanță practică.

Există o puternică dependență a clasificării limbajelor de programare în istoria dezvoltării. De-a lungul anilor, tehnologiile au devenit mai complexe și schimbate dramatic, confortul programatorului a ajuns în prim plan, au apărut algoritmi eficienți, echipe complexe și nivele noi de abstractizare.

Limbi de programare

Clasificările principale ale limbajelor de programare pe tipuri și mecanisme de operare se bazează pe următorii parametri:

  • Caracteristicile vocabularului și ale gramaticii în concordanță cu nivelul de abstractizare și gradul de confort pentru oameni.
  • Conceptul de bază și metodologia de compilare a algoritmilor.
  • Metoda de reprezentare a datelor.
  • Organizarea procesului de interacțiune cu mașina, mecanismul de execuție a programului.
  • Domeniu de viață în care se aplică limba.
  • Epoca istorică în care sa format sistemul lingvistic.

Este imposibil să se facă o clasificare clară a limbilor și a sistemelor de programare, dar este posibilă divizarea și sistematizarea lor în funcție de caracteristicile fundamentale importante.

Comoditate pentru om

Instrucțiunile scrise în limba mașinii sunt de înțeles pentru un computer, dar extrem de incomod pentru o persoană. Ele sunt greu de înțeles, ele sunt aproape imposibil de schimbat rapid sau de a le compune un algoritm complex. Pentru a spori eficiența, programatorii au crescut la noi niveluri de abstractizare și au învățat mașina să accepte instrucțiuni mai ușor de înțeles de către om și să le traducă în mod independent în codul mașinii. Luați în considerare clasificarea și caracteristicile limbajelor de programare de diferite nivele:

  • Codul mașinii. Acesta este, de asemenea, un limbaj de programare, pe care, cu pregătire corespunzătoare, puteți scrie o instrucțiune.
  • Nivel scăzut. Într-adevăr sunt la un nivel scăzut limbi de asamblare, care folosesc instrucțiunile mașinii native codate folosind coduri mnemonice.
  • Nivelul de mijloc. Sistemele de programare ale acestui grup pot fi considerate la nivel scăzut și la nivel înalt, în funcție de ideile specifice despre gradul de abstractizare. Aceasta include C și C ++.
  • Nivel ridicat. Aceste limbi vă permit să creați algoritmi complexe, dar necesită procesare suplimentară înainte de execuție, astfel încât codul generat să fie mai puțin eficient și mai lent.
  • Nivel ultra-ridicat. Acest grup mic se caracterizează prin apariția unor echipe și operatori foarte puternici. Aici este posibil să transportați Algol-68.

O caracteristică a limbajelor de nivel scăzut este dependența lor de computer. Ele sunt strâns legate de specificul organizării unui anumit tip de calculator, dar în general sunt similare unul cu celălalt. Acestea oferă:

  • viteza mare de execuție și compactitatea maximă a programelor create;
  • interacțiunea directă cu resurse hardware;
  • control complet asupra memoriei.

Principalele dezavantaje ale limbajelor de nivel scăzut:

  • pentru fiecare tip de computer este necesar să se utilizeze un anumit sistem de comandă, în funcție de caracteristicile mașinii;
  • complexitatea și viteza redusă a procesului de programare;
  • probabilitatea mare de erori dificil de urmărit;
  • lipsa de mobilitate a programelor, incapacitatea de a le rula pe un alt tip de calculator.

Sistemele de programare la nivel înalt nu sunt legate de un anumit sistem de comandă al mașinii și pot fi executate pe orice computer. Datorită nivelului ridicat de abstractizare, își pot permite să utilizeze concepte și metodologii diferite în elaborarea instrucțiunilor. Prin urmare, clasificarea limbajelor de programare la nivel înalt este foarte vastă și complexă.

Procesarea programului cu mașină

Pentru a efectua o instrucțiune complexă, calculatorul trebuie mai întâi să-și reducă abstractitatea și să o traducă într-o limbă care să fie înțeleasă de sine. Modul în care se face acest lucru se numește modelul de performanță. Există două modele principale și un hibrid:

  • Compilație - o traducere unică a întregului program în codul mașinii.
  • Interpretare - executarea consecutivă a fiecărei expresii.
  • Transcopation - traducerea într-un limbaj de nivel inferior, de exemplu C sau asamblare, și compilarea ulterioară.

Pentru a traduce, aveți nevoie de un program special de compilator sau de interpret, fără de care nu puteți lucra cu limba.

Compilare și interpretare

Interpretul lucrează separat cu fiecare linie a programului, analizând-o și executându-l imediat. Prezența sa este necesară de la început până la sfârșitul programului.

Principalele deficiențe ale modelului de interpretare sunt:

  • constatarea constantă a traducătorului în memoria calculatorului;
  • repetarea prelucrării comenzilor repetate.

În ciuda acestui fapt, limbile interpretate sunt foarte convenabile pentru dezvoltarea și depanarea ciclică, deoarece vă permit să faceți rapid modificări în program.



Compilatorul funcționează numai o singură dată, transformând imediat toate instrucțiunile într-o formă compacte pentru calculator - codul mașinii sau un cod intermediar intermediar, apoi părăsește memoria computerului. Aici execuția este separată de procesul de traducere, care este un model mai eficient.

Principalele dezavantaje ale modelului de compilare sunt:

  • mare dificultate.

Înainte de a traduce un program într-un limbaj ușor de înțeles de către mașină, traducătorul trece de mai multe ori prin instrucțiunea inițială, analizând și testarea acestuia.

Compilarea programului

Nu există o delimitare clară a sistemelor, deoarece limbile traduse în mod tradițional pot fi compilate și invers.

Clasificarea limbajelor de programare la nivel înalt după modelul de performanță:

  • Interpretat - Python, Haskell, PHP, jаvascript.
  • Compilate direct în codul mașinii: C, C ++, Fortran, ASM.
  • Compilați în bytecode: Python, Java.
  • Transcompiled: Haskell, Fortran, C, C ++.

Prelucrarea datelor

Orice limbaj de programare funcționează cu informații care trebuie manipulate într-un fel, verificate pentru corectitudine și modificate. Datele pot fi foarte diverse - numere, linii sau structuri complexe. Desigur, cu orice tip de muncă necesare în diferite moduri, dar, în scopul de a determina exact cum, trebuie mai întâi să înțeleagă exact ceea ce aceste oferte de calculator.

Pe baza metodei de determinare a varietății de date, este construită o clasificare a limbajelor de programare de către sistemul de tip.

  • Limbi necunoscute.
  • Limbi scrise cu grade diferite de severitate.

Nimeni nu sunt limbi de asamblare, care sunt capabile să proceseze date binare direct. Tipul de date nu contează deloc.

Pentru limbile scrise, este important cu ce fel de date lucrează. Unele operații sunt definite numai pentru numere, de exemplu diviziune, altele sunt doar pentru șiruri de caractere. Cu toate acestea, unele sisteme permit programatorului anumite libertăți. De exemplu, ele pot defini independent și "implicit" convertesc un tip de date într-altul, pe baza semanticii comenzii. Acest lucru este foarte convenabil, dar complică depanarea, deoarece poate duce la o eroare inconsecventă. Un exemplu viu de scriere non-strictă este jаvascript.

Limbile strict tipizate, de exemplu Java, nu permit o astfel de libertate și necesită indicarea tipurilor și conversia lor explicită, dacă este necesar.

Există, de asemenea, o clasificare a limbajelor de programare la nivel înalt la momentul verificării tipului de date:

  • limbile statice sunt de obicei compilabile. Verificarea tipului are loc atunci când programul este analizat înainte de a fi tradus în limba mașinii.
  • Limbile dinamice verifică tipurile de date în timpul execuției.

Modul principal de interacțiune

Limbile extrem de abstracte pot fi împărțite în funcție de paradigma de programare de bază. Există zeci de metodologii pentru programare, dintre care unele sunt foarte asemănătoare, astfel încât este imposibil să se creeze un sistem clar de diferențe. O scurtă clasificare a limbajelor de programare arată astfel:

  • algoritmic, imperativ, procedural. Solicitați o descriere secvențială explicită a algoritmului pentru rezolvarea problemei. Operatorii, în același timp, sunt combinați în grupuri procedurale, separate de datele în sine. Exemple de limbi procedurale sunt Pascal, Basic;
  • logic, declarativ. Formalizarea maximă descrie sarcina în sine și rezultatul cerut. Soluția trebuie să urmeze logic din această descriere;
  • orientat pe obiecte, structurat. Ele se bazează pe conceptul de obiect care combină datele și metodele de procesare a acestora.

Obiecte în programare

Limbile din ultimul grup descriu toate entitățile sub formă de obiecte independente care ascund mecanica complexă. Conceptele de bază ale OOP (programare orientată pe obiecte) sunt:

  • încapsulare - ascunderea funcționalității în interiorul obiectului;
  • moștenirea de către unele obiecte a metodelor altora;
  • polimorfismul - o schimbare de esență cu păstrarea interfeței externe.
Programarea orientată pe obiecte

De asemenea, puteți clasifica limbile programării orientate obiect prin implementarea conceptelor de bază ale acestei abordări - moștenire, încapsulare și polimorfism. În plus față de mecanismele clasice, există și altele, cum ar fi prototipul, folosit în jаvascript.

Metodologia OOP este considerată a fi cea mai progresivă, mai eficientă și, în unele moduri, la modă. Cu toate acestea, într-o serie de cazuri, alte abordări, de exemplu funcționale, pot fi mai eficiente pentru rezolvarea unei anumite probleme.

Generații de limbi de programare

Clasificarea limbajelor de programare din istoria apariției acestora este considerată condiționată, deoarece nu ține seama de caracteristicile specifice ale sistemelor specifice. Cu toate acestea, vă permite să urmăriți modul în care conceptele s-au schimbat în timp, iar sarcinile cu care se confruntă programatorii au devenit mai complexe.

În încercările de a lega clasificarea și evoluția limbajelor de programare, s-au distins câteva mari grupuri, numite generații:

  • Limbi de prima generație - low-level mașină, legate de punerea în aplicare a unui computer specific. "Programele" în aceste limbi arătau ca niște rânduri de întrerupătoare plasate în poziția dorită sau carduri de perforare (benzi perforate). Astfel, toate comenzile au fost o secvență de zerouri și una - un cod binar. Exemplu: limba procesorului ARM.
  • În cea de-a doua generație, limbile au devenit mai ușor de înțeles pentru o persoană, dar nu au putut să-i dezlege de la un anumit aparat. Acesta este momentul asamblării limbajului cu codurile sale mnemonice și asamblarea neechivocă în formă lizibilă de mașină. Exemplu: Macroassembler.
  • Limbile celei de-a treia generații au eliminat de la programator îngrijirea detaliilor neimplicate ale elaborării instrucțiunilor, cum ar fi traducerea programului în codul mașinii. Acum, computerul a învățat să o facă singură. Sintaxa și vocabularul s-au apropiat de om, au devenit mai clare. În această generație s-au născut aproape toate limbile moderne de nivel înalt, cu un domeniu larg de aplicare, indiferent de paradigma lor: PHP, Fortran.
  • În cea de-a patra generație, nivelul abstractizării a crescut și mai mult, îngustând domeniul de utilizare. Acest grup include limbi specifice, cum ar fi FoxPro, Simulink, SQL. Limbile de programare vizuale au aparut: Pachete CAD, sisteme RAD.
  • În sfârșit, limbile a cincea generație trebuiau să scrie propriile programe, obținând doar o descriere de la programator. Această idee nu a fost implementată pe deplin, deoarece pentru compilarea unui algoritm eficient, uneori nu este suficientă logica directă a calculatorului, iar intuiția și înțelegerea umană sunt încă necesare. Exemple de limbi de generația a cincea sunt MathCAD, Prolog și Mercury.
Generații de limbi de programare

De fapt, generațiile de limbi corespund exact etapelor de programare discutate la începutul articolului, enumerate în ordine inversă. Inițial, programatorul a preluat toate operațiile și mașina a efectuat numai secvența de acțiuni specificată. Acum, computerul este capabil să producă rezultatul în funcție de descrierea formalizată a problemei.

Ușurința muncii programatorului este însoțită de o creștere a încărcării pe mașină, programul este mai lent și necesită mai multe resurse.

În ciuda faptului că progresul tehnologic se mișcă cu salturi, limbile primelor generații nu au dispărut deloc. Ele sunt utilizate în zone care necesită o simplitate și o eficiență maximă.

Domeniul de aplicare

Fiecare limbaj de programare este bun în domeniul său, pentru care a fost creat. Deci, pentru programarea microcontrolerelor se folosesc asamblori, iar cu Java nu este nimic de făcut. Programarea șoferului la nivel scăzut este eficientă cu C, ceea ce vă permite să controlați strict resursele de memorie. Pentru programarea web merită să alegi limbi de script PHP și jаvascript, interpretul căruia este construit în fiecare browser modern. Programele bancare importante sunt scrise în Java, oferind un control al erorilor. Industria aerospațială - și în Java sau Pascal, care chiar colectarea gunoiului oferă controlul programatorului.

Toate limbile sunt bune, trebuie doar să alegi sarcina potrivită.

Cele mai populare limbi de programare

Importanța clasificării

Este dificil să divizăm sute de sisteme existente de interacțiune om-calculator în mai multe grupuri distincte. Și totuși, revizuirea clasificărilor limbajelor de programare urmărește pe scurt istoria evoluției lor și dezvăluie mai profund ideile încorporate în ele.

Fiecare limbă se referă simultan la mai multe dintre grupurile listate - poate fi puternic tastată, compilată și orientată pe obiecte în același timp. Prin urmare, este imposibil să se ia în considerare varietatea sistemelor de programare prin prisma unei singure clasificări.

Distribuiți pe rețelele sociale:

înrudit
Limbaj de programare JavaLimbaj de programare Java
Limba de programare de bază și istoricul acesteiaLimba de programare de bază și istoricul acesteia
Lista limbajelor de programare. Limbi de programare de nivel scăzut și înaltLista limbajelor de programare. Limbi de programare de nivel scăzut și înalt
Mijloacele Java de șiruri de caractere. Sortarea unui matrice în Java. Dispozitiv Java de două…Mijloacele Java de șiruri de caractere. Sortarea unui matrice în Java. Dispozitiv Java de două…
Limbi de programare pentru calculator: tipuri, descriere, aplicare și feedbackLimbi de programare pentru calculator: tipuri, descriere, aplicare și feedback
Informatica. Bazele de algoritmizare și programareInformatica. Bazele de algoritmizare și programare
Mediul de programare `Pascal ABC`Mediul de programare `Pascal ABC`
Cele mai populare limbi de programare. Limbaje de programare pentru începătoriCele mai populare limbi de programare. Limbaje de programare pentru începători
Evaluarea limbajelor de programare 2016Evaluarea limbajelor de programare 2016
Compilează ce?Compilează ce?
» » Clasificarea limbajelor de programare după niveluri