Προηγούμενη Πάνω Επίπεδο Επόμενη Περιεχόμενα
Επόμενη: Η Αρχή της Ανάλυσης Πάνω Επίπεδο: Ανάλυση Προηγούμενη: Αντικατάσταση

4.4 Ενοποίηση

Ονομάζουμε ενοποίηση (unification) τη διαδικασία που απαιτείται για να γίνουν δύο εκφράσεις όμοιες, με χρήση αντικαταστάσεων. Για δύο εκφράσεις E1 και E2, o ενοποιητής (unifier) τους, είναι μια αντικατάσταση tex2html_wrap_inline1282, τέτοια ώστε η έκφραση tex2html_wrap_inline1342 να είναι συντακτικά όμοια με την tex2html_wrap_inline1344. Αν υπάρχει μια τέτοια αντικατάσταση tex2html_wrap_inline1282, θα λέμε ότι οι εκφράσεις E1, E2 είναι ενοποιήσιμες (unifiable).

Για παράδειγμα, η αντικατάσταση tex2html_wrap_inline1350 είναι ένας ενοποιητής για τις εκφράσεις tex2html_wrap_inline1352 και tex2html_wrap_inline1354, αφού μετά την εφαρμογή της παίρνουμε tex2html_wrap_inline1356.

Αν η tex2html_wrap_inline1282 είναι ένας ενοποιητής για ένα σύνολο εκφράσεων tex2html_wrap_inline1050 και αν για κάθε ενοποιητή tex2html_wrap_inline1362 του tex2html_wrap_inline1050 υπάρχει μια αντικατάσταση tex2html_wrap_inline1366 τέτοια, ώστε tex2html_wrap_inline1368, τότε η tex2html_wrap_inline1282 ονομάζεται γενικότερος ταυτοποιητής - mgu (most general unifier) για το tex2html_wrap_inline1050. Για παράδειγμα, αν
displaymath1328
τότε η αντικατάσταση
displaymath1329
είναι ένας mgu για το tex2html_wrap_inline1050, ενώ η αντικατάσταση
displaymath1330
είναι ενοποιητής για το tex2html_wrap_inline1050 αλλά όχι και mgu , διότι δεν υπάρχει αντικατάσταση tex2html_wrap_inline1366 με
displaymath1331

Αξίζει να παρατηρηθεί ότι υπάρχει αλγόριθμος, τέτοιος ώστε αν ένα πεπερασμένο σύνολο τύπων tex2html_wrap_inline1050 είναι ενοποιήσιμο, να τερματίζει και να επιστρέφει τον mgu του tex2html_wrap_inline1050. Αν πάλι δεν υπάρχει, τότε τερματίζει κι αναφέρει ότι το tex2html_wrap_inline1050 δεν είναι ενοποιήσιμο.



Εργαστήριο Γλωσσών Προγραμματισμού και Τεχνολογίας Λογισμικού
Mon Apr 5 16:25:43 EEST 1999