Ohjelmointikielisukupolvet ovat tapa luokitella tietokoneohjelmointikielet niiden kokonaismatkan ja varsinaisen luodun konekoodin ja jollain tavalla ohjelmoijan helppokäyttöisyyden mukaan. On kolme yleisesti hyväksyttyä ohjelmointikielisukupolvea ja muutama, joiden määritelmistä ei ole selkeästi sovittu. Ensimmäisen sukupolven tietokoneohjelmointikieli on suora konekoodi ilman abstraktioita. Toisen sukupolven kielet ovat abstrakteja konekoodeja, kuten kokoonpanokieli, jotka on sidottu tiettyyn järjestelmäarkkitehtuuriin, mutta jotka ovat ihmisten luettavissa ja jotka on koottava. Kolmannen sukupolven kielet ovat yleisin muoto, mukaan lukien vakiokielet, kuten C ja Java®, kun taas neljännen sukupolven tai uudemmat kielet ovat eri määritelmissä.
Kun ohjelmointikielisukupolvia luotiin ensin kuvaamaan kieliä, termiä käytettiin enimmäkseen kolmannen sukupolven kielien osoittamiseen. Tämä tarkoittaa sitä, että ensimmäisen ja toisen sukupolven kielet luokiteltiin sellaisiksi vain korostamaan kolmannen sukupolven kielten ominaisuuksia. Neljättä ja viidennen ohjelmointikielen sukupolvea käytettiin suurelta osin kehitteillä olevien kielten markkinoinnin termeinä. Markkinoinnissa ja joillakin akateemisilla aloilla korkeamman lukumäärän kielisukupolvia käytetään epätavanomaisella tavalla osoittamaan, että yksi kieli on uudempi tai sillä on enemmän ominaisuuksia kuin toisella.
Ensimmäinen ohjelmointikielen sukupolvista ilmaisee konekoodin. Tämä tarkoittaa ohjelman kirjoittamista tavuina tai ääritapauksissa biteinä, jotka tietokone voi suorittaa suoraan. Useimmissa tapauksissa tämä viittaa järjestelmään, joka hyväksyy syötteen kovakoodattujen kytkimien tai muiden fyysisten mekanismien kautta.
Toisen sukupolven ohjelmointikieliä pidetään kokoonpanotyyleinä. Nämä ovat kieliä, jotka on kirjoitettu ihmisen luettavalla koodilla ja komennoilla, jotka on edelleen sidottu tiettyihin järjestelmäarkkitehtuureihin, mutta joissa on helpompi kehitysympäristö ja joitain abstraktioita. Kokoonpanokielten käyttö ei koskaan lakannut vuodesta 2011 lähtien, ja ne eivät ole vain erittäin tehokkaita, vaan niitä voidaan käyttää myös upotettuina lausekkeina korkeamman tason ohjelmointikielissä, mikä tekee väärän käsityksen siitä, että kielen luominen vastaa sen nopeutta tai tehoa.
Kolmannen sukupolven ohjelmointikielet irrottivat koodin prosessorista vielä laajemmin, mikä mahdollisti koodin kehittämisen, joka käytti luettavampia lausekkeita. Lisäksi kehitettiin kääntäjiä, jotka voisivat muuttaa yhden koodirivin useiksi kokoonpanolausekkeiksi useilla alustoilla ja lopulta kymmeniksi tai useammiksi konekoodiohjeiksi. Lähes kaikkia tietokonekieliä, jotka voivat koota alkuperäisiä binaarisia suoritettavia tiedostoja ja kirjastoja, pidetään kolmannen sukupolven kielinä.
Yleensä neljännen sukupolven kieltä pidetään kielenä, joka on tarkoitettu käyttämään tiettyä ohjelmointikieltä, joka on käyttäjälle erittäin luonnollista. Se voidaan myös määritellä kieleksi, joka käyttää visuaalisia elementtejä lopullisen ohjelman rakentamiseen. Kolmas määritelmä on ohjelmointikieli, joka on rakennettu tiettyä tarkoitusta varten, kuten tietokannan ohjelmointikieli tai nopean sovelluskehityksen (RAD) kieli.
Viidennen sukupolven tietokonekielen löysä määritelmä antaa ohjelmoijalle mahdollisuuden esittää tietokoneelle ongelma, jonka se yrittää ratkaista. Useimmat viidennen sukupolven kielinä luetellut kielet ovat luonteeltaan enimmäkseen akateemisia. Kaupalliset kielten kehittäjät ovat käyttäneet muita ohjelmointikielisukupolvia, kuten kuudes ja seitsemäs, markkinointitarkoituksiin.