Many programming languages utilize reference pointers in computer code.
Furthermore, some of these programming languages perform memory management
in the form of garbage collection. Once such language is Java. During the
execution of a garbage collection routine, the computer may need to locate
all the variables containing reference values. The present invention
introduces a method for run-time tracking of object references in computer
code and determining which variables contain references to objects at
garbage collection sites. The method of the present invention first
creates a bit vector in memory. The bit vector is then initialized.
Second, each variable declared in the computer program that may be used to
store a reference value is assigned a unique bit within this bit vector.
Each bit is maintained to indicate whether the variable it is assigned to
is currently storing a reference value. Specifically, when a variable is
assigned a reference value, the corresponding bit in the bit vector is
set. When a variable is assigned a non-reference value, the corresponding
bit in the bit vector is cleared.
Πολλές γλώσσες προγραμματισμού χρησιμοποιούν τους δείκτες αναφοράς στον κώδικα υπολογιστών. Επιπλέον, μερικές από αυτές τις γλώσσες προγραμματισμού εκτελούν τη διαχείριση μνήμης υπό μορφή συλλογής απορριμάτων. Μόλις τέτοια γλώσσα είναι Ιάβα. Κατά τη διάρκεια της εκτέλεσης μιας ρουτίνας συλλογής απορριμάτων, ο υπολογιστής μπορεί να πρέπει να εντοπίσει όλες τις μεταβλητές που περιέχουν τις τιμές αναφοράς. Η παρούσα εφεύρεση εισάγει μια μέθοδο για την καταδίωξη χρόνου εκτέλεσης των αναφορών αντικειμένου στον κώδικα υπολογιστών και τον καθορισμό ποιου μεταβλητές περιέχουν τις αναφορές στα αντικείμενα επί των τόπων συλλογής απορριμάτων. Η μέθοδος της παρούσας εφεύρεσης δημιουργεί αρχικά λίγο διανυσματικό στη μνήμη. Το διάνυσμα κομματιών μονογράφεται έπειτα. Δεύτερον, σε κάθε μεταβλητή που δηλώνεται στο πρόγραμμα υπολογιστών που μπορεί να χρησιμοποιηθεί για να αποθηκεύσει μια αξία αναφοράς ορίζεται ένα μοναδικό κομμάτι μέσα σε αυτό το διάνυσμα κομματιών. Κάθε κομμάτι διατηρείται για να δείξει εάν η μεταβλητή που ορίζεται αποθηκεύει αυτήν την περίοδο μια αξία αναφοράς. Συγκεκριμένα, όταν ορίζεται σε μια μεταβλητή μια αξία αναφοράς, το αντίστοιχο κομμάτι στο διάνυσμα κομματιών τίθεται. Όταν σε μια μεταβλητή ορίζεται μια αξία μη-αναφοράς, το αντίστοιχο κομμάτι στο διάνυσμα κομματιών καθαρίζεται.