Hva er deklarativ programmering?
Deklarativ programmering er en måte å spesifisere hva et program skal gjøre, i stedet for å spesifisere hvordan det skal gjøres. De fleste dataspråk er basert på trinnene som trengs for å løse et problem, men noen språk indikerer bare de essensielle egenskapene til problemet og overlater det til datamaskinen for å finne den beste måten å løse problemet. De tidligere språkene sies å støtte imperativ programmering, mens de sistnevnte støtter deklarativ programmering.
Man kan vurdere følgende eksempel fra SQL for å få alle salgsregionene der overskuddet overstiger et visst antall, si $ 700 amerikanske dollar (USD), fra salgsdataene.
Velg region, fortjeneste fra salg der fortjeneste> 700
Denne uttalelsen indikerer ikke hva SQL-systemet må gjøre for å få dataene. SQL-systemet kan gå gjennom hver salgsrekord og bestemme om betingelsen er tilfreds, eller det kan raskt skaffe de beste postene fra forhåndsdefinerte data. Uttalelsen angir bare arten av de ønskede dataene.
Prolog er et deklarativt programmeringsspråk som indikerer de logiske forholdene mellom enhetene.
stamfar (M, C): - mor (M, C)
stamfar (X, Z): - mor (X, Y), stamfar (Y, Z)
Programmet ovenfor indikerer truismer. Hvis M er mor til C, er M en stamfar til C. Hvis X er mor til en person Y som er stamfar til Z, så er X en stamfar til Z. Gitt dette og noen fakta om mor-barn, er programmet kan svare på spørsmål om hele mors slektstre.
Under programgjennomføring bygger Prolog-systemet opp en rekke sanne utsagn, og skaper dermed en kunnskapsbase. Denne kunnskapsbasen søkes effektivt på egen hånd. Oppretteren av programmet over spesifiserer ikke hvordan du søker.
HTML og CSS er deklarative programmeringsspråk. For eksempel indikerer HTML-eksemplet <table border = "1"> en tynn kant. Et CSS-eksempel er farge: blå . Dette spesifiserer tekstfargen. Som det kan sees i disse eksemplene, spesifiserer HTML og CSS hva som skal vises på en webside, men ikke hvordan du gjør det.
Fordelen med deklarative programmeringsspråk er hovedsakelig to ganger. Programmene er kortfattede; dette gjør det enkelt selv for ikke-programmerere å få tak i løsninger. I SQL-eksemplet over kan en analytiker eller forretningsstøtteperson få ønsket informasjon. På samme måte kan lagfolk skrive akseptable websider med enkle HTML- og CSS-kommandoer.
Den andre fordelen med den deklarative programmeringsmodellen er at repeterende imperativkode som indikerer hvordan man løser ting, er tilgjengelig i datasystemet bak kulissene. Slik kode kan effektiviseres og kan inkludere de beste ideene fra databehandling. Det kan dra nytte av parallellisme.