Generacije programskih jezikov so način za razvrščanje računalniških programskih jezikov glede na njihovo celotno oddaljenost od dejanske strojne kode, ki je ustvarjena, in na nek način glede na njihovo enostavno uporabo s strani programerja. Obstajajo tri splošno sprejete generacije programskih jezikov in nekaj, katerih definicije niso jasno dogovorjene. Računalniški programski jezik prve generacije je ravna strojna koda brez abstrakcije. Jeziki druge generacije so abstrahirana strojna koda, kot je zbirni jezik, ki je vezana na specifično sistemsko arhitekturo, vendar je človeku berljiva in jo je treba prevesti. Jeziki tretje generacije so najpogostejša oblika, vključno s standardnimi jeziki, kot sta C in Java®, medtem ko imajo jeziki četrte generacije ali novejše različne definicije.
Ko so bile generacije programskih jezikov prvič ustvarjene za opisovanje jezikov, je bil izraz večinoma uporabljen za označevanje jezikov tretje generacije. To pomeni, da so bili jeziki prve in druge generacije razvrščeni le kot takšni, da bi poudarili zmožnosti jezikov tretje generacije. Četrta in peta generacija programskih jezikov sta se večinoma uporabljali kot izrazi v zvezi s trženjem za jezike, ki so bili v razvoju. V trženju in na nekaterih akademskih področjih se generacije jezikov z višjim številom uporabljajo na nestandarden način, da označijo, da je en jezik novejši ali ima več funkcij kot drugi.
Prva od generacij programskega jezika označuje strojno kodo. To pomeni pisanje programa kot zaporedja bajtov ali, v skrajnih primerih, bitov, ki jih lahko neposredno izvede računalnik. V večini primerov se to nanaša na sistem, ki sprejema vhod prek trdo kodiranih stikal ali drugih fizičnih mehanizmov.
Programski jeziki druge generacije se štejejo za jezike v slogu montaže. To so jeziki, ki so napisani s človeku berljivo kodo in ukazi, ki so še vedno vezani na specifične sistemske arhitekture, vendar predstavljajo lažje razvojno okolje in nekaj abstrakcije. Od leta 2011 se montažni jeziki nikoli niso prenehali uporabljati in niso le izjemno zmogljivi, ampak se lahko uporabljajo tudi kot vgrajeni stavki v programskih jezikih višje ravni, zaradi česar je napačna ideja, da je generacija jezika enaka njegovi hitrosti ali moči.
Programski jeziki tretje generacije so še v večji meri ločili kodo od procesorja, kar je omogočilo razvoj kode, ki je uporabljala bolj berljive stavke. Poleg tega so bili razviti prevajalniki, ki bi lahko pretvorili eno vrstico kode v več stavkov sestavljanja na več platformah in sčasoma v desetine ali več navodil strojne kode. Skoraj vsi računalniški jeziki, ki lahko sestavljajo izvorne binarne izvedljive datoteke in knjižnice, se štejejo za jezike tretje generacije.
Na splošno se na jezik četrte generacije gleda kot na jezik, namenjen uporabi neke vrste programskega jezika, ki je uporabniku zelo naraven. Lahko ga definiramo tudi kot jezik, ki uporablja vizualne elemente za izdelavo končnega programa. Tretja definicija je programski jezik, ki je zgrajen za določen namen, kot je programski jezik baze podatkov ali jezik za hitri razvoj aplikacij (RAD).
Ohlapna definicija računalniškega jezika pete generacije je tista, ki programerju omogoča, da računalniku predstavi problem, ki ga nato poskuša rešiti. Večina jezikov, ki so navedeni kot jezik pete generacije, je večinoma akademske narave. Druge generacije programskih jezikov, kot sta šesta in sedma, so razvijalci komercialnih jezikov uporabljali za namene trženja.