One embodiment of the present invention facilitates low-level systems programming in dynamic, "pointer-safe" programming languages, which disallow arbitrary references through pointers. It does so by avoiding the creation of object instances in the traditional fashion. Rather, a large heap is defined to store dynamically allocated data objects, and explicit memory management operations are implemented in order to allocate and deallocate memory from the heap. Traditional object pointers are replaced by indices to the heap. The described technique allows the bypassing of traditional object allocation, thus making object allocation static from the viewpoint of the pointer-safe programming language--with the exception of the large array that is allocated to serve as the heap. Since the new memory system is implemented on top of an existing automatic memory system, varying degrees of automatic and manual memory management are possible.

Μια ενσωμάτωση της παρούσας εφεύρεσης διευκολύνει το χαμηλού επιπέδου προγραμματισμό συστημάτων σε δυναμικό, γλώσσες προγραμματισμού "δείκτης-χρηματοκιβωτίων", οι οποίες απαγορεύουν τις αυθαίρετες αναφορές μέσω των δεικτών. Κάνει έτσι με την αποφυγή της δημιουργίας των περιπτώσεων αντικειμένου στην παραδοσιακή μόδα. Μάλλον, ένας μεγάλος σωρός καθορίζεται για να αποθηκεύσει τα δυναμικά διατιθέμενα αντικείμενα στοιχείων, και οι ρητές διοικητικές διαδικασίες μνήμης εφαρμόζονται προκειμένου να διατεθεί και να απελευθερωθεί η μνήμη από το σωρό. Οι παραδοσιακοί δείκτες αντικειμένου αντικαθίστανται από τους δείκτες στο σωρό. Η περιγεγραμμένη τεχνική επιτρέπει την παράκαμψη της παραδοσιακής κατανομής αντικειμένου, καθιστώντας κατά συνέπεια την κατανομή αντικειμένου στατική από την άποψη της δείκτης-ασφαλούς γλώσσας προγραμματισμού -- με εξαίρεση τη μεγάλη σειρά που διατίθεται για να χρησιμεύσει ως ο σωρός. Δεδομένου ότι το νέο σύστημα μνήμης εφαρμόζεται πάνω από ένα υπάρχον αυτόματο σύστημα μνήμης, οι ποικίλοι βαθμοί αυτόματης και χειρωνακτικής διαχείρισης μνήμης είναι δυνατοί.

 
Web www.patentalert.com

< (none)

< Aggregate structure identification and its application to program analysis

> Provably correct storage arrays

> (none)

~ 00012