ART

 

.

Το 1983, ο David H. D. Warren σχεδίασε μια αφηρημένη μηχανή για την εκτέλεση του Prolog που αποτελείται από μια αρχιτεκτονική μνήμης και ένα σύνολο εντολών.[1][2][3] Αυτό το σχέδιο έγινε γνωστό ως Warren Abstract Machine (WAM) και έχει γίνει ο de facto τυπικός στόχος για τους μεταγλωττιστές Prolog.
Σκοπός

Ο σκοπός της μεταγλώττισης του κώδικα Prolog στον κώδικα WAM πιο χαμηλού επιπέδου είναι να γίνει πιο αποτελεσματική η επακόλουθη ερμηνεία του προγράμματος Prolog. Ο κώδικας Prolog μεταφράζεται αρκετά εύκολα σε οδηγίες WAM, οι οποίες μπορούν να ερμηνευθούν πιο αποτελεσματικά. Επίσης, επακόλουθες βελτιώσεις κώδικα και μεταγλωττίσεις σε εγγενή κώδικα είναι συχνά πιο εύκολο να εκτελεστούν σε αναπαράσταση πιο χαμηλού επιπέδου.

Προκειμένου να γραφτούν αποτελεσματικά προγράμματα Prolog, μια βασική κατανόηση του τρόπου λειτουργίας του WAM μπορεί να είναι επωφελής. Μερικές από τις πιο σημαντικές έννοιες του WAM είναι η ευρετηρίαση πρώτου επιχειρήματος και η σχέση του με τα σημεία επιλογής, η βελτιστοποίηση κλήσεων ουράς και η ανάκτηση μνήμης σε περίπτωση αποτυχίας.
Περιοχές μνήμης

Το WAM έχει τις ακόλουθες περιοχές μνήμης:

Η καθολική στοίβα ή σωρό, που χρησιμοποιείται για την αποθήκευση σύνθετων όρων
Η τοπική στοίβα για πλαίσια περιβάλλοντος και σημεία επιλογής
Η διαδρομή για την καταγραφή των δεσμεύσεων των μεταβλητών θα πρέπει να αναιρεθεί κατά την αναδρομή

Εγκυκλοπαίδεια Πληροφορικής

Κόσμος

Αλφαβητικός κατάλογος

Hellenica World - Scientific Library

Από τη ελληνική Βικιπαίδεια http://el.wikipedia.org . Όλα τα κείμενα είναι διαθέσιμα υπό την GNU Free Documentation License