Hvad er deklarativ programmering?
Deklarativ programmering er en måde at specificere, hvad et program skal gøre, snarere end at specificere, hvordan det skal gøres. De fleste computersprog er baseret på de trin, der er nødvendige for at løse et problem, men nogle sprog angiver kun de væsentligste egenskaber ved problemet og overlader det til computeren for at bestemme den bedste måde at løse problemet. Det siges, at de førstnævnte sprog understøtter imperativ programmering, mens sidstnævnte støtter deklarativ programmering.
Man kan overveje følgende eksempel fra SQL for at få alle salgsregioner, hvor overskuddet overstiger et bestemt antal, siger $ 700 US Dollars (USD), fra salgsdataene.
Vælg Region, Resultat af salg, hvor overskud> 700
Denne erklæring angiver ikke, hvad SQL-systemet skal gøre for at få dataene. SQL-systemet kan gennemgå hver salgsrekord og bestemme, om betingelsen er opfyldt, eller det kan hurtigt hente de øverste par poster fra forudindstillede data. Uddannelsen angiver kun arten af de ønskede data.
Prolog er et deklarativt programmeringssprog, der angiver de logiske forhold mellem enheder.
stamfar (M, C): - mor (M, C)
stamfar (X, Z): - mor (X, Y), stamfar (Y, Z)
Ovenstående program indikerer truismer. Hvis M er mor til C, så er M en stamfar til C. Hvis X er mor til en person Y, der er stamfar til Z, så er X en stamfar til Z. I betragtning af dette og nogle mor-barn-fakta, er programmet kan besvare spørgsmål om hele moderens slægtstræ.
Under programudførelse bygger Prolog-systemet op et antal ægte udsagn og skaber således en vidensbase. Denne vidensbase søges effektivt alene. Oprettelsen af ovenstående program specificerer ikke, hvordan man søger.
HTML og CSS er deklarative programmeringssprog. F.eks. Angiver HTML-eksemplet <table border = "1"> en tynd ramme. Et CSS-eksempel er farve: blå . Dette specificerer tekstfarven. Som det kan ses i disse eksempler, specificerer HTML og CSS, hvad der skal vises på en webside, men ikke hvordan man gør det.
Fordelen ved deklarative programmeringssprog er hovedsageligt dobbelt. Programmerne er kortfattede; dette gør det let, selv for ikke-programmerere at få løsninger. I SQL-eksemplet ovenfor kan en analytiker eller forretningssupportperson få den ønskede information. Tilsvarende kan lægfolk skrive acceptable websider med enkle HTML- og CSS-kommandoer.
Den anden fordel ved den deklarerende programmeringsmodel er, at gentagen imperativkode, der angiver, hvordan man løser ting, findes i computersystemet bag kulisserne. Sådan kode kan gøres meget effektiv og kan inkorporere de bedste ideer fra computing. Det kan drage fordel af parallelismen.