Λογικός και συναρτησιακός προγραμματισμός - Σταματόπουλος, Παναγιώτης; Ροντογιάννης, Παναγιώτης (Αθήνα : Σύνδεσμος Ελληνικών Ακαδημαϊκών Βιβλιοθηκών, 2015)
Στο βιβλίο παρουσιάζονται δύο προγραμματιστικές φιλοσοφίες αρκετά διαφορετικές από αυτή του διαδικαστικού προγραμματισμού. Ο λόγος είναι για τον λογικό προγραμματισμό και τον συναρτησιακό προγραμματισμό, δύο μεθοδολογίες αντιμετώπισης προβλημάτων, οι οποίες, παρότι είναι αρκετά διαφορετικές μεταξύ τους, έχουν κοινό χαρακτηριστικό ότι υποστηρίζουν έναν δηλωτικό τρόπο προγραμματισμού. Οι μεθοδολογίες αυτές εφαρμόζονται στην πράξη μέσω συγκεκριμένων γλωσσών προγραμματισμού, αλλά ταυτόχρονα έχουν και αυστηρή θεωρητική τεκμηρίωση. Αρχικά, παρουσιάζεται η έννοια του δηλωτικού προγραμματισμού και αντιδιαστέλλεται με αυτήν του διαδικαστικού προγραμματισμού, κυρίως μέσω παραδειγμάτων επίλυσης συγκεκριμένων προβλημάτων. Στη συνέχεια, γίνεται μία εισαγωγική περιγραφή της φιλοσοφίας του λογικού προγραμματισμού και παρουσιάζεται η γλώσσα λογικού προγραμματισμού Prolog, σαν τυπικός εκπρόσωπος της φιλοσοφίας αυτής. Γίνεται συνοπτική αναφορά σε θέματα υλοποίησης συστημάτων Prolog, συζητούνται θέματα σχετικά με τις δυνατότητες παράλληλης επεξεργασίας σε περιβάλλοντα προγραμματισμού Prolog και εισάγεται η έννοια των περιορισμών στο λογικό προγραμματισμό. Δίνονται στοιχεία από τη λογική πρώτης τάξης, που είναι το μαθηματικό υπόβαθρο του λογικού προγραμματισμού, και παρουσιάζονται, σε σχετικά υψηλό επίπεδο, οι διάφορες προσεγγίσεις μελέτης της σημασίας των λογικών προγραμμάτων. Στο επόμενο μέρος του βιβλίου εισάγεται η δεύτερη δηλωτική μεθοδολογία προγραμματισμού, αυτή του συναρτησιακού προγραμματισμού, και παρουσιάζεται μία αντιπροσωπευτική γλώσσα συναρτησιακού προγραμματισμού, η Haskell. Τέλος, θίγονται κάποια θέματα σχετικά με το θεωρητικό υπόβαθρο του συναρτησιακού προγραμματισμού, όπως ο λάμδα λογισμός και οι συνδυαστές, καθώς και άλλα που αναφέρονται στις τεχνικές υλοποίησης των γλωσσών συναρτησιακού προγραμματισμού, όπως οι σειρές αναγωγής και η αναγωγή γράφων.
Keywords: Functional programming (Computer science); Logic programming; Συναρτήσεις; Λογική; Συναρτησιακός προγραμματισμός; Επιστήμη υπολογιστών/Πληροφορική -- Γλώσσες προγραμματισμού -- Λογικός προγραμματισμός; Επιστήμη υπολογιστών/Πληροφορική -- Ευφυή συστήματα -- Βασική αναπαράσταση γνώσης και συλλογιστική