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

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

Βίντεο: Διαφορά μεταξύ Prolog και Lisp

Βίντεο: Διαφορά μεταξύ Prolog και Lisp
Βίντεο: Ιστορία Τεχνητής Νοημοσύνης 2024, Ιούλιος
Anonim

Prolog vs Lisp

Η Prolog και η Lisp είναι δύο από τις πιο δημοφιλείς γλώσσες προγραμματισμού υπολογιστών AI (Τεχνητής Νοημοσύνης) σήμερα. Είναι κατασκευασμένα με δύο διαφορετικά παραδείγματα προγραμματισμού. Η Prolog είναι μια δηλωτική γλώσσα, ενώ η Lisp είναι μια λειτουργική γλώσσα. Και τα δύο χρησιμοποιούνται για διάφορα προβλήματα τεχνητής νοημοσύνης, αλλά το Prolog χρησιμοποιείται περισσότερο για προβλήματα λογικής και συλλογιστικής, ενώ το Lisp για προβλήματα με γρήγορες ανάγκες πρωτοτύπων.

Prolog

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

Lisp

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

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

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

Συνιστάται: