programski jezici, umjetni jezici kojima su pisani programi za rad na elektroničkom računalu. Tim se jezicima strogo definiraju sintaktička pravila, kao i programske naredbe (instrukcije) kojima se propisuje pojedina radna operacija računala. Među programskim jezicima, razlikuju se strojni jezici i simbolički jezici.
Strojni jezici sastoje se od nula i jedinica, tj. binarno kodiranih instrukcija koje procesor (→ mikroprocesor) može interpretirati. Za svaki je procesor osmišljen skup instrukcija koje on može izvoditi nad podatcima smještenima u registrima ili u spremniku, na mjestima određenima adresnim dijelom instrukcije. Niz strojnih instrukcija smještenih u radni spremnik računala, spremnih za izvođenje bez prethodne obradbe, naziva se strojnim programom (kadšto strojni kod). Svaki se računalni program prije izvođenja na računalu priprema kao strojni program.
Simbolički jezici imaju nizove nula i jedinica zamijenjene simbolima, kako bi bili jednostavniji za pisanje programa (→ programiranje). Niži simbolički jezici sličniji su strojnomu jeziku, npr. asemblerski jezik (→ asembler), a viši prirodnim jezicima. Viši programski jezici omogućavaju oblikovanje složenijih podatkovnih struktura te obavljanje složenijih operacija nad takvim strukturama. Kako bi se mogli izvesti na računalu, potrebno je programe pisane višim simboličkim jezicima prevesti u strojni kod uz pomoć programa za prevođenje. Kod nekih se jezika tijekom izvršavanja programa prevodi naredba po naredba, što obavljaju programi interpreteri, dok se kod drugih jezika prevode cjeloviti programi prije njihova izvršavanja, što obavljaju programi kompilatori. Višim se programskim jezicima pokušavalo na različite načine olakšati pripremanje složenih programa. Strukturirano je programiranje nastojanje pisanja jasno strukturiranih, hijerarhijski građenih programa kako bi se postigla što bolja čitljivost programa i njihovo održavanje. Skupina naredaba koje obavljaju neku funkciju može se ujediniti u tzv. proceduru, koja se pokreće kao cjelina, pa su složeni programi sastavljeni od pozivanja unaprijed pripremljenih procedura. Takvi se jezici nazivaju procedurno orijentiranim jezicima (npr. fortran; cobol; basic; algol; pascal; ada; c). Daljnji napredak u programiranju omogućuju objektno orijentirani jezici (C++, java), koji upotrebljavaju i unaprijed određene strukture podataka, te funkcije nad tim strukturama ujedinjene u objekte. U tim je jezicima predviđena mogućnost stvaranja novih objekata, koji nasljeđuju svojstva prethodno određenih objekata, i tako olakšavaju programiranje. (→ računalni program)