Home

programlogikk

Programlogikk er et fagfelt innen informatikk som studerer hvordan logiske prinsipper kan brukes til å beskrive, analysere og verifisere oppførselen til dataprogrammer. Målet er å kunne presist angi hva et program gjør under ulike forhold og å kunne begrunne at det oppfyller nødvendige krav, som sikkerhet, pålitelighet og korrekthet.

I praksis bruker programlogikk formelle spesifikasjoner og bevis. En av de mest kjente formene er Hoare-logikk,

Flere logik-typer brukes i programlogikk, blant annet førsteordens logikk for å formulere egenskaper, temporallogikk for tidsavhengige

Programlogikk er tett knyttet til formelle metoder og programverifikasjon, og brukes i utvikling av kritiske systemer

Historisk har utviklingen av programlogikk røtter i arbeider av C. A. R. Hoare på 1960- og 1970-tallet,

som
uttrykker
oppførsel
med
Hoare-triple
formatet
{P}
C
{Q},
der
P
er
en
forutsetning,
C
en
kommando
og
Q
en
ettertilstand.
Sukzessiv
anvendelse
av
slike
trippel
hjelper
til
å
bevise
at
et
program
er
korrekt
i
tråd
med
spesifikasjonen.
eller
interagerende
systemer,
og
adskilningslogikk
(separation
logic)
for
å
håndtere
peker-
og
minneoperasjoner.
Verktøy
som
modelljekking
og
bevisassistenter
støtter
ofte
automatisert
eller
semi-automatisk
bevisførsel.
i
fly,
bil
og
kjernekraft,
samt
i
programvare
som
krever
høyt
tillitsnivå.
Den
gir
et
differensiert
rammeverk
for
kravspesifikasjon,
testing
og
sikkerhetsevaluering
utover
tradisjonell
test.
senere
utvidet
av
forskere
som
E.
W.
Dijkstra,
og
videre
med
utviklingen
av
separation
logic
og
modellchecking.
Faget
fortsetter
å
utvikle
seg
med
nye
verktøy
og
metoder
for
sikrere
og
mer
pålitelig
programvare.