Operacijska semantika
U računarstvu, operacijska semantika je način davanja značenja računalnim programima na matematički rigorozan način.
Operacijska semantika općenito koristi neki apstraktni stroj poput interpretera za definiciju jezika. Ovaj stroj je apstraktan u smislu da koristi terme jezika kao svoj strojni kod. Za jednostavne jezike, stanje stroja je jednostavno term, i ponašanje stroja je definirano funkcijom prijelaza koja, za svako stanje, ili daje sljedeće stanje, ili obavlja korak pojednostavljenja terma, ili kaže da se stroj zaustavio. Značenje terma t se može uzeti kao kao konačno stanje stroja sa t kao inicijalnim stanjem.
Evaluacijska povijest je slijed internih konfiguracija interpretera. Značenje programa u jeziku je evaluacijska povijest koju interpreter producira prilikom evaluacije programa.
Nedostatak operacijske semantike jest u tome što se program može shvatiti samo kao slijed konfiguracija interpretera – ne postoji strojno-neovisna definicija. Također je problem i u samom interpreteru, koji je predstavljen kao algoritam, obično poprilično složen za netrivijalne jezike, a nerijetko složen kao i sam jezik kojeg definira.
Strukturalna operacijska semantika jest ona maloprije opisanog oblika - u kojem se term evaluira u malim koracima. U prirodnoj semantici se koristi veliki korak, u kojem jedan prijelaz apstraktnog stroja evaluira term u u konačni rezultat.
Prvi dana operacijska semantika jest ona od lambda računa.
Nedovršeni članak Operacijska semantika koji govori o računarstvu treba dopuniti. Dopunite ga prema pravilima uređivanja Hrvatske internetske enciklopedije.