Διαφορά μεταξύ Prolog και Lisp

Anonim

Χτίζονται με δύο διαφορετικά παραδείγματα προγραμματισμού. Το Prolog είναι μια δηλωτική γλώσσα, ενώ η Lisp είναι μια λειτουργική γλώσσα. Και οι δύο χρησιμοποιούνται για διάφορα προβλήματα ΑΙ, αλλά το Prolog χρησιμοποιείται περισσότερο για προβλήματα λογικής και συλλογισμού, ενώ η Lisp χρησιμοποιείται για προβλήματα με τις ανάγκες γρήγορων πρωτοτύπων.

Prolog

Το Prolog είναι μια γλώσσα προγραμματισμού AI. Ανήκει στην οικογένεια λογικών λογικών προγραμματισμού. Το Prolog είναι μια δηλωτική γλώσσα, στην οποία οι υπολογισμοί μεταφέρονται διεξάγοντας ερωτήματα πάνω στις σχέσεις (που αντιπροσωπεύουν την λογική του προγράμματος), οι οποίες ορίζονται ως κανόνες και γεγονότα. Αναπτύχθηκε το 1970, το prolog είναι μία από τις παλαιότερες λογικές γλώσσες προγραμματισμού και μία από τις πιο δημοφιλείς γλώσσες προγραμματισμού AI σήμερα (μαζί με την Lisp). Είναι μια ελεύθερη γλώσσα, αλλά πολλές εμπορικές παραλλαγές είναι διαθέσιμες. Χρησιμοποιήθηκε για πρώτη φορά για επεξεργασία φυσικής γλώσσας, αλλά τώρα χρησιμοποιείται για διάφορες εργασίες, όπως συστήματα εμπειρογνωμόνων, αυτοματοποιημένα συστήματα απάντησης, παιχνίδια και προηγμένα συστήματα ελέγχου. Το Prolog έχει μόνο έναν τύπο δεδομένων που ονομάζεται όρος. Ένας όρος μπορεί να είναι ένα άτομο, ένας αριθμός, ένας μεταβλητός ή ένας σύνθετος όρος. Οι αριθμοί μπορούν να είναι float ή ακέραιοι αριθμοί. Το Prolog υποστηρίζει λίστες και συμβολοσειρές ως συλλογή στοιχείων. Το Prolog ορίζει τις σχέσεις χρησιμοποιώντας ρήτρες. Οι ρήτρες μπορεί να είναι είτε κανόνες είτε γεγονότα. Το Prolog επιτρέπει την επαναληπτική επανάληψη των αναδρομικών κατηγοριών.

Lisp

Η Lisp είναι μια οικογένεια γλωσσών προγραμματισμού υπολογιστών. Και οι πιο διάσημοι διάλεκτοι Lisp που χρησιμοποιούνται σήμερα για τον προγραμματισμό γενικού σκοπού είναι το Common Lisp and Scheme. Το όνομα LISP προέρχεται από την "επεξεργασία LISt" και, όπως υποδεικνύει, η κύρια δομή δεδομένων της Lisp είναι η συνδεδεμένη λίστα. Στην πραγματικότητα, ολόκληρη η πηγή γράφεται με λίστες (με χρήση πρόθετης συμβολής) ή με πιο ορθά παραλληλισμένες λίστες (αποκαλούμενες s-εκφράσεις). Για παράδειγμα, μια κλήση συνάρτησης γράφεται ως (f a1 a2 a3), που σημαίνει ότι η συνάρτηση f ονομάζεται χρησιμοποιώντας a1, a2 και a3 ως επιχειρήματα εισόδου για τη συνάρτηση. Ως εκ τούτου, ονομάζεται γλώσσα με βάση την έκφραση, όπου όλα τα δεδομένα και ο κώδικας γράφονται ως εκφράσεις (δεν υπάρχει διάκριση μεταξύ εκφράσεων και δηλώσεων στο Lisp). Αυτό το ωραίο χαρακτηριστικό είναι πολύ ιδιαίτερο για τον Lisp, όπου θα μπορούσε να χρησιμοποιηθεί για να επεκτείνει τη γλώσσα στο πρόβλημα στο χέρι γράφοντας χρήσιμες μακροεντολές. Αν και η επαναφορά των ουρών χρησιμοποιείται από τους προγραμματιστές για να εκφράσουν βρόχους, όλες οι διαλέκτιες Lisp που συχνά παρατηρούνται περιλαμβάνουν δομές ελέγχου όπως βρόχο. Επιπλέον, το Common Lisp και το σχέδιο έχουν mapcar και χάρτη που είναι παραδείγματα λειτουργιών, οι οποίες παρέχουν λειτουργικότητα με βρόχο, εφαρμόζοντας τη λειτουργία διαδοχικά σε όλα τα στοιχεία της και στη συνέχεια συλλέγει τα αποτελέσματα σε μια λίστα.

Ποια είναι η διαφορά μεταξύ Prolog και Lisp;

Αν και το Prolog και το Lisp είναι δύο από τις πιο δημοφιλείς γλώσσες προγραμματισμού του AI, έχουν διάφορες διαφορές. Το Lisp είναι μια λειτουργική γλώσσα, ενώ το Prolog είναι λογική προγραμματισμού και δηλωτικές γλώσσες. Το Lisp είναι πολύ ευέλικτο λόγω των γρήγορων πρωτοτύπων και των μακροσκοπικών χαρακτηριστικών του, έτσι ώστε να επιτρέπει την επέκταση της γλώσσας ώστε να ταιριάζει στο πρόβλημα στο χέρι. Στις περιοχές του AI, των γραφικών και των διεπαφών χρήστη, η Lisp έχει χρησιμοποιηθεί εκτεταμένα εξαιτίας αυτής της δυνατότητας ταχείας δημιουργίας πρωτοτύπων. Ωστόσο, λόγω των ενσωματωμένων δυνατοτήτων προγραμματισμού της λογικής, το Prolog είναι ιδανικό για προβλήματα AI με συμβολική συλλογιστική, εφαρμογές βάσης δεδομένων και γλώσσας. Η επιλογή ενός από τον άλλο εξαρτάται εντελώς από τον τύπο του προβλήματος της ΑΠ που πρέπει να επιλυθεί.