Vad är deklarativ programmering?

Deklarativ programmering är ett sätt att specificera vad ett program ska göra, snarare än att specificera hur man gör det. De flesta datorspråk är baserade på stegen som behövs för att lösa ett problem, men vissa språk anger bara de väsentliga egenskaperna för problemet och lämnar det till datorn för att avgöra det bästa sättet att lösa problemet. De tidigare språken sägs stödja tvingande programmering medan de senare stöder deklarativ programmering.

Man kan överväga följande exempel från SQL för att få alla försäljningsregioner där vinsten överstiger ett visst antal, säg 700 USD, från försäljningsdata.

Välj Region, vinst från försäljning där vinst> 700

Detta uttalande indikerar inte vad SQL-systemet måste göra för att få informationen. SQL-systemet kan gå igenom varje försäljningsrekord och avgöra om villkoret är uppfyllt, eller kan det snabbt få de bästa posterna från förordnade data. Uttalandet anger bara arten av de önskade uppgifterna.

Prolog är ett deklarativt programmeringsspråk som indikerar de logiska relationerna mellan enheter.

förfader (M, C): - mor (M, C)
förfader (X, Z): - mor (X, Y), förfader (Y, Z)

Ovanstående program indikerar truismer. Om M är mamma till C, är M en förfader till C. Om X är mamman till någon person Y som är en förfader till Z, då är X en förfader till Z. Med tanke på detta och några fakta om moder-barn, är programmet kan svara på frågor om hela familjeträdet.

Under programutförandet bygger Prolog-systemet upp ett antal riktiga uttalanden och skapar därmed ett kunskapsbas. Denna kunskapsbas söks effektivt på egen hand. Skaparen av ovanstående program anger inte hur man söker.

HTML och CSS är deklarativa programmeringsspråk. Exempelvis indikerar HTML-exemplet <table border = "1"> en tunn kant. Ett CSS-exempel är färg: blå . Detta anger textfärgen. Som man kan se i dessa exempel anger HTML och CSS vad som ska visas på en webbsida men inte hur man gör det.

Fördelen med deklarativa programmeringsspråk är huvudsakligen tvåfaldigt. Programmen är kortfattade; detta gör det enkelt även för icke-programmerare att få lösningar. I SQL-exemplet ovan kan en analytiker eller affärsstödperson få önskad information. Likaså kan laypersons skriva acceptabla webbsidor med enkla HTML- och CSS-kommandon.

Den andra fördelen med den deklarativa programmeringsmodellen är att repeterande imperativkod som indikerar hur man löser saker finns i datorsystemet bakom kulisserna. Sådan kod kan göras mycket effektiv och kan innehålla de bästa idéerna från datoranvändning. Det kan dra fördel av parallellitet.

ANDRA SPRÅK

Hjälpte den här artikeln dig? Tack för feedbacken Tack för feedbacken

Hur kan vi hjälpa? Hur kan vi hjälpa?