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 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.