Այսպիսով, այս առումով անհրաժեշտ է ավտոմատացված դինամիկ հիշողության բաշխում, և գործնականում դա նշանակում է. դինամիկ հիշողության կառավարիչ։
Արդյո՞ք Haskell-ը աղբահան ունի:
Haskell գործարկման համակարգն օգտագործում է սերունդ աղբահան (GC) երկու սերունդով 2: Սերունդները համարակալվում են՝ սկսած ամենաերիտասարդ սերնդից՝ զրոյից։ Արժեքները միշտ բաշխվում են ամենաերիտասարդ սերնդի հատուկ մասում, որը կոչվում է տնկարան։
Ո՞ր լեզվով չկա աղբահանություն:
Օրինակներ՝ Ada, C, Fortran, Modula-2, Pascal: Bjarne Stroustrup-ը կարծում է, որ ավելի լավ է լեզվի ձևավորումը, որպեսզի բոլոր ծախսերը բացահայտ լինեն, և «չվճարել այն հնարավորությունների համար, որոնք չես օգտագործում»: (Տե՛ս նրա աշխատությունները ծրագրավորման լեզուների պատմության 2-րդ և 3-րդ ACM կոնֆերանսներում:) Հետևաբար C++-ը աղբահանություն չունի:
Ո՞վ է կատարում աղբահանությունը
Java աղբահանությունը գործընթաց է, որով Java ծրագրերը իրականացնում են հիշողության ավտոմատ կառավարում: Java ծրագրերը հավաքվում են բայթկոդով, որը կարող է գործարկվել Java վիրտուալ մեքենայի կամ կարճ JVM-ի վրա: Երբ Java ծրագրերն աշխատում են JVM-ում, օբյեկտները ստեղծվում են կույտի վրա, որը ծրագրին նվիրված հիշողության մի մասն է:
Արդյո՞ք C լեզուն աղբահանություն ունի:
C-ն ավտոմատ չունիաղբահանություն. Եթե կորցնում եք օբյեկտի հետքը, դուք ունեք այն, ինչը հայտնի է որպես «հիշողության արտահոսք»: Հիշողությունը դեռևս կհատկացվի ծրագրին որպես ամբողջություն, բայց ոչինչ չի կարողանա օգտագործել այն, եթե դուք կորցրել եք վերջին ցուցիչը: Հիշողության ռեսուրսների կառավարումը C ծրագրերի հիմնական պահանջն է: