Generacije programskih jezika način su klasifikacije računalnih programskih jezika prema njihovoj ukupnoj udaljenosti od stvarnog strojnog koda koji je generiran i, na neki način, njihovoj jednostavnosti upotrebe od strane programera. Postoje tri općeprihvaćene generacije programskih jezika i nekoliko čije definicije nisu jasno dogovorene. Računalni programski jezik prve generacije je ravni strojni kod bez apstrakcije. Jezici druge generacije su apstraktni strojni kod, kao što je asemblerski jezik, koji je vezan za specifičnu arhitekturu sustava, ali su čitljivi ljudima i potrebno ih je prevesti. Jezici treće generacije najčešći su oblik, uključujući standardne jezike kao što su C i Java®, dok jezici četvrte generacije ili novije imaju različite definicije.
Kada su generacije programskih jezika prvi put stvorene za opisivanje jezika, izraz se uglavnom koristio za označavanje jezika treće generacije. To znači da su jezici prve i druge generacije klasificirani samo kao takvi kako bi se istaknule mogućnosti jezika treće generacije. Četvrta i peta generacija programskih jezika uglavnom su se koristile kao termini u odnosu na marketing za jezike koji su bili u razvoju. U marketingu i nekim akademskim područjima, generacije jezika s većim brojem koriste se na nestandardan način kako bi se naznačilo da je jedan jezik noviji ili ima više značajki od drugog.
Prva od generacija programskog jezika označava strojni kod. To znači pisanje programa kao slijeda bajtova ili, u ekstremnim slučajevima, bitova koje računalo može izravno izvršiti. U većini slučajeva, to se odnosi na sustav koji prihvaća ulaz preko tvrdo kodiranih prekidača ili drugih fizičkih mehanizama.
Programski jezici druge generacije smatraju se jezicima asemblerskog stila. To su jezici koji su napisani ljudskim čitljivim kodom i naredbama koje su još uvijek vezane za specifične arhitekture sustava, ali predstavljaju lakše razvojno okruženje i neku apstrakciju. Asemblerski jezici nikada se nisu prestali koristiti od 2011. godine, i ne samo da su iznimno moćni, već se mogu koristiti i kao inline izjave u programskim jezicima više razine, čineći lažnom ideju da je generiranje jezika jednako njegovoj brzini ili snazi.
Programski jezici treće generacije odvojili su kod od procesora u još većoj mjeri, omogućivši razvoj koda koji je koristio čitljivije izjave. Osim toga, razvijeni su prevoditelji koji su jedan redak koda mogli pretvoriti u više asemblerskih izraza na više platformi i, na kraju, u desetke ili više instrukcija strojnog koda. Gotovo svi računalni jezici koji mogu kompilirati izvorne binarne izvršne datoteke i biblioteke smatraju se jezicima treće generacije.
Općenito, na jezik četvrte generacije se gleda kao na jezik koji koristi neku vrstu programskog jezika koji je vrlo prirodan za korisnika. Također se može definirati kao jezik koji koristi vizualne elemente za izgradnju konačnog programa. Treća definicija je programski jezik koji je izgrađen za određenu svrhu, kao što je programski jezik baze podataka ili jezik za brzi razvoj aplikacija (RAD).
Labava definicija računalnog jezika pete generacije je ona koja programeru omogućuje da računalo predstavi problem koji ono potom pokušava riješiti. Većina jezika koji su navedeni kao jezik pete generacije uglavnom su akademske prirode. Druge generacije programskih jezika, kao što su šesta i sedma, koristile su se od strane programera komercijalnih jezika u marketinške svrhe.