Wat is declaratief programmeren?
Declaratief programmeren is een manier om aan te geven wat een programma moet doen, in plaats van aan te geven hoe het moet. De meeste computertalen zijn gebaseerd op de stappen die nodig zijn om een probleem op te lossen, maar sommige talen geven alleen de essentiële kenmerken van het probleem aan en laten het aan de computer over om de beste manier te vinden om het probleem op te lossen. Van de voormalige talen wordt gezegd dat ze imperatief programmeren ondersteunen, terwijl de laatste talen declaratief programmeren ondersteunen.
Men kan het volgende voorbeeld van SQL overwegen om uit de verkoopgegevens alle verkoopregio's te halen waar de winst een bepaald aantal, zeg $ 700 US Dollars (USD), overschrijdt.
Selecteer Regio, Winst uit verkoop waarbij Winst> 700
Deze verklaring geeft niet aan wat het SQL-systeem moet doen om de gegevens te verkrijgen. Het SQL-systeem kan elk verkooprecord doorlopen en bepalen of aan de voorwaarde is voldaan, of het kan snel de bovenste paar records verkrijgen uit voorgesorteerde gegevens. De verklaring geeft alleen de aard van de gewenste gegevens aan.
Prolog is een declaratieve programmeertaal die de logische relaties tussen entiteiten aangeeft.
voorouder (M, C): - moeder (M, C)
voorouder (X, Z): - moeder (X, Y), voorouder (Y, Z)
Bovenstaand programma geeft truismen aan. Als M de moeder van C is, dan is M een voorouder van C. Als X de moeder is van een persoon Y die een voorouder is van Z, dan is X een voorouder van Z. Gegeven dit en enkele moeder-kind feiten, het programma kan vragen beantwoorden over de hele familiestamboom.
Tijdens de uitvoering van het programma bouwt het Prolog-systeem een aantal echte uitspraken op, waardoor een kennisbank wordt gecreëerd. Deze kennisbank wordt op zichzelf efficiënt doorzocht. De maker van het bovenstaande programma geeft niet op hoe te zoeken.
HTML en CSS zijn declaratieve programmeertalen. Het HTML-voorbeeld <table border = "1"> geeft bijvoorbeeld een dunne rand aan. Een CSS-voorbeeld is kleur: blauw . Dit geeft de tekstkleur aan. Zoals te zien is in deze voorbeelden, specificeren HTML en CSS wat er op een webpagina moet verschijnen, maar niet hoe.
Het voordeel van declaratieve programmeertalen is hoofdzakelijk tweeledig. De programma's zijn beknopt; dit maakt het zelfs voor niet-programmeurs gemakkelijk om oplossingen te verkrijgen. In het bovenstaande SQL-voorbeeld kan een analist of bedrijfsondersteuner de gewenste informatie krijgen. Evenzo kunnen leken acceptabele webpagina's schrijven met eenvoudige HTML- en CSS-opdrachten.
Het tweede voordeel van het declaratieve programmeermodel is dat achter de schermen in het computersysteem repetitieve imperatieve code wordt weergegeven die aangeeft hoe dingen moeten worden opgelost. Dergelijke code kan zeer efficiënt worden gemaakt en kan de beste ideeën van computing bevatten. Het kan profiteren van parallellisme.