Există mai multe tipuri de limbaje de programare. Cele mai multe limbaje de programare nu urmează un singur tip, astfel încât este dificil să se atribuie un tip pentru fiecare limbaj. Exemplele fiecărui tip sunt prezentate în fiecare secțiune de mai jos, deoarece sunt cele mai bine cunoscute exemple ale tipului respectiv.
Nivel înalt vs. nivel scăzut
| ![[icon]](https://www.alegsaonline.com/image/Wiki_letter_w_cropped.svg.png) | Această secțiune necesită mai multe informații. (august 2018) |
Limbajele de programare de nivel înalt necesită mai puține cunoștințe despre hardware în comparație cu limbajele de programare de nivel scăzut. Acest lucru se datorează faptului că limbajele de programare de nivel înalt fac abstracție de hardware-ul pe care se execută programul. Multe limbaje de nivel înalt necesită un interpretor pentru a rula codul sursă pe hardware în timp real. Pe de altă parte, limbajele de nivel scăzut convertesc, de obicei, întregul cod sursă în cod mașină înainte de a fi rulat, deoarece codul sursă este atât de apropiat de hardware încât este ușor de făcut acest lucru. Limbajele de nivel înalt necesită un compilator, dar cele de nivel scăzut nu au nevoie de acesta.
Programare declarativă vs. imperativă
Limbajele de programare declarative descriu o "problemă", dar, de obicei, nu spun cum trebuie rezolvată problema. Descrierea problemei folosește logica, iar "rezolvarea" problemei seamănă adesea cu demonstrarea automată a unui sistem de axiome logice. Exemple de astfel de limbaje de programare sunt Prolog, XSLT, LISP și SQL.
Limbajele de programare imperative descriu un sistem de schimbări de stare. La început, programul se află într-o anumită stare, iar computerul primește pașii pe care trebuie să-i urmeze pentru a efectua o acțiune. Urmarea pașilor determină programul să își "schimbe starea".
În general, limbajele de programare declarative sunt mai sigure și mai scurte. Limbajele de programare imperative sunt mai frecvente, deoarece sunt mai ușor de utilizat.
Funcțional vs. Procedural
Programarea funcțională privește programarea ca pe o funcție în matematică. Programul primește date de intrare, împreună cu anumite informații, și utilizează aceste informații pentru a crea rezultate. Acesta nu va avea o stare intermediară și, de asemenea, nu va modifica lucruri care nu sunt legate de calcul.
Programele procedurale specifică sau descriu seturi de pași sau schimbări de stare.
Bazat pe stivă
Limbajele bazate pe stivă privesc o parte din memoria programului ca pe un teanc de cărți. Există foarte puține lucruri care pot fi făcute cu o stivă. Un element de date poate fi pus în partea de sus a stivei. Această operațiune se numește în general "push". Un element de date poate fi eliminat din partea de sus a stivei. Această operațiune se numește "pop". Puteți să vă uitați la elementul din vârful stivei fără a-l îndepărta. Această operațiune se numește "peek".
Dacă un program este scris sub forma "push 5; push 3; add; pop;", acesta va pune 5 în partea de sus a stivei, va pune 3 deasupra lui 5, va aduna cele două valori de sus (3 + 5 = 8), va înlocui 3 și 5 cu 8 și va imprima partea de sus (8). Exemple de limbaje de programare care se bazează pe stivă sunt limbajele Postscript și Forth.
Orientată pe obiecte
Limbajele de programare orientate pe obiecte plasează datele și funcțiile care modifică datele într-o singură unitate. Această unitate se numește "obiect". Obiectele pot interacționa între ele și pot modifica datele unui alt obiect. Acest lucru se numește de obicei încapsulare sau ascundere a informațiilor. Majoritatea limbajelor de programare moderne sunt orientate pe obiecte sau cel puțin permit acest stil de programare. Exemple în acest sens sunt Java, Python, Ruby, C++, C# și alte limbaje C.
Orientat spre flux
Programarea orientată pe flux vede programarea ca pe o conexiune între diferite componente. Aceste componente trimit mesaje înainte și înapoi. O singură componentă poate face parte din diferite "programe", fără a fi nevoie să fie modificată la nivel intern.
Calcul științific
Unele dintre limbajele de mai sus pot fi utilizate pentru calculul științific. De exemplu, C++ și Python sunt, de asemenea, utilizate în acest mod. Pe de altă parte, există unele limbaje care au ca scop principal calculul științific. Următoarele sunt câteva exemple:
- MATLAB - realizat de MathWorks
- GNU Octave, Scilab - versiuni cu sursă deschisă ale MATLAB
- R (limbaj de programare) - utilizat pe scară largă în domeniul statisticii
- Wolfram Mathematica - realizat de Wolfram Research
Crearea de documente
LaTeX și SATySFi sunt limbaje de programare care ajută la crearea de documente.