Che cosa è la programmazione dichiarativa?

Programmazione dichiarativa è un modo di specificare che cosa un programma dovrebbe fare, piuttosto che specificare come farlo. La maggior parte dei linguaggi di programmazione si basa sui passi necessari per risolvere un problema, ma alcune lingue indicano solo le caratteristiche essenziali del problema e lasciare al computer per determinare il modo migliore per risolvere il problema. Gli ex lingue sono detto di sostenere la programmazione imperativa, mentre il secondo supporto alla programmazione dichiarativa.

Si può considerare il seguente esempio da SQL per ottenere tutte le regioni di vendita in cui il profitto supera un certo numero, diciamo, $ 700 $ (USD), dai dati di vendita.

Selezionare Regione, utile da vendite dove Profit> 700

Questa affermazione non indica ciò che il sistema SQL deve fare, al fine di ottenere i dati. Il sistema SQL può passare attraverso ogni record di vendite e stabilire se la condizione è soddisfatta, o, può ottenere rapidamente i primi pochi record dai dati preordinati. L'istruzione indica solo la natura dei dati desiderati.

Prolog è un linguaggio di programmazione dichiarativa che indica le relazioni logiche tra entità.

antenato (M, C): - madre (M, C)
antenato (X, Z): - madre (X, Y), antenato (Y, Z)

Il programma di cui sopra indica banalità. Se M è la madre di C allora M è un antenato di C. Se X è la madre di una persona Y che è un antenato di Z, allora X è un antenato di Z. Dato questo e alcuni fatti madre-bambino, il programma può rispondere a domande circa l'intero albero famiglia materna.

Durante l'esecuzione del programma, il sistema Prolog costruisce una serie di affermazioni vere, creando così una knowledge. Questo knowledgebase viene cercato in modo efficiente da solo. Il creatore del programma di cui sopra non specifica come cercare.

HTML e CSS sono linguaggi di programmazione dichiarativi. Ad esempio, l'esempio HTML <table border = "1">, indica un bordo sottile. Un esempio CSS è colore: blu. Questa specifica il colore del testo. Come si può vedere in questi esempi, HTML e CSS specificare cosa deve apparire su una pagina web, ma non il modo di farlo.

Il vantaggio di linguaggi di programmazione dichiarativa è principalmente duplice. I programmi sono concise; questo lo rende facile anche per i non programmatori di ottenere soluzioni. Nell'esempio SQL sopra, una persona di supporto analista o azienda può ottenere le informazioni desiderate. Allo stesso modo, laici possono scrivere pagine web accettabili con semplici comandi HTML e CSS.

Il secondo vantaggio del modello di programmazione dichiarativa è che il codice imperativo ripetitivo che indica come risolvere le cose è previsto nel sistema informatico dietro le quinte. Tale codice può essere molto efficace e può incorporare le migliori idee dal calcolo. Si può sfruttare il parallelismo.