Hvad er deklarativ programmering?
Deklarativ programmering er en måde at specificere, hvad et program skal gøre, snarere end at specificere, hvordan man gør det. 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æsentlige egenskaber ved problemet og overlader det til computeren for at bestemme den bedste måde at løse problemet på. Det siges, at de førstnævnte sprog understøtter imperativ programmering, mens sidstnævnte understøtter erklærende programmering.
man kan overveje følgende eksempel fra SQL for at få alle salgsregioner, hvor overskuddet overstiger et bestemt antal, siger, $ 700 amerikanske dollars (USD), fra salgsdata dataene. SQL -systemet kan gennemgå hver salgsrekord og afgøre, om tilstanden er opfyldt, eller det kan hurtigt få de øverste par poster fra de formidlede data. Erklæringen angiver kun DESIRED-data.
Prolog er et deklarativt programmeringssprog, der angiver de logiske forhold mellem enheder.
Ancestor (M, C):- Mor (M, C)
Ancestor (X, Z):- Mor (X, Y), Ancestor (Y, Z)
Ovenstående program indikerer truismer. Hvis M er mor til C, er M en forfader til C. Hvis X er mor til en person Y, der er en forfader til Z, er X en forfader til Z. I betragtning af dette og nogle mor-barn fakta, kan programmet besvare spørgsmål om hele moderens slægtstræ.
Under programudførelse opbygger Prolog Systemet et antal ægte udsagn og skaber således en videnbase. Denne videnbase søges effektivt på egen hånd. Skaberen af ovenstående program specificerer ikke, hvordan man søger.
HTML og CSS er deklarative programmeringssprog. For eksempel angiver HTML -eksemplet
Fordelen ved deklarative programmeringssprog er hovedsageligt to gange. Programmerne er kortfattede; Dette gør det let, selv for ikke-programmerere at få løsninger. I SQL -eksemplet ovenfor kan en analytiker eller forretningsstøtteperson få de ønskede oplysninger. Tilsvarende kan lægfolk skrive acceptable websider med enkle HTML- og CSS -kommandoer.
Den anden fordel ved den deklarative programmeringsmodel er den gentagne imperative kode, der indikerer, hvordan man løser ting, der findes i computersystemet bag kulisserne. En sådan kode kan gøres meget effektiv og kan inkorporere de bedste ideer fra computing. Det kan drage fordel af parallelisme.