Ce sunt generațiile limbajului de programare?

Generațiile limbajelor de programare sunt o modalitate de a clasifica limbajele de programare pentru computer în funcție de distanța lor totală față de codul mașină real care este generat și, în anumite moduri, de ușurința lor de utilizare de către un programator. Există trei generații de limbaje de programare general acceptate și câteva ale căror definiții nu sunt clar de acord. Un limbaj de programare de calculator de prima generație este un cod de mașină direct, fără abstracție. Limbajele din a doua generație sunt coduri de mașină abstracte, cum ar fi limbajul de asamblare, care sunt legate de o arhitectură de sistem specifică, dar sunt citite de om și trebuie compilate. Limbile de generația a treia sunt cea mai comună formă, inclusiv limbaje standard precum C și Java®, în timp ce limbajele de generația a patra sau mai sus au definiții variate.

Când generațiile de limbaje de programare au fost create pentru a descrie limbaje, termenul a fost folosit în principal pentru a indica limbajele din a treia generație. Aceasta înseamnă că limbile din prima și a doua generație au fost clasificate ca atare doar pentru a evidenția capacitățile limbilor din a treia generație. A patra și a cincea generație de limbaje de programare au fost utilizate în mare măsură ca termeni în relație cu marketingul pentru limbi în curs de dezvoltare. În marketing și în unele domenii academice, generațiile de limbi cu numere mai mari sunt utilizate într-un mod nestandard pentru a indica faptul că o limbă este mai nouă sau are mai multe caracteristici decât alta.

Prima dintre generațiile limbajului de programare indică codul mașinii. Aceasta înseamnă scrierea unui program ca o secvență de octeți sau, în cazuri extreme, biți care pot fi executați direct de un computer. În cele mai multe cazuri, aceasta se referă la un sistem care acceptă intrare prin comutatoare hard-coded sau alte mecanisme fizice.

Limbajele de programare din a doua generație sunt considerate limbaje de tip asamblare. Acestea sunt limbaje care sunt scrise cu cod și comenzi care pot fi citite de om, care sunt încă legate de arhitecturi specifice de sistem, dar prezintă un mediu de dezvoltare mai ușor și o oarecare abstractizare. Limbajele de asamblare nu au încetat niciodată să fie folosite, începând cu 2011, și nu sunt doar extrem de puternice, dar pot fi utilizate și ca declarații inline în limbaje de programare de nivel superior, făcând falsă ideea că generarea unui limbaj echivalează cu viteza sau puterea acestuia.

Limbajele de programare din a treia generație au decuplat codul de procesor într-o măsură și mai mare, permițând dezvoltarea unui cod care folosea instrucțiuni mai lizibile. În plus, au fost dezvoltate compilatoare care ar putea transforma o singură linie de cod în mai multe instrucțiuni de asamblare pe mai multe platforme și, în cele din urmă, în zeci sau mai multe instrucțiuni de cod de mașină. Aproape toate limbajele de computer care pot compila executabile și biblioteci binare native sunt considerate limbaje de a treia generație.

În general, un limbaj de a patra generație este privit ca un limbaj menit să folosească un anumit tip de limbaj de programare care este foarte natural pentru utilizator. De asemenea, poate fi definit ca un limbaj care folosește elemente vizuale pentru a construi programul final. O a treia definiție este un limbaj de programare care este construit pentru un scop specific, cum ar fi un limbaj de programare pentru baze de date sau un limbaj de dezvoltare rapidă a aplicațiilor (RAD).
O definiție liberă a unui limbaj de computer de generația a cincea este una care permite unui programator să prezinte computerului o problemă pe care apoi încearcă să o rezolve. Majoritatea limbilor care sunt enumerate ca fiind o limbă de generația a cincea sunt în mare parte de natură academică. Alte generații de limbaje de programare, cum ar fi a șasea și a șaptea, au fost folosite de dezvoltatorii de limbaje comerciale în scopuri de marketing.