Kompiuterių programavimo terminologijoje programavimo kalbos dažnai skirstomos į „aukšto lygio“ ir „žemo lygio“ kalbas. Skirtumas tarp šių dviejų yra aparatinės įrangos sąveikos klausimas. Paprasčiau tariant, žemo lygio kalbos yra „žemiau“ kompiuterinėje sistemoje, arčiau tikrosios aparatinės įrangos sąveikos. Aukšto lygio kalbos yra abstrahuojamos nuo aparatinės įrangos. Dėl šios abstrakcijos kodas gali būti greitesnis, lengviau skaitomas, bet mažesnė greičio nauda ir mažesnė prieiga prie sistemos išteklių.
Abstrakcija
Tai, kuo aukšto lygio kalbos skiriasi nuo žemo lygio kalbų, yra kalbos abstrakcijos nuo sistemos išteklių lygis. Kasdienis darbas su sistemos ištekliais gali tapti lėtas ir skausmingas. Šiai problemai spręsti buvo sukurtos aukšto lygio kalbos, tvarkant sistemą programuotojui, atlaisvinant jai atlikti sudėtingesnę užduotį, nekreipdama dėmesio į smulkiausias sistemos detales, tokias kaip atmintis valdymas. Tačiau tai turi trūkumą, nes programuotojas gali atsidurti situacijoje, kai reikalinga prieiga prie sistemos, o aukšto lygio kalba negali suteikti šios prieigos. Aukšto lygio kalba paprastai netinka sistemų programavimui.
Dienos vaizdo įrašas
Greitis
Aukšto lygio kalbos paprastai yra „interpretuojamos“ kalbos, o ne „sudarytos“ žemo lygio kalbos. „Interpretuota“ tiesiog reiškia, kad kalba naudoja vertėją, kuris vykdo šaltinio kodą po vieną eilutę, o ne kompiliuoja dvejetainį failą. Tačiau vertėjai dažnai yra programos, parašytos kompiliuotomis kalbomis. Dėl šios priežasties interpretuojama kalba – pavyzdžiui, Python – veikia tik ant Python vertėjo, parašyto C. Tai padidina interpretuojamų programų atmintį ir laiką, be to, jos dažnai vykdomos lėčiau.
Sistemos ypatumai
Atrodo, kad aukšto lygio kodo pranašumas yra jo perkeliamumas. Aukšto lygio kodas gali veikti bet kurioje sistemoje, kurioje įdiegtas atitinkamas vertėjas. Tačiau kai programa kompiliuojama kompiuteriui, ji kompiliuojant atsižvelgia į visą tos sistemos aplinką. Vertinama kalba jau yra abstrahuota iš sistemos iki tokio taško, kad interpretuojama programa nieko nežino apie sistemą, išskyrus tai, ką vertėjas gali jai pateikti.
Programavimo ribos
Dėl aukšto lygio kalbų pobūdžio yra tam tikrų užduočių, kurioms jos netinka arba bent jau netinka. Neturint prieigos prie sistemos išteklių, sunku sukurti greitas, OS vietines programas. Be to, net operacinės sistemos kūrimas tampa problemiškas. Kadangi vis daugiau programinės įrangos patenka į internetą, šis faktas tampa mažiau susirūpinęs, tačiau komerciniam ir pramoniniam naudojimui interpretuojamos kalbos gali veikti per lėtai arba pernelyg nutolusios nuo aparatinės įrangos sąveikos.