„Szerkesztő:Mr Steve/Garbage Collection” változatai közötti eltérés

Tartalom törölve Tartalom hozzáadva
Mr Steve (vitalap | szerkesztései)
Nincs szerkesztési összefoglaló
26. sor:
===Egy objektum elérhetősége===
Egy elérhető objektumot úgy definiálhatunk, mint egy program futása közben létrejött változót, amelyet elérhetünk direkt módon, vagy egy másik objektumon keresztül. Ezen a módon kétféle objektumot különbözetünk meg:
*Objektumok, amelyekről feltételezhetjük, hogy elérhetőek. Tipikusan azok az elemek tartoznak ide, amelyekre a "call stack(?magyarul hívó verem?<!-- igen, erre van valami frappáns szó, de csakazértse jut eszembe... pedig a stack unwindingnál használta a tanárbácsi azt a szépet ;; Borlandéknál hívott veremnek hívják :) az a baj, hogy nekem sem jut eszembe -->)" hivatkozik (azaz minden lokális változó és paraméter egy függvényben), illetve minden globális változó.
*Minden olyan objektum, amelyre egy másik szintén elérhető objektum hivatkozik (formálisan az elérhetőség egy tranzitív lezárt<!-- (sztem ezt fontos átemelni az angolból, a matekosok hamarabb megértik így ;)) ;; nem jutott eszembe a magyar neve --> ).
Ez a megközelítés nem optimális, mivel azután, hogy egy objektumra nincs többé szükség még sok idő telhet el, mire kikerül az adott hatókörből.
<!-- Itt nincs következés az angolban se, és logikailag sem ;; igen, ez nekem is feltünt, csak lusta voltam ;)-->
Sokszor különbséget teszünk ''szintaktikai szemét'' (amikor a program nem fér hozzá az objektumhoz) és ''szemantikai szemét'' (azok, amiket többé nem használ a program) között: