Тиймээс энэ утгаараа автомат динамик санах ойн хуваарилалт зайлшгүй шаардлагатай бөгөөд бодит байдал дээр энэ нь: тийм, Хаскелл-д хог цуглуулагч шаардлагатай, учир нь хог цуглуулах нь хамгийн өндөр гүйцэтгэлтэй автомат төхөөрөмж юм. динамик санах ойн менежер.
Хаскелл хогийн машинтай юу?
Haskell-ийн ажиллах цагийн систем нь хоёр үеийн 2 бүхий үеийн хог цуглуулагчийг (GC) ашигладаг. Хамгийн залуу үеийнх нь 0-ээс эхлэн үеийг дугаарлана. Хамгийн залуу үеийнхний ясли гэж нэрлэгддэг тусгай хэсэгт үнэт зүйлсийг үргэлж хуваарилдаг.
Ямар хэлэнд хог цуглуулдаггүй вэ?
Жишээ нь: Ada, C, Fortran, Modula-2, Pascal. Bjarne Stroustrup "хэрэглээгүй функцийнхээ төлөө мөнгө төлөхгүй байх" нь бүх зардлыг тодорхой болгох нь илүү дээр гэж үздэг. (Програмчлалын хэлний түүхийн тухай МУЗ-ийн 2, 3-р бага хурлын илтгэлүүдийг харна уу.) Тиймээс C++ нь хог цуглуулдаггүй.
Хог цуглуулах ажлыг аль нь гүйцэтгэдэг вэ?
Java хог цуглуулах нь Java програмууд автомат санах ойн удирдлагыг гүйцэтгэдэг процесс юм. Java програмууд нь Java виртуал машин эсвэл товчоор JVM дээр ажиллах боломжтой байт кодыг хөрвүүлдэг. Java программуудыг JVM дээр ажиллуулах үед объектууд нь програмд зориулагдсан санах ойн хэсэг болох овоолго дээр үүсдэг.
Си хэл хогийн цуглуулгатай юу?
C автомат байхгүйхог цуглуулах. Хэрэв та ямар нэгэн объектын ул мөрийг алдвал "санах ойн алдагдал" гэж нэрлэгддэг. Санах ойг бүхэлд нь программд хуваарилсан хэвээр байх боловч хэрэв та сүүлийн заагчаа алдсан бол юу ч үүнийг ашиглах боломжгүй болно. Санах ойн нөөцийн менежмент нь Си программуудын гол шаардлага юм.