Che cos'è la programmazione dichiarativa?
La programmazione dichiarativa è un modo per specificare cosa dovrebbe fare un programma, piuttosto che specificare come farlo. La maggior parte dei linguaggi informatici si basa sui passaggi necessari per risolvere un problema, ma alcuni linguaggi indicano solo le caratteristiche essenziali del problema e lo lasciano al computer per determinare il modo migliore per risolverlo. Si dice che le prime lingue supportino la programmazione imperativa mentre le seconde supportano la programmazione dichiarativa.
Si può prendere in considerazione il seguente esempio da SQL per ottenere tutte le aree di vendita in cui il profitto supera un certo numero, ad esempio $ 700 dollari statunitensi (USD), dai dati di vendita.
Seleziona Regione, Utile da Vendite dove Utile> 700
Questa affermazione non indica cosa deve fare il sistema SQL per ottenere i dati. Il sistema SQL può esaminare ogni record di vendita e determinare se la condizione è soddisfatta oppure può ottenere rapidamente i primi record dai dati preordinati. L'istruzione indica solo la natura dei dati desiderati.
Prolog è un linguaggio di programmazione dichiarativo che indica le relazioni logiche tra entità.
antenato (M, C): - madre (M, C)
antenato (X, Z): - madre (X, Y), antenato (Y, Z)
Il programma sopra indica verità. 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-figlio, il programma può rispondere a domande sull'intero albero genealogico materno.
Durante l'esecuzione del programma, il sistema Prolog crea una serie di affermazioni vere, creando così una base di conoscenza. Questa knowledge base viene cercata in modo efficiente da sola. Il creatore del programma 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 è color: blue . Questo specifica il colore del testo. Come si può vedere in questi esempi, HTML e CSS specificano cosa dovrebbe apparire in una pagina web ma non come farlo.
Il vantaggio dei linguaggi di programmazione dichiarativa è principalmente duplice. I programmi sono concisi; questo rende facile anche per i non programmatori ottenere soluzioni. Nell'esempio SQL sopra, un analista o una persona di supporto aziendale può ottenere le informazioni desiderate. Allo stesso modo, i 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 è fornito nel sistema informatico dietro le quinte. Tale codice può essere reso altamente efficiente e può incorporare le idee migliori dall'informatica. Può trarre vantaggio dal parallelismo.