Teorija programskih jezikov#
Razen zelo specifičnih programskih jezikov je praktično vsak sodobni jezik Turingovo poln, kar pomeni, da lahko v njem izrazimo vse izračunljive funkcije. Seveda pa to ne pomeni, da so zaradi tega vsi programski jeziki enakovredni. V enih se da programe pisati na precej krajši in elegantnejši način, drugi zagotavljajo dodatno varnost pri izvajanju, tretji proizvedejo učinkovitejšo strojno kodo, … Večini jezikov, ki se dobro obnesejo na vseh naštetih področjih, so skupni dobro zastavljeni matematični temelji. Navsezadnje je matematika najuniverzalnejši in najelegantnejši jezik.
Tako bomo pri tem predmetu najprej pogledali, kako z matematičnimi orodji definiramo programski jezik in analiziramo njegove lastnosti, nato pa še, kako lahko matematika nudi navdih za razvoj programskih jezikov in obratno.