ასე რომ, ამ თვალსაზრისით, აუცილებელია მეხსიერების ავტომატური დინამიური განაწილება, და პრაქტიკაში ეს ნიშნავს: დიახ, Haskell-ს სჭირდება ნაგვის შემგროვებელი, რადგან ნაგვის შეგროვება ყველაზე მაღალი ხარისხის ავტომატიკაა. დინამიური მეხსიერების მენეჯერი.
აქვს ჰასკელს ნაგვის შემგროვებელი?
Haskell გაშვების სისტემა იყენებს თაობათა ნაგვის შემგროვებელს (GC) ორი თაობის 2. თაობები დანომრილია უმცროსი თაობიდან ნულიდან. ღირებულებები ყოველთვის ნაწილდება ახალგაზრდა თაობის განსაკუთრებულ ნაწილში, რომელსაც ბაგა-ბაღი ჰქვია.
რომელ ენაზე არ არის ნაგვის შეგროვება?
მაგალითები: Ada, C, Fortran, Modula-2, Pascal. Bjarne Stroustrup თვლის, რომ უკეთესია ენის დიზაინი, რათა ყველა ხარჯი იყოს მკაფიო და "არ გადაიხადოთ ფუნქციებისთვის, რომლებსაც არ იყენებთ". (იხილეთ მისი ნაშრომები მე-2 და მე-3 ACM კონფერენციებში პროგრამირების ენების ისტორიის შესახებ.) ამიტომ C++ არ აქვს ნაგვის შეგროვება.
რომელი ახორციელებს ნაგვის შეგროვებას?
Java ნაგვის შეგროვება არის პროცესი, რომლითაც Java პროგრამები ახორციელებს მეხსიერების ავტომატურ მართვას. ჯავის პროგრამების კომპილაცია ხდება ბაიტიკოდზე, რომელიც შეიძლება გაშვებული იყოს Java ვირტუალურ მანქანაზე, ან მოკლედ JVM-ზე. როდესაც Java პროგრამები მუშაობს JVM-ზე, ობიექტები იქმნება გროვაზე, რომელიც არის პროგრამისთვის მიძღვნილი მეხსიერების ნაწილი.
აქვს თუ არა C ენას ნაგვის შეგროვება?
C არ აქვს ავტომატურინაგვის შეგროვება. თუ ობიექტის კვალი დაკარგეთ, გაქვთ ის, რაც ცნობილია როგორც "მეხსიერების გაჟონვა". მეხსიერება კვლავ გადანაწილდება პროგრამაზე, როგორც მთლიანობაში, მაგრამ ვერაფერი გამოიყენებს მას, თუ დაკარგავთ მის ბოლო მაჩვენებელს. მეხსიერების რესურსების მართვა C პროგრამების მთავარი მოთხოვნაა.