U računarstvu, denotacijska semantika ili denotativna semantika[1] je jedan od pristupa u formaliziranju semantike programskih jezika konstruiranjem matematičkih objekata (zvanih denotacije ili značenja) koji izražavaju semantiku tih sustava. Drugi pristupi za formaliziranje semantike programskih jezika uključuju aksiomatsku semantiku i operacijsku semantiku. Denotacijska semantika je izvorno razvijena za modeliranje sustava koje definira jedan računalni program. Kasnije se polje djelovanja proširilo i uključilo sustave sačinjene od više programa, poput onih u računalnim mrežama i konkurentnim sustavima.
Denotacija je obično matematička vrijednost, poput broja ili funkcije. Davanje denotacijske semantike se sastoji od traženja kolekcije semantičkih domena i definiranja interpretacijske funkcije (ili valuacijske funkcije) koja preslikava terme programskog jezika u elemente tih domena. Traženje odgovarajućih semantičkih domena za modeliranje raznih osobina jezika je područje rada teorije domena.
Denotacijska je semantika apstraktnija od operacijske semantike jer eksplicitno ne specificira korake izračuna. Korisna je za dizajnere i korisnike programskih jezika, pošto zbog modularne strukture visoke razine individualni dijelovi jezika mogu biti pručavani bez pregledavanja cjelokupne definicije. S druge strane, implementator jezika ima znatno više posla.
Denotacijska je semantika razvijena 1960-ih na Oxfordu u istraživačkoj grupi pod vodstvom Christophera Stracheya. Dana Scott je metodi dao matematički rigor, a u kombinaciji s notacijskom elegancijom Stracheya je s vremenom evoluirala iz sredstva analize u alat dizajna i implementacije programskih jezika.