Semantik
Fra græsk "sema", som betyder tegn eller mærke. Benævnes i andre sammenhænge også semiologi eller semasiologi. Semantik er læren om ordenes og dermed et sprogs mening. I edb-sammenhæng bruges begrebet hovedsageligt i forbindelse med programmeringssprog.
De tidlige programmeringssprog blev beskrevet ved en blanding af formel specifikation (gerne syntaksen, se f.eks. BNF) og mere uformel beskrivelse på f.eks. engelsk af betydningen, semantikken, af de forskellige konstruktioner. Da naturlige sprog ikke altid bruges lige entydigt, kunne bl.a. de forskellige konstruktører af oversættere ofte give en bestemt konstruktion forskellig virkning, og dette kunne gøre programportabilitet svær at opnå. Fra 1970'erne har man derfor arbejdet på metoder til at angive semantikken helt præcist.
Der er et principielt problem ved definitionen af en given semantik, idet man er nødt til at anvende et sprog til at beskrive den, og dette sprog har så selv en semantik, der skal beskrives osv. Man nøjes derfor med et mindre ambitiøst mål, som er at finde en beskrivelsesform, der er bekvem, præcis og så entydig som mulig. Der er derfor fremkommet adskillige metoder.
Af vigtige formelle (dvs. matematiske) metoder til at definere programmeringssprogs semantik kan nævnes:
- operationssemantik (operationel semantik), der beskriver semantikken ved sekvenser af beregningsskridt for en abstrakt maskine
- denotationssemantik (tidligere også benævnt matematisk semantik), der beskriver hver sprogkonstruktions overordnede virkning. Beskrivelserne skal være "kompositionelle" i den forstand, at sammensatte konstruktioners semantik kun må afhænge af semantikken af de indgående delkonstruktioner. For at opnå dette er det nødvendigt at arbejde med funktioner af højere orden og med nogle raffinerede matematiske modeller, der konstrueres i Dana Scotts domæneteori (domain theory)
- aksiomatisk eller prædikatsemantik, der beskriver semantikken ved logiske udsagn, der er gyldige henholdsvis før og efter en konstruktion
- procesalgebra (se LOTOS)
