Programavimo kalbų kartos yra būdas klasifikuoti kompiuterių programavimo kalbas pagal jų bendrą atstumą nuo tikrojo generuojamo mašininio kodo ir tam tikrais atžvilgiais į tai, kaip programuotojas gali jas naudoti. Yra trys visuotinai priimtos programavimo kalbų kartos ir kelios, kurių apibrėžimai nėra aiškiai sutarti. Pirmos kartos kompiuterių programavimo kalba yra tiesus mašininis kodas be abstrakcijos. Antrosios kartos kalbos yra abstrahuotas mašininis kodas, pvz., asamblėjos kalba, susietas su konkrečia sistemos architektūra, bet skaitomas žmogui ir jas reikia kompiliuoti. Trečiosios kartos kalbos yra labiausiai paplitusi forma, įskaitant standartines kalbas, tokias kaip C ir Java®, o ketvirtos kartos ar naujesnės kalbos turi skirtingus apibrėžimus.
Kai programavimo kalbų kartos pirmą kartą buvo sukurtos kalboms apibūdinti, šis terminas dažniausiai buvo naudojamas trečiosios kartos kalboms apibūdinti. Tai reiškia, kad pirmosios ir antrosios kartos kalbos buvo klasifikuojamos tik siekiant pabrėžti trečiosios kartos kalbų galimybes. Ketvirtoji ir penktoji programavimo kalbų kartos dažniausiai buvo naudojamos kaip terminai, susiję su plėtojamų kalbų rinkodara. Rinkodaros ir kai kuriose akademinėse srityse didesnio skaičiaus kalbų kartos naudojamos nestandartiniu būdu, nurodant, kad viena kalba yra naujesnė arba turi daugiau funkcijų nei kita.
Pirmoji programavimo kalbų karta nurodo mašininį kodą. Tai reiškia, kad programa rašoma kaip baitų seka arba, kraštutiniais atvejais, bitai, kuriuos kompiuteris gali vykdyti tiesiogiai. Daugeliu atvejų tai reiškia sistemą, kuri priima įvestį per kieto kodo jungiklius ar kitus fizinius mechanizmus.
Antros kartos programavimo kalbos laikomos asamblėjos stiliaus kalbomis. Tai kalbos, parašytos naudojant žmogaus skaitomą kodą ir komandas, kurios vis dar yra susietos su konkrečiomis sistemos architektūromis, tačiau suteikia lengvesnę kūrimo aplinką ir tam tikrą abstrakciją. Asamblėjos kalbos niekada nebuvo nustotos naudoti nuo 2011 m. ir yra ne tik labai galingos, bet ir gali būti naudojamos kaip įterptieji teiginiai aukštesnio lygio programavimo kalbose, todėl klaidinga nuomonė, kad kalbos generavimas prilygsta jos greičiui ar galiai.
Trečiosios kartos programavimo kalbos dar labiau atskyrė kodą nuo procesoriaus, o tai leido sukurti kodą, kuriame buvo naudojami labiau skaitomi teiginiai. Be to, buvo sukurti kompiliatoriai, galintys vieną kodo eilutę paversti keliais surinkimo pareiškimais keliose platformose ir galiausiai dešimtimis ar daugiau mašininio kodo instrukcijų. Beveik visos kompiuterių kalbos, galinčios kompiliuoti dvejetainius vykdomuosius failus ir bibliotekas, laikomos trečiosios kartos kalbomis.
Apskritai, ketvirtos kartos kalba laikoma kalba, skirta naudoti tam tikros rūšies programavimo kalbą, kuri yra labai natūrali vartotojui. Ji taip pat gali būti apibrėžta kaip kalba, kuri naudoja vaizdinius elementus galutinei programai sukurti. Trečias apibrėžimas yra programavimo kalba, sukurta tam tikram tikslui, pavyzdžiui, duomenų bazės programavimo kalba arba greitojo taikomųjų programų kūrimo (RAD) kalba.
Laisvas penktosios kartos kompiuterių kalbos apibrėžimas yra tas, kuris leidžia programuotojui pateikti kompiuteriui problemą, kurią jis bando išspręsti. Dauguma kalbų, kurios yra įtrauktos į penktosios kartos kalbas, dažniausiai yra akademinio pobūdžio. Kitos programavimo kalbų kartos, tokios kaip šeštoji ir septintoji, komercinių kalbų kūrėjų naudojo rinkodaros tikslais.